From 77623a5f32c139fa4ef7d316a4bbf7e172cc5acb Mon Sep 17 00:00:00 2001 From: Matthew Espino <65783406+mcecode@users.noreply.github.com> Date: Mon, 22 Nov 2021 01:28:10 +0800 Subject: [PATCH 1/9] Handle path sources Not all sources on all platforms are file URLs. Fixes #2889. --- lib/snapshot-manager.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/snapshot-manager.js b/lib/snapshot-manager.js index e7b907927..c7a907810 100644 --- a/lib/snapshot-manager.js +++ b/lib/snapshot-manager.js @@ -398,7 +398,9 @@ const resolveSourceFile = mem(file => { return file; } - return fileURLToPath(payload.sources[0]); + return payload.sources[0].startsWith('file://') + ? fileURLToPath(payload.sources[0]) + : payload.sources[0]; }); export const determineSnapshotDir = mem(({file, fixedLocation, projectDir}) => { From b3a1b7273a2af418997e78b15da1eaf090ebf461 Mon Sep 17 00:00:00 2001 From: Rick Richardson Date: Fri, 31 Dec 2021 07:45:12 -0800 Subject: [PATCH 2/9] Mention experimental specifier resolution in TypeScript recipe Co-authored-by: Mark Wubben --- docs/recipes/typescript.md | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/docs/recipes/typescript.md b/docs/recipes/typescript.md index 1fbbf6c26..6013fbe48 100644 --- a/docs/recipes/typescript.md +++ b/docs/recipes/typescript.md @@ -56,21 +56,9 @@ You also need to have this in your `tsconfig.json`: } ``` -And finally, even though you directly import code from your TypeScript files, you **must** import it from your `.ts` files with the `.js` extension instead! +Remember that, by default, ES modules require you to specify the file extension and TypeScript outputs `.js` files, so you have to write your imports to load from `.js` files not `.ts`. -For example if your source file is `index.ts` looks like this: - -```ts -export function myFunction() {} -``` - -Then in your AVA test files you must import it **as if it has the `.js` extension** it like so: - -```ts -import {myFunction} from './index.js'; -``` - -The reason that you need to write `.js` to import `.ts` files in your AVA test files, is explained by the `ts-node` author [in this post](https://github.com/nodejs/modules/issues/351#issuecomment-621257543). +If this is not to your liking there is an _experimental_ option in Node.js that you might want to use. You can add it to the `nodeArguments` array in the AVA configuration so it applies to your test runs: [`--experimental-specifier-resolution=node`](https://nodejs.org/api/esm.html#customizing-esm-specifier-resolution-algorithm). #### For packages without type "module" From d4ec09714d36fdc8875a96a5732686e78cddfa49 Mon Sep 17 00:00:00 2001 From: Notas Hellout <5165674+make-github-pseudonymous-again@users.noreply.github.com> Date: Fri, 31 Dec 2021 16:53:28 +0100 Subject: [PATCH 3/9] Improve wording in TypeScript recipe --- docs/recipes/typescript.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/recipes/typescript.md b/docs/recipes/typescript.md index 6013fbe48..ae24594be 100644 --- a/docs/recipes/typescript.md +++ b/docs/recipes/typescript.md @@ -18,7 +18,7 @@ You can use [`ts-node`] to do live testing without transpiling. This can be espe `npm install --save-dev typescript ts-node` -Then, depending on whether or not your package is of type `module` or not, the required setup differs. See either: +The required setup depends on the type of your package: 1. [for packages with type "module"](#for-packages-with-type-module) 2. [for packages without type "module"](#for-packages-without-type-module) From bedd1d04c5e21b9e93cfbe9fe4ba8802ef6a9f82 Mon Sep 17 00:00:00 2001 From: Mickey Rose Date: Fri, 31 Dec 2021 18:09:04 +0100 Subject: [PATCH 4/9] Remove dependency on `equal-length` Co-authored-by: Mark Wubben --- lib/code-excerpt.js | 10 ++-------- package-lock.json | 2 +- package.json | 1 - 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/code-excerpt.js b/lib/code-excerpt.js index c3ac11c6c..ca9ab0586 100644 --- a/lib/code-excerpt.js +++ b/lib/code-excerpt.js @@ -2,7 +2,6 @@ import fs from 'node:fs'; import truncate from 'cli-truncate'; import codeExcerpt from 'code-excerpt'; -import equalLength from 'equal-length'; import {chalk} from './chalk.js'; @@ -34,20 +33,15 @@ export default function exceptCode(source, options = {}) { value: truncate(item.value, maxWidth - String(line).length - 5), })); - const joinedLines = lines.map(line => line.value).join('\n'); - const extendedLines = equalLength(joinedLines).split('\n'); + const extendedWidth = Math.max(...lines.map(item => item.value.length)); return lines - .map((item, index) => ({ - line: item.line, - value: extendedLines[index], - })) .map(item => { const isErrorSource = item.line === line; const lineNumber = formatLineNumber(item.line, line) + ':'; const coloredLineNumber = isErrorSource ? lineNumber : chalk.grey(lineNumber); - const result = ` ${coloredLineNumber} ${item.value}`; + const result = ` ${coloredLineNumber} ${item.value.padEnd(extendedWidth)}`; return isErrorSource ? chalk.bgRed(result) : result; }) diff --git a/package-lock.json b/package-lock.json index 4f8f0ec1c..6a26fc643 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,6 @@ "debug": "^4.3.2", "del": "^6.0.0", "emittery": "^0.10.0", - "equal-length": "^1.0.1", "figures": "^4.0.0", "globby": "^12.0.2", "ignore-by-default": "^2.0.0", @@ -3532,6 +3531,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", + "dev": true, "engines": { "node": ">=4" } diff --git a/package.json b/package.json index 52d9abb4f..540775fed 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,6 @@ "debug": "^4.3.2", "del": "^6.0.0", "emittery": "^0.10.0", - "equal-length": "^1.0.1", "figures": "^4.0.0", "globby": "^12.0.2", "ignore-by-default": "^2.0.0", From 8df118b0bd68546252daf08edc60dba464549fd7 Mon Sep 17 00:00:00 2001 From: Mark Wubben Date: Sat, 1 Jan 2022 17:25:42 +0100 Subject: [PATCH 5/9] Use AVA 4 for the self-hosted tests --- ava.config.cjs => ava.config.js | 5 +- package-lock.json | 1953 ++--------------- test/assertions/snapshots/test.js.snap | Bin 484 -> 504 bytes test/concurrency/snapshots/test.js.snap | Bin 238 -> 266 bytes test/config/loader.js | 12 +- test/config/next-gen.js | 12 +- test/config/snapshots/integration.js.md | 16 +- test/config/snapshots/integration.js.snap | Bin 418 -> 565 bytes test/config/snapshots/loader.js.md | 6 - test/config/snapshots/loader.js.snap | Bin 653 -> 586 bytes test/config/snapshots/next-gen.js.snap | Bin 321 -> 368 bytes .../snapshots/invalid-configurations.js.snap | Bin 270 -> 294 bytes .../snapshots/test.js.snap | Bin 334 -> 406 bytes test/extensions/snapshots/test.js.snap | Bin 180 -> 253 bytes test/globs/snapshots/test.js.snap | Bin 382 -> 434 bytes test/helpers/exec.js | 2 +- test/hook-restrictions/snapshots/test.js.snap | Bin 166 -> 205 bytes test/line-numbers/snapshots/test.js.snap | Bin 586 -> 599 bytes test/node-arguments/snapshots/test.js.snap | Bin 401 -> 440 bytes .../snapshots/test.js.snap | Bin 222 -> 263 bytes .../snapshots/test.js.snap | Bin 246 -> 283 bytes .../snapshots/test.js.snap | Bin 215 -> 245 bytes .../worker-protocol/snapshots/test.js.snap | Bin 469 -> 509 bytes .../snapshots/test.js.snap | Bin 164 -> 208 bytes .../snapshots/randomness.js.snap | Bin 479 -> 593 bytes test/snapshot-removal/snapshots/test.js.snap | Bin 376 -> 432 bytes test/snapshot-tests/snapshots/corrupt.js.snap | Bin 246 -> 308 bytes .../snapshots/formatting.js.snap | Bin 531 -> 565 bytes .../snapshots/adding.js.snap | Bin 590 -> 665 bytes .../snapshots/changing-label.js.snap | Bin 258 -> 326 bytes .../snapshots/invalid-snapfile.js.snap | Bin 438 -> 538 bytes .../snapshots/removing-all-snapshots.js.snap | Bin 274 -> 337 bytes .../snapshots/removing-snapshots.js.snap | Bin 261 -> 323 bytes .../snapshots/removing-test.js.snap | Bin 267 -> 323 bytes .../snapshots/reorder.js.snap | Bin 287 -> 345 bytes .../snapshots/selection.js.snap | Bin 409 -> 467 bytes .../snapshots/try-skip.js.snap | Bin 279 -> 333 bytes test/test-timeouts/snapshots/test.js.snap | Bin 255 -> 302 bytes 38 files changed, 160 insertions(+), 1846 deletions(-) rename ava.config.cjs => ava.config.js (51%) diff --git a/ava.config.cjs b/ava.config.js similarity index 51% rename from ava.config.cjs rename to ava.config.js index 63ed49fd3..6a542a4e9 100644 --- a/ava.config.cjs +++ b/ava.config.js @@ -1,7 +1,4 @@ -// 👉 Due to the package exports, XO's use of our ESLint plugin loads this -// file using the AVA code in the repository, but our self-hosted tests use the -// installed "test-ava" version. -module.exports = { +export default { // eslint-disable-line import/no-anonymous-default-export files: ['test/**', '!test/**/{fixtures,helpers}/**'], ignoredByWatcher: ['{coverage,docs,media,test-d,test-tap}/**'], environmentVariables: { diff --git a/package-lock.json b/package-lock.json index 6a26fc643..877b9ec86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,11 +93,11 @@ }, "node_modules/@ava/test": { "version": "0.0.0", - "resolved": "git+ssh://git@github.com/avajs/test.git#46dbf16d19cccfdb5b599fb80ec3baf97ceb9605", + "resolved": "git+ssh://git@github.com/avajs/test.git#11bf71930d4467f405f865b897a6691d18ab0a90", "dev": true, "license": "MIT", "dependencies": { - "@ava/v3": "npm:ava@^3.8.1" + "@ava/v4": "npm:ava@4.0.0-rc.1" }, "bin": { "test-ava": "cli.js" @@ -116,605 +116,73 @@ "node": ">=12.22 <13 || >=14.16 <15 || >=15" } }, - "node_modules/@ava/v3": { + "node_modules/@ava/v4": { "name": "ava", - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/ava/-/ava-3.15.0.tgz", - "integrity": "sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==", + "version": "4.0.0-rc.1", + "resolved": "https://registry.npmjs.org/ava/-/ava-4.0.0-rc.1.tgz", + "integrity": "sha512-ibYMBSeG0z2L0My3yJtxK0NNMcP5uN/TMZnNJ2FvHa3rGg6UpLglVh/2wjWvuc1kTGPy32liwoneFITQ85wbbg==", "dev": true, "dependencies": { - "@concordance/react": "^2.0.0", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "ansi-styles": "^5.0.0", + "acorn": "^8.5.0", + "acorn-walk": "^8.2.0", + "ansi-styles": "^6.1.0", "arrgv": "^1.0.2", - "arrify": "^2.0.1", - "callsites": "^3.1.0", - "chalk": "^4.1.0", - "chokidar": "^3.4.3", + "arrify": "^3.0.0", + "callsites": "^4.0.0", + "cbor": "^8.0.2", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", "chunkd": "^2.0.1", - "ci-info": "^2.0.0", + "ci-info": "^3.2.0", "ci-parallel-vars": "^1.0.1", "clean-yaml-object": "^0.1.0", - "cli-cursor": "^3.1.0", - "cli-truncate": "^2.1.0", + "cli-truncate": "^3.1.0", "code-excerpt": "^3.0.0", "common-path-prefix": "^3.0.0", - "concordance": "^5.0.1", - "convert-source-map": "^1.7.0", + "concordance": "^5.0.4", "currently-unhandled": "^0.4.1", - "debug": "^4.3.1", + "debug": "^4.3.2", "del": "^6.0.0", - "emittery": "^0.8.0", - "equal-length": "^1.0.0", - "figures": "^3.2.0", - "globby": "^11.0.1", - "ignore-by-default": "^2.0.0", - "import-local": "^3.0.2", - "indent-string": "^4.0.0", - "is-error": "^2.2.2", - "is-plain-object": "^5.0.0", - "is-promise": "^4.0.0", - "lodash": "^4.17.20", - "matcher": "^3.0.0", - "md5-hex": "^3.0.1", - "mem": "^8.0.0", - "ms": "^2.1.3", - "ora": "^5.2.0", - "p-event": "^4.2.0", - "p-map": "^4.0.0", - "picomatch": "^2.2.2", - "pkg-conf": "^3.1.0", - "plur": "^4.0.0", - "pretty-ms": "^7.0.1", - "read-pkg": "^5.2.0", - "resolve-cwd": "^3.0.0", - "slash": "^3.0.0", - "source-map-support": "^0.5.19", - "stack-utils": "^2.0.3", - "strip-ansi": "^6.0.0", - "supertap": "^2.0.0", - "temp-dir": "^2.0.0", - "trim-off-newlines": "^1.0.1", - "update-notifier": "^5.0.1", - "write-file-atomic": "^3.0.3", - "yargs": "^16.2.0" - }, - "bin": { - "ava": "cli.js" - }, - "engines": { - "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" - } - }, - "node_modules/@ava/v3/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/@ava/v3/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/@ava/v3/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/@ava/v3/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ava/v3/node_modules/figures/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@ava/v3/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/@ava/v3/node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/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": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@ava/v3/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/@ava/v3/node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@ava/v3/node_modules/mem": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", - "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/mem?sponsor=1" - } - }, - "node_modules/@ava/v3/node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ava/v3/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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/@ava/v3/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/@ava/v3/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@ava/v3/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/node_modules/slice-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/@ava/v3/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ava/v3/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@ava/v3/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/@ava/v3/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" + "emittery": "^0.10.0", + "equal-length": "^1.0.1", + "figures": "^4.0.0", + "globby": "^12.0.2", + "ignore-by-default": "^2.0.0", + "indent-string": "^5.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "matcher": "^5.0.0", + "mem": "^9.0.1", + "ms": "^2.1.3", + "p-event": "^4.2.0", + "p-map": "^5.2.0", + "picomatch": "^2.3.0", + "pkg-conf": "^4.0.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "strip-ansi": "^7.0.1", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "write-file-atomic": "^3.0.3", + "yargs": "^17.2.1" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@ava/v3/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" + "bin": { + "ava": "entrypoints/cli.mjs" }, "engines": { - "node": ">=8" + "node": ">=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@ava/v3/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" + "peerDependencies": { + "@ava/typescript": "*" }, - "engines": { - "node": ">=10" + "peerDependenciesMeta": { + "@ava/typescript": { + "optional": true + } } }, "node_modules/@babel/code-frame": { @@ -1117,27 +585,6 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@concordance/react": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz", - "integrity": "sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1" - }, - "engines": { - "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" - } - }, - "node_modules/@concordance/react/node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@eslint/eslintrc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", @@ -1336,15 +783,6 @@ "node": ">= 8" } }, - "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": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -1380,18 +818,6 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "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/@tsd/typescript": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.4.4.tgz", @@ -1732,65 +1158,6 @@ "ajv": "^6.9.1" } }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/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/ansi-align/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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-align/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/ansi-align/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/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1960,270 +1327,94 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "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/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "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==" - }, - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "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==", - "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/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blueimp-md5": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", - "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" - }, - "node_modules/boxen": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.0.tgz", - "integrity": "sha512-tibA+fVC5RtJm+qQxRLU4/GfuO1K0Zx6cTSxjc49h1px7AyZEjFx88aKJmwIo0a6RDSm2FG00s/odEQYoSltbQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "safer-buffer": "~2.1.0" } }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.8" } }, - "node_modules/boxen/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==", + "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, - "dependencies": { - "color-convert": "^2.0.1" - }, + "peer": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/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==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": "*" } }, - "node_modules/boxen/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/boxen/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==", + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "node_modules/boxen/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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "tweetnacl": "^0.14.3" } }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, + "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==", "engines": { "node": ">=8" } }, - "node_modules/boxen/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==", + "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/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/blueimp-md5": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", + "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2268,30 +1459,6 @@ "url": "https://opencollective.com/browserslist" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2465,48 +1632,6 @@ "node": ">=10" } }, - "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/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": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -2743,42 +1868,6 @@ "node": ">=0.10.0" } }, - "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/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-truncate": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", @@ -2848,24 +1937,6 @@ "node": ">=4" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, "node_modules/code-excerpt": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", @@ -2957,80 +2028,30 @@ "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", "dependencies": { "date-time": "^3.1.0", - "esutils": "^2.0.3", - "fast-diff": "^1.2.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.15", - "md5-hex": "^3.0.1", - "semver": "^7.3.2", - "well-known-symbols": "^2.0.0" - }, - "engines": { - "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" - } - }, - "node_modules/concordance/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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/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/configstore/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" + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" } }, - "node_modules/configstore/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, + "node_modules/concordance/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dependencies": { - "crypto-random-string": "^2.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/confusing-browser-globals": { @@ -3212,27 +2233,6 @@ "node": ">=0.10.0" } }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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", @@ -3251,21 +2251,6 @@ "node": ">=8" } }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "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-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -3433,12 +2418,6 @@ "node": ">=6.0.0" } }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -3471,15 +2450,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, - "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/enhance-visitors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", @@ -3617,15 +2587,6 @@ "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-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -5103,21 +4064,6 @@ "dev": true, "peer": true }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "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", @@ -5157,40 +4103,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -5284,15 +4196,6 @@ "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": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -5336,12 +4239,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -5366,26 +4263,6 @@ "node": ">=10.17.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -5427,31 +4304,6 @@ "node": ">=4" } }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/import-modules": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", @@ -5497,15 +4349,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -5619,24 +4462,6 @@ "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.8.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", @@ -5724,31 +4549,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-js-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz", @@ -5779,18 +4579,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5814,15 +4602,6 @@ "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-obj-prop": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", @@ -6021,12 +4800,6 @@ "node": ">=8" } }, - "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", @@ -6288,17 +5061,12 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "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 + "dev": true, + "peer": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -6378,15 +5146,6 @@ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "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/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -6396,18 +5155,6 @@ "node": ">=0.10.0" } }, - "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/lcov-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", @@ -6839,15 +5586,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "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", @@ -7046,15 +5784,6 @@ "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", @@ -7513,80 +6242,24 @@ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/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" + "opener": "bin/opener-bin.js" } }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, "node_modules/own-or": { @@ -7604,15 +6277,6 @@ "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-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -7722,21 +6386,6 @@ "node": ">=8" } }, - "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/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7850,15 +6499,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "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/pkg-conf": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-4.0.0.tgz", @@ -8046,15 +6686,6 @@ "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": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/prettier": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", @@ -8140,16 +6771,6 @@ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "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.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -8159,18 +6780,6 @@ "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/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", @@ -8218,27 +6827,6 @@ "safe-buffer": "^5.1.0" } }, - "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/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/react": { "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", @@ -8388,20 +6976,6 @@ "node": ">=8" } }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "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", @@ -8456,30 +7030,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "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", @@ -8592,28 +7142,6 @@ "node": ">=8" } }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -8708,18 +7236,6 @@ "semver": "bin/semver.js" } }, - "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/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -8977,35 +7493,6 @@ "node": ">=8" } }, - "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_decoder/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/string-width": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.0.tgz", @@ -9092,15 +7579,6 @@ "node": ">=8" } }, - "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": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/supertap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", @@ -11627,15 +10105,6 @@ "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", @@ -11681,15 +10150,6 @@ "node": ">=8" } }, - "node_modules/trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/trivial-deferred": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", @@ -11929,49 +10389,6 @@ "node": ">= 10.0.0" } }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -11981,24 +10398,6 @@ "punycode": "^2.1.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": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "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": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -12076,15 +10475,6 @@ "node": ">=10.13.0" } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/webpack": { "version": "5.61.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.61.0.tgz", @@ -12212,68 +10602,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "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/widest-line/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/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/widest-line/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/widest-line/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -12359,15 +10687,6 @@ "typedarray-to-buffer": "^3.1.5" } }, - "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/xo": { "version": "0.46.3", "resolved": "https://registry.npmjs.org/xo/-/xo-0.46.3.tgz", diff --git a/test/assertions/snapshots/test.js.snap b/test/assertions/snapshots/test.js.snap index 7989dc9530dfea02521650b325a4fac5bac4df25..0700ef0a5346f63a81d685a3d0c21f74289adfa8 100644 GIT binary patch literal 504 zcmV|1E47?}712FCIOd;q_}#?Ch|A#PeMLJ~ow1$jrR zHX%Dm8@WfGkyoTnCu_8_r<6!2H9g012%RBxiO@MTEV4{(LMt`81fI}ZD&X6jm@0Pl zw?e6Lw!mvk86RBsM92rM6Gg1aT0*hghWl%nk6@VyE8ulRs3jk@dCkrwlL`rEEbmMh zrv_f2`F6uCH>gcJS(xy?3V75JDIYwu`5a=bzJ;*M{}5dv}bHbA3e+ilDgL z#|fP6!hHbT0`GtV+8%HMd;>&5r~yoYXW#>fLyRI&18#sP;0?&)SQpERNS1^{&fiP;6b}PNU+171Rw=7a3Rg;lP zURxOYBPcS$hA`@8n^WCw{aVD6j3bP6Lj2B>bkf3TalMe&0{KSgigJ&H(QaMQg{pCzi<0ee~6IoG~uGV7Y_ek&=hEss^^qt0bO zU6HCP3}+=Eq&%_MEIFr|u;f;ystJR4%r0-j#{Kyru6e#55nhWbl})LH7qTwBEO@L> ab*J%5Y0s&`x@eAmf3F{+=lCud1ONc4w&0Ke diff --git a/test/concurrency/snapshots/test.js.snap b/test/concurrency/snapshots/test.js.snap index 322e0edf47ef00779863a50ac1db2a0a7e368290..b50d5014e0340d1284caa7b32f8bae58c032308f 100644 GIT binary patch literal 266 zcmV+l0rmbtRzV-IdrbR+nhj~SuJdUHY*g^hhp zq%H7#1RskC00000000Bckuh$=FbqX)1VQKAfERFv9-*DO2S`?0rX`{ZWr(!XjsbF! z`lPi{cxa~rUd)xm|L=icZ5@+)*T+c47U|=;Mve-%Kmt|elDIx+688zL(B(96Lk-;6 zLh20$j6Jamb{dlDeQX*uyqtH%Q!!7uFAn9~DbSy+l%aCaM)Yv))u5)|*?=HPgghD# z1T03L@{uCe6m$E7INx1K6+JEVum7e8lqt5G94w&CYXr5-;y0x8vP!3oY3kdK&6?*d QZ5z<}2A485ATt910K)HhApigX literal 238 zcmVwx&? z(F~iTx8)|W^s$~a_0`E@1dFl)wZ1yz<#e6b=dPO0^A&Olw+=FbMPq=NnSmW_G9xR4 zAfsnUMyi6YZgPHJa%oXfYF=`sLVl5gZn8pJPGY)3ZfS9eLQ<+iK~a8LW=d*`LV0FM ohC-r3UVdI)YI path.resolve(FIXTURE_ROOT, relpath); @@ -22,8 +22,9 @@ const loadFromSetup = setup => { const ok = setup => async (t, assert = tt => tt.pass()) => { const fixture = typeof setup === 'string' ? setup : setup.fixture; - t.teardown(() => process.chdir(CWD)); - process.chdir(resolve(fixture)); + const stub = sinon.stub(process, 'cwd'); + t.teardown(() => stub.restore()); + stub.returns(resolve(fixture)); const conf = loadFromSetup(setup); await t.notThrowsAsync(conf); @@ -34,8 +35,9 @@ const ok = setup => async (t, assert = tt => tt.pass()) => { const notOk = setup => async (t, assert = (tt, error) => tt.snapshot(error.message, 'error message')) => { const fixture = typeof setup === 'string' ? setup : setup.fixture; - t.teardown(() => process.chdir(CWD)); - process.chdir(resolve(fixture)); + const stub = sinon.stub(process, 'cwd'); + t.teardown(() => stub.restore()); + stub.returns(resolve(fixture)); const conf = loadFromSetup(setup); const error = await t.throwsAsync(conf); diff --git a/test/config/next-gen.js b/test/config/next-gen.js index 488fe3f29..5e62efd21 100644 --- a/test/config/next-gen.js +++ b/test/config/next-gen.js @@ -2,10 +2,10 @@ import path from 'node:path'; import {fileURLToPath} from 'node:url'; import test from '@ava/test'; +import sinon from 'sinon'; import {loadConfig} from '../../lib/load-config.js'; -const CWD = process.cwd(); const FIXTURE_ROOT = fileURLToPath(new URL('fixtures', import.meta.url)); const resolve = relpath => path.resolve(FIXTURE_ROOT, relpath); @@ -22,8 +22,9 @@ const loadFromSetup = setup => { const ok = setup => async (t, assert = tt => tt.pass()) => { const fixture = typeof setup === 'string' ? setup : setup.fixture; - t.teardown(() => process.chdir(CWD)); - process.chdir(resolve(fixture)); + const stub = sinon.stub(process, 'cwd'); + t.teardown(() => stub.restore()); + stub.returns(resolve(fixture)); const conf = loadFromSetup(setup); await t.notThrowsAsync(conf); @@ -34,8 +35,9 @@ const ok = setup => async (t, assert = tt => tt.pass()) => { const notOk = setup => async (t, assert = (tt, error) => tt.snapshot(error.message, 'error message')) => { const fixture = typeof setup === 'string' ? setup : setup.fixture; - t.teardown(() => process.chdir(CWD)); - process.chdir(resolve(fixture)); + const stub = sinon.stub(process, 'cwd'); + t.teardown(() => stub.restore()); + stub.returns(resolve(fixture)); const conf = loadFromSetup(setup); const error = await t.throwsAsync(conf); diff --git a/test/config/snapshots/integration.js.md b/test/config/snapshots/integration.js.md index be719a126..4605a09d9 100644 --- a/test/config/snapshots/integration.js.md +++ b/test/config/snapshots/integration.js.md @@ -49,24 +49,24 @@ Generated by [AVA](https://avajs.dev). }, ] -## use current working directory if `package.json` is not found +## looks for config files outside of project directory -> resolves test files without configuration +> resolves test files from configuration [ { - file: 'test.js', - title: 'test name', + file: 'foo.js', + title: 'foo', }, ] -## looks for config files outside of project directory +## use current working directory if `package.json` is not found -> resolves test files from configuration +> resolves test files without configuration [ { - file: 'foo.js', - title: 'foo', + file: 'test.js', + title: 'test name', }, ] diff --git a/test/config/snapshots/integration.js.snap b/test/config/snapshots/integration.js.snap index 5eaf957741e59821c4eeb13884806a2ec06fd388..b828257248e133546e6cdbbc24732806fdf28e0c 100644 GIT binary patch literal 565 zcmV-50?PeCRzVRc7BP}wbS5$Kzm1K{ zTPPIiDIbdn00000000B+mCbI`KoG}0ag*{PlvEUn*^wta`nA&rL=d5Uq=C4)9Im{=a5?-CAG)K?v9^&A_FwUs!wN7@-RbY1rD z-ANoPuin6`Fjx=r3$8)7^z1dcdnvdn+7c#1adb4~_&R?eT_8(QIRJAD`-?QX6JtT+uOUx^~38RQjqC1&Y zUbC5!-CqcIzov;gLBobnSwbgGpc5@^ARnVtFM<4aRgk}wL;fZqYXbPm6(QekwYFBq zd1>)gqQ1WjwKCWm^xSzyQR6?%e*orA$}AH(VLOk`A!pv{n2-}3TF%A!%_x5TX^v~< zq4@1GrcjXFn>9m6{6OqO3CJ=5YYB6iT%p8VPOZJn5k{G{WIX2oGHp6Pbje5C!Th{C zK<#AMNnOrN{IhIle@(WJSCnl%KYp2R*9(n|8qm3V5023J3rI DKn4tI literal 418 zcmV;T0bTwA8m41OfhKyiQ9wr6` z_e`DN?}M3~)J^{!I#r=RgApv6&dk6tpY7}3DJhf9F8vRfYwJ`T#|RdcXJKG?@^7yB zide?#HPhU+zS+w*FoH!(SQ!|Y8Q8&gGIB678vtoDAa(#^VMaDVMpnn7qQpu@Mi`5q zpPzw|i-D1efsvb$(Ho)>$SMQTj9@bs0-4K!_zuhrHvgoo)Z`LICOA_-Kme@tA5aMk z&{LL-XiAw;mGXiu2pk>kl(nf@Wl@T16Ht_gJ2hzDfJb^%167mCET7Etu z7c&FZjHZRbpB5%km=@SUt|8=PPLLvnyu{p8S|y2_gp error message - - 'Config files must be located next to the package.json file' - ## throws if configFile option has an unsupported extension > error message diff --git a/test/config/snapshots/loader.js.snap b/test/config/snapshots/loader.js.snap index b092a98a1e0f7dff881594e3ab718e7617a30c17..d060c1cc34a87bd6d0e5d75139010ddc44172b18 100644 GIT binary patch literal 586 zcmV-Q0=4}?RzV)2_K6H00000000A(l+A9_KoG}MA;g(Cm^}FE^0Z`i<9^+f*S@6n3tw2ibASfOTDG8b zNZA*l*yMU82bQ3=Cs(RmV_~b8;{+zUdhSt#fd$O9HN2&jq&djd4v~ zv-Ok#tvwkhhr7TZM!>JPOlwb->Qpt1c(oKPWj3g6#X2?-_ zwj0P;Vj1>e$v0N=0(FU!A5O1HMRI&GLY|-ZZYuHx2d%y6bn_^~t(<6#DG8@j61M1F z)V=6mM(FP%d{IXs>qEBk#;8!|W@-Fk`hu-|V7)AE93?jN-<4veF%YfBY6>xo^#P zM)FKPS!Zx(v95zyU(k4pr(|3mE(4_u=2c(nrMzEKbwzfu7A{@Mo^ewmKaE7bjhRDk zxr!AhrNFm;2&U&ah#`Y%*cm&UXMosSofvrX&{sr+?xqhR7V+37Yq$KcirZy((8~Wh YlJWk?mH*(6M2sQ-0}l}3Pof3@09`F3N&o-= literal 653 zcmV;80&@L9RzVGAw>J6wit>e|t@qyFJN9$J} zgg!k}rMe2$ey7~0_cl&P??Yglp@;R9~TB6J-@s9z4MzY)wfXPOGf{@CtubS>wI6RG)G3WJ zwYpu|qYmIn9M%{$%yigtQOj2DpMQB9bP21wB% zNkN8blL{zBkj*qKh>j@93nUm48G;k}*%iFc5`PA;ip1rJFzkk_iS_QAb!RBnFmid`Vm!JMuYg zR|X{h0u!RYke@)@1W44hpn81L^ZVY@eIyfQ;wOGtl9Nu+;v_>Y6fuys#xl$^(x40q zsZ)sZDMM^@B2&p43(kz==cN$n@ZoGPI0*b3><5Q~;mG@coU7lw{Te>s-(E@KgjBv# zAtz=`>6_p(L8+SHRv-vdQEB5K!x;gBpae_hfEI?XUK#R| zH>7Us5pG@bw-+*u#<%PIryc&IzCHgl=S6$Y-Pgnp&G@f1`^VgQ%PW^zGiN|uHwT&c zGUpJ*Q?H8lrBs3?C@eAQo+gi-CU-ZLN6Fav9<{%;=%mpgHQ)@RT8x^Umg1w2+d_rV OSK(xv=l0{{RUJF6l9 literal 321 zcmV-H0lxl0RzV2gLE( z;lE!9vpCn6PJFE*5E9P_7JUW8ZT}~3yhSZ diff --git a/test/configurable-module-format/snapshots/invalid-configurations.js.snap b/test/configurable-module-format/snapshots/invalid-configurations.js.snap index ade5d8a997028036a747ccdc50d07483f6b5a95e..a76fd21f53d5ec401f7266bbc2197ee639c712c9 100644 GIT binary patch literal 294 zcmV+>0ondRRzV+7AT1|qu@5Omj}Od$!v zQu~BUsJVyp`-fdip3@@ZRe~W`wqd!UjMPuRQrrKD9sfG^%qCHeUm;_53L<)KvCjv^ s$dvEM4MY7;>cuze`Qk=7g6Xw?j4q^~vBe&~4B=T^00?0A(#Zk<08x{Qx&QzG literal 270 zcmV+p0rCDpRzVYmIL-eU1cC-03VA800000000Ba zV_;xlVK6IKi!Pg|zh-;O#y!?Cw}luPKp-86gG>3;wjI!xUXgAc8(y@%j}a_-4v52e z*(Nkgoa0jPT_Luj#_KO5Skx4#wKJkRT&m)(NXj9u$*bpFPhbR#HUTj+13TDcMpgzv z#>nuD)I5dag4E>9w93r9bcNjfl+v73g_6pG)M6cl(&AKwgp#7t)C7gJ{33-%4KtIo zih-mKh?xs!DkSEmfOrs2YDGzEUU6oAUhy!t#@-iUEX<@5u!h{y;u3|VRIt(cxw-jy U5OW|(AdUet0R2Y20`LI<00%937ytkO diff --git a/test/environment-variables/snapshots/test.js.snap b/test/environment-variables/snapshots/test.js.snap index 8f554a5319633061acb32d1479446bd5798ea224..de6bc04f0c35ffe9e3fe7e784d071d2abb049606 100644 GIT binary patch literal 406 zcmV;H0crk0RzV8miW+>@A$mv+18fwPtzuT zyaZS*10RbB00000000B!lFd%TFbv1zjRFFpZh`~HJOJ!435f$2#0d$B3qrf5tJ`Kv zlPPvPxPf>Ij_h4{5uSu>&}w`=0g)`*act}VQ(m&fxbc*p7RZ_n-VF(vWQv)p3`?}N z_Rf}QS=P#Hl^7(Mc~?p

!9=bgs#&85NG{agnBq)#$Y=w#4$lHgt}H9|qfp%|1lu z-m80nCW_-&z>WYAunTb3GH90Li;5 zFIKQFt}g!_sguCTd6GK&gOu_ptz${-war7pR7gKDWi6&i^kH-paK1e}uZ_HICWhQ zKLaBd10y2?BR35AR|j!W=<-MBaxa{mRXdamz$bbqFa_&l$n^6lUl5oRg9*IwIs6yp^LRVzbLzS zczJ@AL69*bBqLSfQNv6m^TJ@p0fiNk^YhX&(@TpIOEUBG6mm<8OB9k)6%z9l^1+S; g$(JN%=4IxkD-@R$fvB>?oKm1u0MMlPzC;250B_@rZvX%Q diff --git a/test/extensions/snapshots/test.js.snap b/test/extensions/snapshots/test.js.snap index dcc44da6f2c8683c3d08cd4b78b4787851989d34..61c83b6d263e273760f3a830d8ea48e396e734ef 100644 GIT binary patch literal 253 zcmV2riC@cg9I_hyapVz>BJG17~QEO z%~@){jvtE%00000000A(k1=Y)KoCVGLU8RH%mJK$8yBfmq;_XWyW0J-*O}}tJEKJD zV&B50b+nu$GR6df!FY<#XJCf+j!n(czRSLcdS!HTjVb}-D ztpm9>vA0GcUV=%oi7LC^Iiu!n`A|%X)0B_Jw5(PEU4m7(|Euv!ib+rPg?@hyTNz?@ zZrza2U{iy0V>}CedEL+lM9dl&=IR==36AtTL2UL(?^SpmDJP@?+T0lfAKjhbB584Zn@ts_L0 zwVM?dJ7>gYxjJSQd1iGvd1X5Kr4=Q4u5!w9^~{PZOsk9A=#)0ksm_tJBXjA86^UtK fh7&F{ZqRC2BG;9frZOvx$&i^rL+`4|8K6@DyBR}1 diff --git a/test/globs/snapshots/test.js.snap b/test/globs/snapshots/test.js.snap index ed42023ecaddc84a15f3b5ca71022a78a24223c6..1064b5c1a65b8ec96fb41355205ba10001f113d8 100644 GIT binary patch literal 434 zcmV;j0ZslvRzVZzT1Sjga|B z;Fhj!Y9EUT00000000BElD|&FFc8LlDJ}nm+6W%t#0nINfr$ksHUltfC$SN48PPC7+5TV#wj7G;7? z=R1l9q%e_+{ETPyI*h0goyZlx9haHRQcRVOFz3#Z$!wbxk4Tw>OJ(s|x(@cpTAotr zdjBieGR?FhaWuT(F7A-|2>|~9a5@8+SNd0$&FQpbFXaV&;`>NoG(;f{#ZH^|zDHBv zFO}~l2)2FP^J^U%A=D2GKLF*f*=#acVE_zP0S?NhTIyrZucxxHaT0a?br4kBR;$He zjX}Vm>1%=wsQEdCuuwQIldy8R>&Uux*UnYfCzxfnT$Pvn$c2!_PzL9AC9rCQ^4OntlD|-U~0Ci!|tpET3 literal 382 zcmV-^0fGKORzV9D;U9|TtEef z&VS&D{g*IRE3#&etc%JzMzCl$5MR8bp||eQy2G0sjW+T6)^aj}MRl1N7?>H@!6q}Z zG6*tygk+>DJZhMkmYI`U45Ss3^YhX&(@TpIOEUBG6mm<8OB9k)6%z9l5{rrwD?!pF ziJ5tsdFcx2Ir&Kn1&JjksYQ9kdT>)Y7@2f{v=I;sGqMRXvO0n^GBUzg{QUe3j9d(i zj0}w2jEpugP0Z;)Iv0p1z%;V?CuOB3moPHHnF0a=42--Cj7$uS{6IBKB8<#HUkEa? zfLssbu%+ea>tz+ADPb+iEWuEN5)#4CkjPBW%P&ezajFbYEJ@BtEgBSoGMmCc5lqP} c0; { return 1; }; -export const cwd = (...paths) => path.join(path.dirname(test.meta.file), 'fixtures', ...paths); +export const cwd = (...paths) => path.join(path.dirname(fileURLToPath(test.meta.file)), 'fixtures', ...paths); export const cleanOutput = string => string.replace(/^\W+/, '').replace(/\W+\n+$/g, '').trim(); const NO_FORWARD_PREFIX = Buffer.from('🤗', 'utf8'); diff --git a/test/hook-restrictions/snapshots/test.js.snap b/test/hook-restrictions/snapshots/test.js.snap index a4288b746df3e140b0d2dd97c8f9cd2991bc08c3..eab03f4c51498ebe4d856925e1c6df1af38614ca 100644 GIT binary patch literal 205 zcmV;;05bnURzV@wYO3>khz~E@3M#{ft2C z{*94ECLfCk00000000Axjxi2`KoCWj7-Q`X#?WA6V&hpXnPo@WuXm!k$ahVEaaBq|ipQfMh9PSBDFUTMnsNHlfd|FVqZEF+&8mKVGME^4_#cZ100000000Bkl|gG0K@`X5?KZ7gWE1paJ@`aW5Ebb`Jb2KH2nxN{4 zH8fdb3scoezNos+fh6*1@6>3CQA*ta;m_+yI83BlPWQHNT#sNO+Yf7wBelI+@|!ar z)2b&-)PPTT3u$_4wLSL^_RdibpYZsU?Zqv^`85?m@6XLQ$Dj>0~W(LOr+MBQ5nN0 l*;rO1!(I%@Cv`EQmGt1Z_3XjzbF>z>;vczdWqP>_0039uD;od+ literal 586 zcmV-Q0=4}?RzVNA2x8Gs5> zOjlSx;hv{LCgW?7@28KJ5QqmW^+@6{XU7g+=!L)}FEP4!xAKzAE zIqJN#UjIn!O%CnAOeV1CODJB#&cMLTzzz-zMh-?M9UyH4#KMehf{d(=MMa5~jEpcA zKR-VMBNqcBBLgEhBclyW6LUI{&IRI`FpX^fNm;4MC5%jPrhtF|10yd3BNGE7KTr*m z2qQBCBdZ`IOIl`5DvZOQlbM&Qn^&5flv-4*msO0WmbE0a1fiHYB|jbRa#jXGMhhRH zZUv}rg|z%41vKLnQZiE%^72a*auZ9EGZYf@Diumni%W_T{>SNUq#$B80Mcea>_8}( zn83m04bcc>m4RqRuo(-1%;i9QnLvmEm3{>(`3=PCjA%-kX&AUHx%v5d)Q+&?(!9YP z)IWeq{sFNTJ%gIPC^0iHDZiZB#+K$~Cg&HC7~(@H{||c)a_0dHr_>aMNaufRU0>m z+G+H1OCO5}00000000B6Qn60MFc9^%1P}7$F^)Sr9W~Wvmll61R?B`5f9x zEQrrwq6`1Rckm%Nty0l;U;s;&@8rAFd+*+Ro@$$o>2-l#d5tqZ5kx4tu@bp(MO~rs z#J%NH>&ECvkr5Lrt*4iTl){V0uP!@a&4EMcT!r^K+*8=^Lv-t$m;nwxhmYf zAC|jw#ol8t3xjFJ2s-82x7(xmvUUCX(msAZfx&dq>ff6f_`ybb;F}_0KITH>CXtHb zitBRWQsUiV0&_X&LfBVPblZ2}ONOxR0yEixeZOPQO-3 zf8hx!si#@HH2gaY){@D~CT3tf5B7$Xqz#Z(j^iMhL;wh;09I2|CNMcR(M^rx+tr4- z4c4&C<#Gt75m*Quqp=E*F|2tQtA&iFO@0)z)KEXvwhr~TyhsnIhlg?;a*rjxVRT(x vm!jqRv}q8D4h8==#%&W|#>H7R1(6TB7%zwz2FAtUt(QPH;ZegXgh;@!Xw diff --git a/test/shared-workers/cannot-publish-before-available/snapshots/test.js.snap b/test/shared-workers/cannot-publish-before-available/snapshots/test.js.snap index d88b3e6242b31c201978473e8dbaf66c0ce176c8..a3c5eed24846956fb722d107db62072c3573798e 100644 GIT binary patch literal 263 zcmV+i0r>twRzVJu00000000ABk1=k-Koms(*chUq$VN~l%^o14piYw$q)ofFzwyGxYwcf@ zP;!JEfgC5N$_8mE_|j9Q%D2%!qQ28``d06_ z3COOosw%<*AtRKrldX^wiUlT}v7BHQSi*WIH=W}0RHCOw4}%M8Jk-`muWIg`XXRP9 N$3JXMKnDo{005~7dX@kH literal 222 zcmZ<^b5sb+Uh+eM@cDn<8;g2)6biUHW=h^TnB&IhrY5V9%W~vUPfkicV_-~WgHLE-6u$-#h!zX$ME hzmzJW@iY)D+5E9{sOJqE4Q@ua!wtX~obP)9008(Zgz*3X literal 246 zcmVl!`pKib2tCYtUSTU00Qwq{9S~>SHdl;-mPTGq@yu>YZ<|!XMmWQ zfgP-hk(EJ^F)$<}vsj@lwWv5VKTjb)O~EnDQ9&cjH7MBA-%nEkD3_OCqL7@QTaZ|i znUs^NP@Y+mp-`NWSd^NgP@Z3uom!+&kW-qTnWvCgqTuG~3xe6qgnh wRzV80Ky1Z+mU-PdNRD*p}*Z9WvtNNy*d9pBUheO?eQsC*3iJftgO$hEX=HIAHX}A zL)n;Fd9{MFcT}36R?p$MNl`J2rib<{Yul=_nPs8J5)0*x8m6ubZT4$eZ(R|gxKm@J P1v5kcNy)&+K-U5QNH|T? diff --git a/test/shared-workers/worker-protocol/snapshots/test.js.snap b/test/shared-workers/worker-protocol/snapshots/test.js.snap index 733b1304877a21add607e74a1390b38f0b88e30c..4d680de0abd39de756984ad00d4397031b90a831 100644 GIT binary patch literal 509 zcmVzYYxCcM<7yNjndvv-{ zJ1fd&UmbrVo$G=QUZ}2+)JpeD*(aF}i``B>P5~4@;lL%shOK zCvPxrgAbqsB=`hQz!~@ozJsScYVdGVN^!{fIMr%3#uLWp8Gpk0#a&UPYcp~i6OQQF zxN4$r z@Y7ZOih2v>H(2%^HK?esp=<%=s$oSvhw=mba@DA!vVgG&yb2sOuBh8k-hm@movWxL zDCgkHRp%>eBV=p|tcQ-8Osb3aC~I)MXXYgF)c9sgo;BxXzES5&y4F zPgVGzdOTId>AO2sxtB&tC!1T4Q07nBr9p}VI!x&x*E3r0fph!=3yV=7uLS@AS)TPY literal 469 zcmV;`0V@7MRzVR$cJ?MdPM>RXjF z^`tIiHuJUfAs&3fy8#wJ2MF*J?0{e3033r4+^cYRR)}bu^PZJTCB_5BhZ!H?{Pcb( z>_)x0)&R?LOY5XkTkChFj@DhJuGTZ9p4MBXzSe@JcB(dOPeEru$9mY1_qn-5Ey=A% zEtktW{f%TFT$rhyOaCGH53072I=OTXNgZTn>gLiTB!9qPGxc&Qa~Si$gkz+BE^Q$B z3VxXBP%b@0as)2TbU2q*@KKC`Y1c@D=V?)2WeJTns%{eh+F6Vf>isCDvP+^SDU-FO z%qU$M%cr!`q*l5@Sr~0ZaS}BX8tC|-DblFjiZYoEbgnOGEs1HcLqBe&VwnWaLQp8E z6K9eHwO?Puf3K77Yw(-SxUY%*pKf2{##IzPKiq_(jN0L5msUeu&~`{$u^iBPFWloD L7Gl!Dj|Bh#*d^gG diff --git a/test/shared-workers/worker-startup-crashes/snapshots/test.js.snap b/test/shared-workers/worker-startup-crashes/snapshots/test.js.snap index b947c2c6033b3e1c2a352a394077bfbcc4adc554..3b07a2ec9b6ca4dcd5fa96b4c74f846237e1b3c6 100644 GIT binary patch literal 208 zcmV;>05AVRRzVt zB}R07+&9gx`K{eH`}TY*W`#S5lyIp27XX@i(bbEBWmJkVioQspuS2(9K!?-idi(;o KQx>DI0000U3||)j literal 164 zcmZ<^b5sbP{qW1V1t&3=!C7RnnnOkEe+?ANf~>akE^xrwc@zv4!hgJ&-v O7iE~TX|rt^&}slGxIaAr diff --git a/test/snapshot-order/snapshots/randomness.js.snap b/test/snapshot-order/snapshots/randomness.js.snap index f144e6104bbf6b4cd5ca7408b6ff16780ff86a3c..efe9b14ee22331c5e7b50abe8106d0d2a177872c 100644 GIT binary patch literal 593 zcmV-X0P=ei!h(SG+Hje2w_p z_^hs*(;tfn00000000A9n3j~2pPXIXxG1$Gvm__A!aOClB(*3vGcU8aBr{ndF)u}- zIKQYQHANx6EVW1>Q6VR>C_Pn2p$I6GpQ})kT3n)#oLHQiS)7+xP@Iup0yHWmC9xzi zl5qkv13LoA9n*r%`Mh1plAQon16J%s_DosmEEn;L8WaJ9X%qy{QEGkN@bsZ zuTzlk<^bErz#Khe+LX!j=fvLGrLk3Ivx@pwr&FGe;fkuJmg*ZdLKj-ti+em#6%$E+ zGF>G7P~=(e;24TpdvxcI(wcL5N1o>h&!}8=&cfM2(U?D@ z-ZOA%n_5u9gW`RfM}DsSxm0zf>kpAxj-qMLo<0oE;0v6=YZj=19fg&`cGWrtv2uNjCJ2iyWwVG4dBRj8usCK1Jl^=@;00000000A1 zU|?WiWC%OkHS=bF^v0t78@U=g4=XYFsF=;Y7hB+z(=Oq>tXXKYClo@j|GjuP{ z|GsdMs$BfS_51Bt{QZ6^(=J-;(}rT7scw}b;_DRTyE(x2F)&BZm^Nkd{5i3Ac4=%? z*{q_z)#;R{W4NNKsipcxjnIV__TnB-RK-NnpG+4?KNNYEJ2*(lTj=l%$s3Xm4HKt2 zPMD}{tgpKDkk`QkK{?OESLPg9a%Ik)o+C-EF0FU2JbHBGOGu4WkAhT}P;u91(STCN zSe^GB?;hRxqqOE+-jU}y!ZRvYowIOuP&DSxsP_z9+NKti@Su2~=8>N(e=b#B>H0%t zmZNCev!@TkGx!2$@R|iG8rm8f^S>(!pK#i^d$MqMP)A{|1PWhX21Z5(Mt)$xGKnxUGcd9O!!)U~B-JN1 VFTErKEW`o~Q2@(xQURMD76t zKp09g(jSWm00000000B+lFv%RKoG_=iETyEr04?-co4)E>A{l+J$vZ29yjgQY~3Vf zcU$ezgAd>%v=^U3d;p)wlTOkm^p9E)r3eiSGfTdmgx~iK+rEsOH~L}3jWCkm9qNd6 zbr2hkiib=@DB5TOK0u~8Y9pk?p5`r)>+VOb7BlP$>W)>ik_R@yIiY?^bxySh#WEBw zlwt#bY;s-Kf-MVd3$_6+#}{epCmqrqLmHo`Ub7v=y5HeV19m=oo|j7BNb*i~0CQ4j zR=SgZ&?Sw%4~_+eGHkSk}p3@XkIN8Z#QA|h_W({h3Ba8BVXQL%hlm*S-$%*eSZ;4^WDTW7G?Mt`-ezJpZpS a|CCM^>rB=00000000B) zU|?WiW#Ca~jk_46S19$rr7HA~(?&)H5ZDjIsrRibkDlA}v&v)TtCO!!GBAQgYk&$e zebVwbsddiEKDOQL^((~)MzH80!on3rFYky@lsoR?TooRMELw4BdZoS&Nt zcY86C6aP5b^*M*aO}WjX+izh-L(vu@J~y4#cMk_ywr+Cs4_MAXa8XQ_4(_ WSQ`z_(cm0u!3h8Z4g{L<1poj`$D$Yj diff --git a/test/snapshot-tests/snapshots/corrupt.js.snap b/test/snapshot-tests/snapshots/corrupt.js.snap index 4988ed27ad593206418bedb7e842a05ae1854379..c880bc043ee9296c57ef9f510b5e6b69c7a4ac8e 100644 GIT binary patch literal 308 zcmV-40n7eDRzVdUW z8~Z3_;bC~3PHbF*45BlZKHYcncR$Pawke&j?rHOeY}w(sePmgvXw(@3bWy zu=jzn*6cO6D7zhbhc?EAP}hdd3T{(1R{I6VkX}l?5?zZX!qxyFhi`LRV&4AGrLK1COB5KaF^r^A7{WRf#T6=X9w zYOKT9j2VgNYdXke!yCnJVsyOyKM~J=iTc@ctBrm@B6El6Oo`4lMv(Fc!lEyR8fD76 G0RRBs+K@Z| literal 246 zcmV|AqZ4b4o^Oa`gu${&je00000000A1 zU|?WiWDs8D6+2_ow@kZjGs^Qm{rJPk00JREikX2O%x2_ZWHtcOW1UvlpFk|jh^CYoRVgpnLVlncCJ{zv21ZsvMwYb9oKzTxy(G1`L@%otO$}>F wW(h(OSE533USdIUMt%vEOq4{Js8F6+lA(~OkegauoS2>p0C+q_4s-zk01O0O$N&HU diff --git a/test/snapshot-tests/snapshots/formatting.js.snap b/test/snapshot-tests/snapshots/formatting.js.snap index be69175c0be420ed43aa79b580b91a2a532d4357..35cca5ff8ccaabb995764b93ccf2ca5c6a9dde87 100644 GIT binary patch literal 565 zcmV-50?PeCRzV@Ml00000000BUQax`IK@hb;2(cYyx~J`v(Av&obysXHOcgO^M0%iUV&H2h7bLcBtQ zP6k!88V>gl_K!w6QR$!U?#iWPV1~;v;|7C{aHS{*3Ej-is6y;Pk|YZ*^QluM@%Ly9 zFZSS&Zx4pAQENM#H1~Jb>FiPSaWq|6Wk$mZ49Af{2;dX(6Ieq9Hcd`;9Qx4L9Cv!6 z6>S#dFd{Vf4fjoOU#rt-gQv_^w;BF?%kW8`rCfda%EPipIXYNbm({S*fpXb6ymGQE znVc*Xh@5`o3z}oL%HgLIpnF<+}g3!&;VKll6I;;;5 zzSh)rNpw*BrQWwAMLPegd0&xUpvXCbAhjR+5AD9B<$ z^XP4x#^b+9V;#edJl_AeLq#D|XaBM8k9+Ju00000000BU zQZZ{3K@{G-L&Plv3mYwbdd1$sdO<9NpurTPy@w*jgp344ypC-k#sS+3bHm zxR~_zzl4EXU+wqe^@l5qjYpe}H!m;Ud3E7^=&M&7LGbzGw}W?Q<SKx3se!J5*L5*q3bOd3VK0)b^TWCF|yk{d8=ggJ0I zg?8O-+Kr;SC{Z)Ax2qFaS$?qGZx=+BSzK6PBW8g)jye|CYJsByaS|9sOTQbr7DZrJ zd=G_C2|QF<hX|kEK!niDKH5`nJGE41+JtGYs@CKQfW6_66!V72xIQqCrOu#h|Bfk zo@RX2g>oo}`*%rCfEk0@$xkr={O=ez+}W6~8^~<4h5das!dQRGJ-4&r;=AsfFi<%{ zJ{R4O|2r&GK_4NT@h#XY3O5O9nhq?@WSUoG&+QJ}T7nh3J5vuuocR6mWVl1WJ5XG< V;{@VPt?=g|`UPsA`%Q}j008fb^*I0l diff --git a/test/snapshot-workflow/snapshots/adding.js.snap b/test/snapshot-workflow/snapshots/adding.js.snap index beaf019dd59ef7511fcba443c754e22c4e2bd7fb..f422582cf850381e3bc99ab1b1810d7a9908ee43 100644 GIT binary patch literal 665 zcmV;K0%rX|RzV%_WS8%e+~OW4aVl@HM86b_T|YL z*T#a*C5)J4npkFlK+8yy0g==_Pbha&lPYU|TvJLc`B;5)x3X7pSM^@y{+<154c-+# zpjoE0g`v{W!*sUw+4Pd+eae6gY)%BsvjI0?$dpmwa^dQ??zNKSyr_pl{|Y{JK6Eag zrq*WW^ze{O2|7|XeTIIu8g8YMq`j=*C`kaXZ~hK$`4s9(vigCyeD^_p^3??qm@s3= zh{Z9ux*oH#!Eu?hovDR06Qs|CGO;Fe)!Q9Pxg5bnX|_AbHEGj+>~QmJPrWiSI2T zun`3Y1dSpPAYia-7=ZHOaL(dI!J<%p#%;QSWM>eMBM=X69|+$$dIQQ)85DF}B-shd z`RkO((Gp7?A-ILWgMef+@F&>;WV!W(KnWUbK&&?~Sq4Z%fG%zjpr+H7gcrpLj!0i` z3HmlmAT>g?Qzm5Cicp*(#!UV-5$uGz=sz>&S%xYtdvB(2W!=lFGN zHuDT=u;v0!2`CeRqPGgvdf;(r^%&H8x1VhJeJjCRUeg@!R;~FP`)GIoCJF!m#LPdu literal 590 zcmV-U0*7Y-jMdO(m z7_2?7>2Mv>SJXKAjz1^<`&CA;Xel#LmYvrpF5WOJHe=$GUwfgS7`Mpgzv zCOt+41!aZcyu^ayjQkRXqSS)?q7sF){33;zgp$X%MkuO=(lFCYGKx|`=4(UES5QC+JmKLNctAsv5{odx$Pil?0Tsdx z!4X32!!LxeCohbYQ=X4IRQMUOhY8Gw30z!+LIWi*fMLN!WH@j^!+;CL|6Is^NB4Ox zSW{AB6-ZN}LT+ktabkKZsve*$x*n8p!lD=wLJ-9$p%XiZ(u^)B%_J(6WR~Ql0y#j0 z5^i7-h}U$nq#JFB?!44;s0l=6D^wFu^JXHs2EmdrT1reAL}5*N{zTVk1c^crKotMz cv1m+W4#rYxV0RO&(m=Qh0GIim1QZAW0C`pd3;+NC diff --git a/test/snapshot-workflow/snapshots/changing-label.js.snap b/test/snapshot-workflow/snapshots/changing-label.js.snap index 7680d19f84ea581e20b6cbca29cf3e9531538d41..0760fcd150dcdd658aed1ec45fda12f2049054b0 100644 GIT binary patch literal 326 zcmV-M0lEG`RzVib_nQZ83xwgaR%AI8L$wr@ zl`+zSOs-81!e2EIl$3CZo)*}G5p}m9qYy2W-Wjac$}#l#d*q#XT^t;Hr-wft;Ny0H z&~RNf7FpF`9y>!Dy~sQs0dCznZ%XZw%3XhGfl$i|+Uy0}0p@Yk%dXjQXcopeIJVm00000000A1 zU|?WiWH=vxW)k1ahl|7_4ZLPdFid1*0D<>F%*?gaYF=tlVhK=9Ql&z)W0+&CMn*|VL9vy-eqvc7P<2XbnI=@NvNF)> zd=Oh#!4BanLoRI~H&G!kwOk=LwYWGjJr$xJ1gfF50!XWsf_i>ls=5wTtQJTE0PMFz I9}fWl04J|xiU0rr diff --git a/test/snapshot-workflow/snapshots/invalid-snapfile.js.snap b/test/snapshot-workflow/snapshots/invalid-snapfile.js.snap index a69b3bf1e74aaf493e2609cd8c68bb1105e76dc6..9e67b2be0468f449d3a56a7fd10da6ebebbbd5f4 100644 GIT binary patch literal 538 zcmV+#0_FWdRzV?}LuT3b96`UmJo%ag&>9o63n;ZG&H~YnmyNxU6Laj9I%9YLN^W>q71&Owaq#`jP{a;~HUWD8i zq0-X|6;f`MQqF_7PJWYYk8BZU>rm+=3BLp=qH4A30CT`~U;*G=PNXQ!JlGu96#gRn zQ{-e&b1FT}{{2rs+$Q;rr+NXl13P6CKa(Gk c{d}SU&!y_u{4%5B2e!Al1HrLTi4X(;0P^bpzyJUM literal 438 zcmV;n0ZINrRzVg)cM7{AMP6TPB168ND`i{rTf@hrerT=4>lQ+>-}iEydUU zSY?$El_Wg|;v}uCLY5sHd}wz~$t*E6Ey+5j#dIlbS?Jq3r6*m%cuQXK0kZ?LXEU2S zqRo0nh!)(cUZ8Ye7{cNbtIZK>)KBZ@Yh5XacBNS44o9#poOR@~SzKjOT8sW*lTwDK zdT6peE_rRDSn`Xv-jlh#6_%6NW-jl2x$`DAx%Jn?pb5*^WEvuB`n@4qA9}R_>ITMb z)Glfn5^0FnEsKu;f=tsi0+fJ4U=iTJZ^X=TBX~2OFnvM21v3&y&AwS2bJ^YZ8B8#+ylA#ei#01L&&^8f$< diff --git a/test/snapshot-workflow/snapshots/removing-all-snapshots.js.snap b/test/snapshot-workflow/snapshots/removing-all-snapshots.js.snap index 075d0543b9b74f9eb3f4fc80da21679f43a8bdb2..434df2578bab32b3df58e70270567c6240fb9860 100644 GIT binary patch literal 337 zcmV-X0j~Z*RzVvvARs5=l zScOwJT_1}G00000000Ahkj+ZOFcgJbMFe-g!GSJDnP~@?&O(@#Zd@sfSfT0k)LR*T;7Mkr0 zhSs{4xkJc;3qtEF2X4E|oS}H|ulBt|uPOh)JKj6@fdDr>g7B jUsS7fRG-v`0lsZt@@G0ZVmBcr6Gpx8=ZKd~$ks5&LJOcShDS3y}B zXmvi20Yr8PR~bS?K%g2*D}WSQDX8b?rK;;d#cCnSfQBR`7U4HU8>UKI0f0JA=`=x6}|0IW7<%>V!Z diff --git a/test/snapshot-workflow/snapshots/removing-snapshots.js.snap b/test/snapshot-workflow/snapshots/removing-snapshots.js.snap index bc0f78ba1d52dc848f949cfc0c0ac72956bcadac..d96cd833bb3c03fd2c0b923b1f3d6d677eecfecd 100644 GIT binary patch literal 323 zcmV-J0lfY}RzVF00000000ABkikmBKoEu#MGC!n@%%#$Rp_SZu?L~2K7gW#5wd9}W;JHR z&NM3Gp^svp)D20kIt=Xc&;RYr>{pRhcJ<7gEs2qe-j=sUN+`8%axJ8|)(w|dcnU`^ zwl(!5Gp^SUJHm8^BO?`#;XTgqYTJrH;0B#nD)Ni{jYM2_qo_lujw!)Ynf@O(DY zt@iGm+OxqMMZUG|@0a_j&U>YckKsgToMU2ZnoI}nbFAR=7kJStJ*fVG@@hS(1`wc1 VXH*IQ`-$8X#Wxd{rZ%1d000)14 z=?~N=Tpx=F00000000ABkikmCFc5}YMTEVHFYsdztFYp~ z%oasF?4!6(YPyNL=rEAU zUQ7U&w>3d7c_kbCQlTxZ97sX8dqX-t=SAvm*VIz)_EsoA@VK~JJe}9foz3QRIY_5g zG+YF2lDN^v*H`AF002ZRl!O2P literal 267 zcmV+m0rdVsRzVJl?Y(`cFK_+2F1qEe=;Jn0w;*9(f zg`(7g{Gt+twEQB4n1qtl;u5{A;+O<31qC1q$w*a5OfD%+%uy(Ysn0A{C{8R(O;O0q zLuk+gNyjAULA1H2=A{-TmH^cxRVqX~hB?M+WR#Q?6kF-*Czd4wRi~tuX+qU1D+8_0 zhp_Dst}=v(fIu~rRsboqQc%y&OI6o_iq&%IDgY7Ckfg*S2ph!^un5EuU8o^Ig>XZ3 Rp@t|Z004ICn=C>B003GQZgT(t diff --git a/test/snapshot-workflow/snapshots/reorder.js.snap b/test/snapshot-workflow/snapshots/reorder.js.snap index b4eda3fa3bab85afd8439d88c73151f704bbf828..af989055d05bbe506de6bff1b56c9b8b06e4cb8d 100644 GIT binary patch literal 345 zcmV-f0jB;zRzV z4O;QgN3l=pCb3N^9vt>EAK%~Xx5`SBFKE3%)?DKI^@HXDqG(x5!5C2`YAOuV1S}dW z(dz027>Q{M5O9GIw@eU~g!oPBoov04&PP1@t7GrfYsWwF&W;v7KmfPDEay}k%b<*f zByG*(S4z?mfO~h&T;#kIC2U;ssGy*%5S*7-P@Iup zqEM7tkY7}ykd|Mh5R*`nT3n)+RUDJRrJw*rAsML(iOD6Ui8%_zF!hesOAYeqIVh0BoKe!nKAF5fG>b>V|-{{Cq0~^`yiibseAy5CG(X l#j1c}5RqEAg~%3Yqq%@63y}@i#^MNsg#dP9HEo&!0017aC&(6};Py?dH69 z>>f3V9)i9|e$wvToNk8NTSb?_cK|7Xw%b3lJi&!xQyw;%J3E7YJg|x56LgloyxcpWjd5_X*B_ JG5G%m0004J+42AY literal 409 zcmV;K0cQR|RzVro%8J99LfPe{*(q8>_yIw=(={-Fw{?;`2@-l)&vzQnd z=C-73o$XI~Ch_HyPQIDvY(}u?R%Ql>(DGEx;1 zlS@hya}NATKiWAFHQxr1u5E}GA(lH5o5N+&7WT1qa&5#QPj!Tj0cSp@(9 DgL|`v diff --git a/test/snapshot-workflow/snapshots/try-skip.js.snap b/test/snapshot-workflow/snapshots/try-skip.js.snap index b01c58d4eafb7ad53e92fd874e226c18519c9509..8d5f4b1250b4c89613558c41b064e0c8f47890f3 100644 GIT binary patch literal 333 zcmV-T0kZxPpRbgzo_3xi7S`5G4N$P8A{KkgQRyXqmx`xueB&S$G zQgK}Xm1SSYg3>k}Y|9STD70jDtVe_3suT%5PcDw5)2Oe>NpyB}J^^NUIH=&bu})A~ zhb$NNlD_&Zp90}MZWvU`jtoXuXb(?q$P$8mH|$eqc{;S+bIpzx(%14IdEFyddonIKEX0_5E^Qs|=DH-F fUJe{p5)Ss80@zT&M*N?6#yrvU%}>nM-X literal 279 zcmV+y0qFigRzV>eg7Xp!iZk*{ z6pB&{@{39o((;QGViHPHi%ayfienPE6cm6cBqLQJF}b8PF-M^orarS+p*XQDHANva z51~O1Bps8W2hrx9nwMIXSOQd&RH+c{80HwOkx^1oP;8~IpIDX%RGpGqrU_N6tgMid zS)80$l%kNRP@J7vPyo~hvkaod4&hishzJN6Vn`Z+M0CND>Pe|U52Y$-6sIQV=cOo= d6jf@fb7@2564Odji_oML6ae+yz(Yg<008!7aESl_ diff --git a/test/test-timeouts/snapshots/test.js.snap b/test/test-timeouts/snapshots/test.js.snap index 340559606e01e0ab8053540d49470ccd49c0fcb2..ccf0fc9c670151de20dc02722088be063806e5b5 100644 GIT binary patch literal 302 zcmV+}0nz?JRzViVD#n4nRXe>ukKqz)WT} zc6gL<1CGF6gUd0%P6{kpe(3){*`Mpi`qd-9ZApw+deLGW`BAhZX6%Ty8(DNinkAT_ zW5WY(xc9>E+qOl)`-@!dsh@yC)o^;(lSXC=V*HRW69so1ve=My6oL;)wBvnEyg6iN zu`Xktz^sPiIs|+LNL^W$3Jw&2fqf00000000Bi zU|?WiWbh5;cyLAH_!XVqch*L~I?2n#00JgZ{2qvz8Q8&MjI0cTjA|hnsS1h3#i>Ol znfZANxv9m)iRq~dxuwM=3Q0g2h2oN;%)E5C9u7t(9UyH4#KMehf{d(=MMa5~jEpcA zKR-VMBNqcBBLgEhBclyW6LUI{&IRI$FpX^fNm;4MC5%jPrhtF|10yd3BNGE7KTr*m z2qQDlje?AvY57IDi6teeDKHTxBLg%wtT~BEsW~tnk8@&9PHKumd1gt56#%LvM0^(k F001IoV}Jkv From 29024af705dd9c4cea2aeff0582a94c3064eff69 Mon Sep 17 00:00:00 2001 From: Mark Wubben Date: Sat, 1 Jan 2022 19:21:59 +0100 Subject: [PATCH 6/9] Test compatibility with TypeScript 4.5 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbd814f81..4816f36a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ts-version: [~4.4] + ts-version: [~4.4, ~4.5] steps: - uses: actions/checkout@v2 - run: rm .npmrc From 0187779a0b48bc00efc6c23a6aab41035b7102c0 Mon Sep 17 00:00:00 2001 From: Mark Wubben Date: Sun, 2 Jan 2022 19:38:30 +0100 Subject: [PATCH 7/9] Dependency updates * Fix reference to chalk's color level * Upgrade XO and reformat * Update dev dependencies * Update production dependencies * Rebuild lockfile * CI: Continue when 'npm ls' errors in TypeScript compatibility job --- .github/workflows/ci.yml | 1 + .xo-config.cjs | 9 + entrypoints/main.mjs | 4 +- lib/api.js | 9 +- lib/chalk.js | 9 +- lib/cli.js | 7 +- lib/concordance-options.js | 3 +- lib/fork.js | 2 +- lib/globs.js | 18 +- lib/load-config.js | 6 +- lib/worker/base.js | 10 +- lib/worker/channel.cjs | 36 +- lib/worker/guard-environment.cjs | 3 +- package-lock.json | 3721 ++++++++--------- package.json | 36 +- test-d/implementation-result.ts | 2 +- test-tap/code-excerpt.js | 4 +- .../fail-fast/multiple-files/passes-slow.cjs | 3 +- test-tap/integration/repl.js | 2 +- test-tap/integration/snapshots.js | 2 +- test/cjs-default/fixtures/test.cjs | 3 +- test/helpers/exec.js | 4 +- .../fixtures/randomness/test.js | 10 +- .../fixtures/report-declaration-order/test.js | 10 +- 24 files changed, 1868 insertions(+), 2046 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4816f36a8..a52c69565 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,6 +58,7 @@ jobs: env: TS_VERSION: ${{ matrix.ts-version }} - run: npm ls typescript + continue-on-error: true - run: npx tsd lockfile_churn: diff --git a/.xo-config.cjs b/.xo-config.cjs index 69b03cc44..97c38e53d 100644 --- a/.xo-config.cjs +++ b/.xo-config.cjs @@ -40,6 +40,15 @@ module.exports = { 'unicorn/prefer-module': 'off', }, }, + { + files: [ + 'test/**/fixtures/**', + 'test-tap/**fixture/**', + ], + rules: { + 'unicorn/no-empty-file': 'off', + }, + }, { // TODO: Update tests. files: 'test/**', diff --git a/entrypoints/main.mjs b/entrypoints/main.mjs index f622a2e08..36b076bb6 100644 --- a/entrypoints/main.mjs +++ b/entrypoints/main.mjs @@ -1,3 +1 @@ -import test from '../lib/worker/main.cjs'; - -export default test; +export {default} from '../lib/worker/main.cjs'; diff --git a/lib/api.js b/lib/api.js index 9acea196a..bf0cb2498 100644 --- a/lib/api.js +++ b/lib/api.js @@ -232,10 +232,13 @@ export default class Api extends Emittery { } }); - const providerStates = (await Promise.all(providers.map(async ({type, main}) => { + const providerStates = []; + await Promise.all(providers.map(async ({type, main}) => { const state = await main.compile({cacheDir: this._createCacheDir(), files: testFiles}); - return state === null ? null : {type, state}; - }))).filter(state => state !== null); + if (state !== null) { + providerStates.push({type, state}); + } + })); // Resolve the correct concurrency value. let concurrency = Math.min(os.cpus().length, isCi ? 2 : Number.POSITIVE_INFINITY); diff --git a/lib/chalk.js b/lib/chalk.js index 3ca43b15b..eca6d4267 100644 --- a/lib/chalk.js +++ b/lib/chalk.js @@ -1,9 +1,8 @@ -import chalk from 'chalk'; +import {Chalk} from 'chalk'; // eslint-disable-line unicorn/import-style -let instance = new chalk.Instance(); // eslint-disable-line import/no-mutable-exports -export default instance; +let chalk = new Chalk(); // eslint-disable-line import/no-mutable-exports -export {instance as chalk}; +export {chalk}; let configured = false; export function set(options) { @@ -12,5 +11,5 @@ export function set(options) { } configured = true; - instance = new chalk.Instance(options); + chalk = new Chalk(options); } diff --git a/lib/cli.js b/lib/cli.js index ec3dd8837..a80d4b1a4 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -231,7 +231,12 @@ export default async function loadCli() { // eslint-disable-line complexity } } - const chalkOptions = {level: combined.color === false ? 0 : (await import('chalk')).level}; // eslint-disable-line node/no-unsupported-features/es-syntax + const chalkOptions = {level: 0}; + if (combined.color !== false) { + const {supportsColor: {level}} = await import('chalk'); // eslint-disable-line node/no-unsupported-features/es-syntax, unicorn/import-style + chalkOptions.level = level; + } + const {set: setChalk} = await import('./chalk.js'); // eslint-disable-line node/no-unsupported-features/es-syntax setChalk(chalkOptions); diff --git a/lib/concordance-options.js b/lib/concordance-options.js index 5da1b691c..48a367054 100644 --- a/lib/concordance-options.js +++ b/lib/concordance-options.js @@ -1,11 +1,12 @@ import {inspect} from 'node:util'; import ansiStyles from 'ansi-styles'; +import {Chalk} from 'chalk'; // eslint-disable-line unicorn/import-style import stripAnsi from 'strip-ansi'; import {chalk} from './chalk.js'; -const forceColor = new chalk.Instance({level: Math.max(chalk.level, 1)}); +const forceColor = new Chalk({level: Math.max(chalk.level, 1)}); const colorTheme = { boolean: ansiStyles.yellow, diff --git a/lib/fork.js b/lib/fork.js index 17fce418e..3f77039bd 100644 --- a/lib/fork.js +++ b/lib/fork.js @@ -4,7 +4,7 @@ import {fileURLToPath} from 'node:url'; import {Worker} from 'node:worker_threads'; import Emittery from 'emittery'; -import pEvent from 'p-event'; +import {pEvent} from 'p-event'; import {controlFlow} from './ipc-flow-control.cjs'; import serializeError from './serialize-error.js'; diff --git a/lib/globs.js b/lib/globs.js index ad982bb1c..4a751db6c 100644 --- a/lib/globs.js +++ b/lib/globs.js @@ -4,27 +4,23 @@ import path from 'node:path'; import {globby, globbySync} from 'globby'; import { - classify, defaultIgnorePatterns, hasExtension, - isHelperish, - matches, normalizeFileForMatching, - normalizePattern, normalizePatterns, processMatchingPatterns, } from './glob-helpers.cjs'; export { classify, - defaultIgnorePatterns, - hasExtension, isHelperish, matches, - normalizeFileForMatching, normalizePattern, + defaultIgnorePatterns, + hasExtension, + normalizeFileForMatching, normalizePatterns, -}; +} from './glob-helpers.cjs'; const defaultIgnoredByWatcherPatterns = [ '**/*.snap.md', // No need to rerun tests when the Markdown files change. @@ -120,11 +116,13 @@ const globDirectoriesSync = (cwd, patterns) => { }; export async function findFiles({cwd, extensions, filePatterns}) { - return (await globFiles(cwd, filePatterns)).filter(file => hasExtension(extensions, file)); + const files = await globFiles(cwd, filePatterns); + return files.filter(file => hasExtension(extensions, file)); } export async function findTests({cwd, extensions, filePatterns}) { - return (await findFiles({cwd, extensions, filePatterns})).filter(file => !path.basename(file).startsWith('_')); + const files = await findFiles({cwd, extensions, filePatterns}); + return files.filter(file => !path.basename(file).startsWith('_')); } export function getChokidarIgnorePatterns({ignoredByWatcherPatterns}) { diff --git a/lib/load-config.js b/lib/load-config.js index 1748b91b2..e02809ed3 100644 --- a/lib/load-config.js +++ b/lib/load-config.js @@ -86,11 +86,13 @@ export async function loadConfig({configFile, resolveFrom = process.cwd(), defau let searchDir = projectDir; const stopAt = path.dirname(repoRoot); do { - [{config: fileConf, fileForErrorMessage, configFile} = {config: NO_SUCH_FILE, fileForErrorMessage: undefined}, ...conflicting] = (await Promise.all([ // eslint-disable-line no-await-in-loop + const results = await Promise.all([ // eslint-disable-line no-await-in-loop loadConfigFile({projectDir, configFile: path.join(searchDir, 'ava.config.js')}), loadConfigFile({projectDir, configFile: path.join(searchDir, 'ava.config.cjs')}), loadConfigFile({projectDir, configFile: path.join(searchDir, 'ava.config.mjs')}), - ])).filter(result => result !== null); + ]); + + [{config: fileConf, fileForErrorMessage, configFile} = {config: NO_SUCH_FILE, fileForErrorMessage: undefined}, ...conflicting] = results.filter(result => result !== null); searchDir = path.dirname(searchDir); } while (fileConf === NO_SUCH_FILE && searchDir !== stopAt); diff --git a/lib/worker/base.js b/lib/worker/base.js index 100dba757..20e36e33d 100644 --- a/lib/worker/base.js +++ b/lib/worker/base.js @@ -123,13 +123,13 @@ const run = async options => { // Install before processing options.require, so if helpers are added to the // require configuration the *compiled* helper will be loaded. const {projectDir, providerStates = []} = options; - const providers = (await Promise.all(providerStates.map(async ({type, state}) => { + const providers = []; + await Promise.all(providerStates.map(async ({type, state}) => { if (type === 'typescript') { - return (await providerManager.typescript(projectDir)).worker({extensionsToLoadAsModules, state}); + const provider = await providerManager.typescript(projectDir); + providers.push(provider.worker({extensionsToLoadAsModules, state})); } - - return null; - }))).filter(provider => provider !== null); + })); const require = createRequire(import.meta.url); const load = async ref => { diff --git a/lib/worker/channel.cjs b/lib/worker/channel.cjs index 41a55e37d..7eed7960a 100644 --- a/lib/worker/channel.cjs +++ b/lib/worker/channel.cjs @@ -3,12 +3,44 @@ const events = require('events'); const process = require('process'); const {MessageChannel, threadId} = require('worker_threads'); -const pEvent = require('p-event'); - const timers = require('../now-and-timers.cjs'); const {isRunningInChildProcess, isRunningInThread} = require('./utils.cjs'); +let pEvent = async (emitter, event, options) => { + // We need to import p-event, but import() is asynchronous. Buffer any events + // emitted in the meantime. Don't handle errors. + const buffer = []; + const addToBuffer = (...args) => buffer.push(args); + emitter.on(event, addToBuffer); + + try { + ({pEvent} = await import('p-event')); // eslint-disable-line node/no-unsupported-features/es-syntax + } finally { + emitter.off(event, addToBuffer); + } + + if (buffer.length === 0) { + return pEvent(emitter, event, options); + } + + // Now replay buffered events. + const replayEmitter = new events.EventEmitter(); + const promise = pEvent(replayEmitter, event, options); + for (const args of buffer) { + replayEmitter.emit(event, ...args); + } + + const replay = (...args) => replayEmitter.emit(event, ...args); + emitter.on(event, replay); + + try { + return await promise; + } finally { + emitter.off(event, replay); + } +}; + const selectAvaMessage = type => message => message.ava && message.ava.type === type; class RefCounter { diff --git a/lib/worker/guard-environment.cjs b/lib/worker/guard-environment.cjs index f29f454de..d7909f30a 100644 --- a/lib/worker/guard-environment.cjs +++ b/lib/worker/guard-environment.cjs @@ -6,12 +6,11 @@ const {isRunningInThread, isRunningInChildProcess} = require('./utils.cjs'); // Check if the test is being run without AVA cli if (!isRunningInChildProcess && !isRunningInThread) { - const chalk = require('chalk'); // Use default Chalk instance. if (process.argv[1]) { const fp = path.relative('.', process.argv[1]); console.log(); - console.error(`Test files must be run with the AVA CLI:\n\n ${chalk.grey.dim('$')} ${chalk.cyan('ava ' + fp)}\n`); + console.error(`Test files must be run with the AVA CLI:\n\n $ ava ${fp}\n`); process.exit(1); // eslint-disable-line unicorn/no-process-exit } else { diff --git a/package-lock.json b/package-lock.json index 877b9ec86..e3f4ce04e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,17 +9,17 @@ "version": "4.0.0-rc.1", "license": "MIT", "dependencies": { - "acorn": "^8.5.0", + "acorn": "^8.7.0", "acorn-walk": "^8.2.0", "ansi-styles": "^6.1.0", "arrgv": "^1.0.2", "arrify": "^3.0.0", "callsites": "^4.0.0", - "cbor": "^8.0.2", - "chalk": "^4.1.2", + "cbor": "^8.1.0", + "chalk": "^5.0.0", "chokidar": "^3.5.2", "chunkd": "^2.0.1", - "ci-info": "^3.2.0", + "ci-info": "^3.3.0", "ci-parallel-vars": "^1.0.1", "clean-yaml-object": "^0.1.0", "cli-truncate": "^3.1.0", @@ -27,7 +27,7 @@ "common-path-prefix": "^3.0.0", "concordance": "^5.0.4", "currently-unhandled": "^0.4.1", - "debug": "^4.3.2", + "debug": "^4.3.3", "del": "^6.0.0", "emittery": "^0.10.0", "figures": "^4.0.0", @@ -40,43 +40,43 @@ "matcher": "^5.0.0", "mem": "^9.0.1", "ms": "^2.1.3", - "p-event": "^4.2.0", - "p-map": "^5.2.0", + "p-event": "^5.0.1", + "p-map": "^5.3.0", "picomatch": "^2.3.0", "pkg-conf": "^4.0.0", - "plur": "^4.0.0", + "plur": "^5.1.0", "pretty-ms": "^7.0.1", "resolve-cwd": "^3.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", + "stack-utils": "^2.0.5", "strip-ansi": "^7.0.1", "supertap": "^2.0.0", "temp-dir": "^2.0.0", "write-file-atomic": "^3.0.3", - "yargs": "^17.2.1" + "yargs": "^17.3.1" }, "bin": { "ava": "entrypoints/cli.mjs" }, "devDependencies": { "@ava/test": "github:avajs/test", - "@ava/typescript": "^2.0.0", - "@sinonjs/fake-timers": "^8.0.1", + "@ava/typescript": "^3.0.1", + "@sinonjs/fake-timers": "^8.1.0", "ansi-escapes": "^5.0.0", - "c8": "^7.10.0", + "c8": "^7.11.0", "delay": "^5.0.0", - "execa": "^5.1.1", + "execa": "^6.0.0", "fs-extra": "^10.0.0", "get-stream": "^6.0.1", "replace-string": "^4.0.0", - "sinon": "^11.1.2", - "tap": "^15.0.10", + "sinon": "^12.0.1", + "tap": "^15.1.5", "temp-write": "^5.0.0", "tempy": "^2.0.0", "touch": "^3.1.0", - "tsd": "^0.18.0", + "tsd": "^0.19.1", "typescript": "^4.4.4", - "xo": "^0.46.3", + "xo": "^0.47.0", "zen-observable": "^0.8.15" }, "engines": { @@ -104,16 +104,105 @@ } }, "node_modules/@ava/typescript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ava/typescript/-/typescript-2.0.0.tgz", - "integrity": "sha512-sn+upcMk81AMrlnx/hb/9T7gCGuBfw7hi+p79NPSSQMvY2G64mOB7qRaDExiHiZfZ7FN9j7HwQeFhHZLGD/NWQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@ava/typescript/-/typescript-3.0.1.tgz", + "integrity": "sha512-/JXIUuKsvkaneaiA9ckk3ksFTqvu0mDNlChASrTe2BnDsvMbhQdPWyqQjJ9WRJWVhhs5TWn1/0Pp1G6Rv8Syrw==", "dev": true, "dependencies": { - "escape-string-regexp": "^4.0.0", - "execa": "^5.0.0" + "escape-string-regexp": "^5.0.0", + "execa": "^5.1.1" + }, + "engines": { + "node": ">=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17" + } + }, + "node_modules/@ava/typescript/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": ">=12.22 <13 || >=14.16 <15 || >=15" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@ava/typescript/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/@ava/typescript/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/@ava/typescript/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/@ava/typescript/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/@ava/typescript/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/@ava/typescript/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/@ava/v4": { @@ -185,42 +274,133 @@ } } }, + "node_modules/@ava/v4/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/@ava/v4/node_modules/chalk/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/@ava/v4/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/@ava/v4/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/@ava/v4/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/@ava/v4/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/@ava/v4/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/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", + "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.7", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -236,10 +416,19 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/eslint-parser": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.0.tgz", - "integrity": "sha512-c+AsYOHjI+FgCa+ifLd8sDXp4U4mjkfFgL9NdQWhuA731kAUJs0WdJIXET4A14EJAR9Jv9FFF/MzPWJfV9Oirw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.5.tgz", + "integrity": "sha512-mUqYa46lgWqHKQ33Q6LNCGp/wPR3eqOYTUixHFsfrSQqRxH0+WOzca75iEjFr5RDGH1dDz622LaHhLOzOuQRUA==", "dev": true, "dependencies": { "eslint-scope": "^5.1.1", @@ -254,13 +443,53 @@ "eslint": "^7.5.0 || ^8.0.0" } }, + "node_modules/@babel/eslint-parser/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@babel/eslint-parser/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/@babel/eslint-parser/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/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", + "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.16.7", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -269,14 +498,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -286,177 +515,159 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", "dev": true, "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -521,9 +732,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", + "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -533,32 +744,33 @@ } }, "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", + "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -567,12 +779,12 @@ } }, "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", + "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -586,18 +798,18 @@ "dev": true }, "node_modules/@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.0.0", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -605,6 +817,12 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "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/globals": { "version": "13.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", @@ -629,16 +847,16 @@ "node": ">= 4" } }, - "node_modules/@eslint/eslintrc/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==", + "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, - "engines": { - "node": ">=8" + "dependencies": { + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { @@ -654,13 +872,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, - "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" }, @@ -669,9 +886,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -793,9 +1010,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", - "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" @@ -819,9 +1036,9 @@ "dev": true }, "node_modules/@tsd/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-XNaotnbhU6sKSXYg9rVz4L9i9g+j+x1IIgMPztK8KumtMEsrLXcqPBKp/qzmUKwAZEqgHs4+TTz90dUu5/aIqQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-iDlLkdg3sCjUSNdoUCsYM/SXheHrdxHsR6msIkbFDW4pV6gHTMwg/8te/paLtywDjGL4S4ByDdUKA3RbfdBX0g==", "dev": true, "bin": { "tsc": "typescript/bin/tsc", @@ -829,9 +1046,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "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": "*", @@ -839,9 +1056,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.2.tgz", + "integrity": "sha512-TzgYCWoPiTeRg6RQYgtuW7iODtVoKu3RVL72k3WohqhjfaOLK5Mg2T4Tg1o2bSfu0vPkoI48wdQFv5b/Xe04wQ==", "dev": true, "peer": true, "dependencies": { @@ -856,9 +1073,9 @@ "dev": true }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, "node_modules/@types/json-schema": { @@ -880,9 +1097,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.6.tgz", + "integrity": "sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA==", "dev": true, "peer": true }, @@ -1080,9 +1297,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "bin": { "acorn": "bin/acorn" }, @@ -1323,9 +1540,9 @@ } }, "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { "safer-buffer": "~2.1.0" @@ -1340,16 +1557,6 @@ "node": ">=0.8" } }, - "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, - "peer": 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", @@ -1412,9 +1619,9 @@ } }, "node_modules/blueimp-md5": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", - "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -1437,16 +1644,16 @@ } }, "node_modules/browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -1478,9 +1685,9 @@ } }, "node_modules/c8": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.10.0.tgz", - "integrity": "sha512-OAwfC5+emvA6R7pkYFVBTOtI5ruf9DahffGmIqUc9l6wEh0h7iAFP6dt/V9Ioqlr2zW5avX9U9/w1I4alTRHkA==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.0.tgz", + "integrity": "sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1504,58 +1711,14 @@ } }, "node_modules/c8/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/c8/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/c8/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/c8/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/c8/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -1572,48 +1735,31 @@ } }, "node_modules/c8/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/c8/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "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.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/c8/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/c8/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -1698,9 +1844,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001256", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001256.tgz", - "integrity": "sha512-QirrvMLmB4txNnxiaG/xbm6FSzv9LqOZ3Jp9VtCYb3oPIfCHpr/oGn38pFq0udwlkctvXQgPthaXqJ76DaYGnA==", + "version": "1.0.30001295", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz", + "integrity": "sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ==", "dev": true, "funding": { "type": "opencollective", @@ -1714,61 +1860,27 @@ "dev": true }, "node_modules/cbor": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.0.2.tgz", - "integrity": "sha512-H5WTjQYgyHQI0VrCmbyQBOPy1353MjmUi/r3DbPib4U13vuyqm7es9Mfpe8G58bN/mCdRlJWkiCrPl1uM1wAlg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dependencies": { - "nofilter": "^3.0.3" + "nofilter": "^3.1.0" }, "engines": { "node": ">=12.19" } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==", "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk/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==" - }, "node_modules/chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -1805,9 +1917,9 @@ "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==" }, "node_modules/ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" }, "node_modules/ci-parallel-vars": { "version": "1.0.1", @@ -1849,17 +1961,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/clean-yaml-object": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", @@ -1884,57 +1985,58 @@ } }, "node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/cliui/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=4" + "node": ">=8" } }, + "node_modules/cliui/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==" + }, "node_modules/cliui/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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, + "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==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/cliui/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/cliui/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/code-excerpt": { @@ -1948,15 +2050,6 @@ "node": ">=10" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -1981,12 +2074,6 @@ "color-support": "bin.js" } }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2040,20 +2127,6 @@ "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" } }, - "node_modules/concordance/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/confusing-browser-globals": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", @@ -2182,9 +2255,9 @@ } }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { "ms": "2.1.2" }, @@ -2429,9 +2502,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.836", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.836.tgz", - "integrity": "sha512-Ney3pHOJBWkG/AqYjrW0hr2AUCsao+2uvq9HUlRP8OlpSdk/zOHOUJP7eu0icDvePC9DlgffuelP4TnOJmMRUg==", + "version": "1.4.31", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.31.tgz", + "integrity": "sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ==", "dev": true }, "node_modules/emittery": { @@ -2489,12 +2562,15 @@ } }, "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-1.0.0.tgz", + "integrity": "sha512-SRy6e7u1tZgohoxL952q9+kbRkkUrzi63dB7J4zr6wOSMQrCD0KJUNhMZajGTNQfdY68PaStfmIzh7To/FKilQ==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/equal-length": { @@ -2588,50 +2664,47 @@ } }, "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, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", + "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", "dev": true, - "peer": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -2639,11 +2712,10 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2651,7 +2723,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2725,14 +2797,63 @@ } }, "node_modules/eslint-formatter-pretty/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/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/eslint-formatter-pretty/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2748,27 +2869,42 @@ "node": ">=8" } }, + "node_modules/eslint-formatter-pretty/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/eslint-formatter-pretty/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/eslint-formatter-pretty/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "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.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -2850,14 +2986,13 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "dependencies": { "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "engines": { "node": ">=4" @@ -2939,18 +3074,6 @@ "node": ">=4" } }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-ava": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-13.1.0.tgz", @@ -3057,9 +3180,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", - "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -3067,9 +3190,9 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.0", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", - "is-core-module": "^2.7.0", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", @@ -3169,6 +3292,15 @@ "node": ">=4" } }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-prettier": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", @@ -3191,9 +3323,9 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "37.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz", - "integrity": "sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ==", + "version": "39.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-39.0.0.tgz", + "integrity": "sha512-fd5RK2FtYjGcIx3wra7csIE/wkkmBo22T1gZtRTsLr1Mb+KsFKJ+JOdSqhHXQUrI/JTs/Mon64cEYzTgSCbltw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.14.9", @@ -3231,21 +3363,6 @@ "node": ">=8" } }, - "node_modules/eslint-plugin-unicorn/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-rule-docs": { "version": "1.1.231", "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz", @@ -3253,16 +3370,16 @@ "dev": true }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint-template-visitor": { @@ -3281,6 +3398,15 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-template-visitor/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-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", @@ -3299,7 +3425,7 @@ "eslint": ">=5" } }, - "node_modules/eslint-visitor-keys": { + "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==", @@ -3308,117 +3434,108 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/eslint/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, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "node_modules/eslint/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, - "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/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==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/eslint-utils/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==", + "node_modules/eslint/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, - "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/eslint/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/eslint/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/eslint/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, - "peer": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/espree/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==", + "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, - "peer": true, + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, "node_modules/eslint/node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, - "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -3434,59 +3551,39 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "peer": true, "engines": { "node": ">= 4" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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, - "peer": true, "dependencies": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "js-yaml": "bin/js-yaml.js" } }, "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "peer": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/eslint/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, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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, - "peer": true, "engines": { "node": ">=10" }, @@ -3495,37 +3592,28 @@ } }, "node_modules/esm-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-2.0.0.tgz", - "integrity": "sha512-FM1aYzy+6rfTR4XHE5CwGAEliEvKCpCgDpnjqtk2eYEcLuTHK5SzypGQrkyaFB21utY8EePOrZhQvk3ayZhQjQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esm-utils/-/esm-utils-2.0.1.tgz", + "integrity": "sha512-eoz4dzSzykeh9mfRlCDTkNezD2zlPdFftiTH/5OZpE08hGpUPljh5rHDZqucIhX1Wl4cO6FDUUBp3tobvV7dWA==", "dev": true, "funding": { "url": "https://github.com/fisker/esm-utils?sponsor=1" } }, "node_modules/espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "dependencies": { - "acorn": "^8.5.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" + "eslint-visitor-keys": "^3.1.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3556,15 +3644,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3577,19 +3656,10 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "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==", + "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" @@ -3620,23 +3690,23 @@ "dev": true }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.0.0.tgz", + "integrity": "sha512-m4wU9j4Z9nXXoqT8RSfl28JSwmMNLFF69OON8H/lL3NeU0tNpGz313bcOfYoBBHokB0dC2tMl3VUcKgHELhL2Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.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" + "npm-run-path": "^5.0.1", + "onetime": "^6.0.0", + "signal-exit": "^3.0.5", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -3718,17 +3788,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3811,9 +3870,9 @@ } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "node_modules/foreground-child": { @@ -3926,8 +3985,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true, - "peer": true + "dev": true }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -4028,9 +4086,9 @@ } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4165,6 +4223,7 @@ "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" } @@ -4212,6 +4271,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hasha/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/hasha/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -4255,18 +4326,18 @@ } }, "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=12.20.0" } }, "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "engines": { "node": ">= 4" } @@ -4568,9 +4639,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "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" @@ -4698,12 +4769,12 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4768,12 +4839,12 @@ } }, "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "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.0" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4854,6 +4925,15 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", @@ -4930,9 +5010,9 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "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", @@ -4940,7 +5020,7 @@ "source-map": "^0.6.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { @@ -4953,9 +5033,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4966,21 +5046,21 @@ } }, "node_modules/jackspeak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.0.tgz", - "integrity": "sha512-VDcSunT+wcccoG46FtzuBAyQKlzhHjli4q31e1fIHGOsRspqNUFjVzGb+7eIFDlTvqLygxapDHPHS0ouT2o/tw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.1.tgz", + "integrity": "sha512-npN8f+M4+IQ8xD3CcWi3U62VQwKlT3Tj4GxbdT/fYTmeogD9eBF9OFdpoFG/VPNoshRjPUijdkp/p2XrzUHaVg==", "dev": true, "dependencies": { - "cliui": "^4.1.0" + "cliui": "^7.0.4" }, "engines": { "node": ">=8" } }, "node_modules/jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "version": "27.4.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", + "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", "dev": true, "peer": true, "dependencies": { @@ -5075,9 +5155,9 @@ "dev": true }, "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "node_modules/json-schema-traverse": { @@ -5126,18 +5206,18 @@ } }, "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/just-extend": { @@ -5215,30 +5295,36 @@ } }, "node_modules/line-column-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-2.0.0.tgz", - "integrity": "sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-3.0.0.tgz", + "integrity": "sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==", "dev": true, "dependencies": { - "type-fest": "^0.4.1" + "type-fest": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/line-column-path/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.8.0.tgz", + "integrity": "sha512-O+V9pAshf9C6loGaH0idwsmugI2LxVNR7DtS40gVo2EXZVYFgz9OuNtOhgHLdHdapOEWNdvz9Ob/eeuaWwwlxA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "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/load-json-file": { @@ -5288,13 +5374,6 @@ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true, - "peer": true - }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -5313,13 +5392,6 @@ "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": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true, - "peer": true - }, "node_modules/log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -5345,28 +5417,65 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/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==", + "node_modules/log-symbols/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/log-symbols/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/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/log-symbols/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": { - "js-tokens": "^3.0.0 || ^4.0.0" + "color-name": "~1.1.4" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/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/log-symbols/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/lowercase-keys": { @@ -5404,6 +5513,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -5416,9 +5534,9 @@ } }, "node_modules/map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", + "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" @@ -5441,17 +5559,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matcher/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/md5-hex": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", @@ -5555,21 +5662,21 @@ } }, "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "dependencies": { - "mime-db": "1.49.0" + "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" @@ -5636,9 +5743,9 @@ } }, "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -5718,15 +5825,15 @@ } }, "node_modules/node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/nofilter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.0.3.tgz", - "integrity": "sha512-TN/MCrQmXQk5DyUJ8TGUq1Il8rv4fTsjddLmMopV006QP8DMkglmGgYfQKD5620vXLRXfr8iGI6ZZ4/ZWld2cQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", "engines": { "node": ">=12.19" } @@ -5748,29 +5855,14 @@ }, "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-package-data/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "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" @@ -5785,24 +5877,30 @@ } }, "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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.0.1.tgz", + "integrity": "sha512-ybBJQUSyFwEEhqO2lXmyKOl9ucHtyZBWVM0h0FiMfT/+WKxCUZFa95qAR2X3w/w6oigN3B0b2UNHZbD+kdfD5w==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nyc": { @@ -5860,9 +5958,9 @@ } }, "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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" @@ -6010,26 +6108,26 @@ } }, "node_modules/nyc/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/nyc/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "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.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -6108,19 +6206,10 @@ "node": ">=0.10.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6179,21 +6268,100 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/onetime/node_modules/mimic-fn": { + "node_modules/open-editor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-4.0.0.tgz", + "integrity": "sha512-5mKZ98iFdkivozt5XTCOspoKbL3wtYu6oOoVxfWQ0qUX9NYsK8pdkHE7VUHXr+CwyC3nf6mV0S5FPsMS65innw==", + "dev": true, + "dependencies": { + "env-editor": "^1.0.0", + "execa": "^5.1.1", + "line-column-path": "^3.0.0", + "open": "^8.4.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-editor/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/open-editor/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/open-editor/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/open-editor/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==", @@ -6202,40 +6370,51 @@ "node": ">=6" } }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "node_modules/open-editor/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": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "path-key": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-3.0.0.tgz", - "integrity": "sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==", + "node_modules/open-editor/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": { - "env-editor": "^0.4.1", - "execa": "^5.0.0", - "line-column-path": "^2.0.0", - "open": "^7.3.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open-editor/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/open/node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -6286,14 +6465,14 @@ } }, "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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", "dependencies": { - "p-timeout": "^3.1.0" + "p-timeout": "^5.0.2" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6303,6 +6482,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, "engines": { "node": ">=4" } @@ -6338,9 +6518,9 @@ } }, "node_modules/p-map": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.2.0.tgz", - "integrity": "sha512-VJA0IG5Y+tDP6ndo/gZx71kxro1hZrYn8IbnkeQgJeoeArbfO4dH4aV5yFFfz1uIrviNdG1BbnUp5MlPb97feg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", + "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -6352,14 +6532,14 @@ } }, "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==", - "dependencies": { - "p-finally": "^1.0.0" - }, + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.0.2.tgz", + "integrity": "sha512-sEmji9Yaq+Tw+STwsGAE56hf7gMy9p0tQfJojIAamB7WHJYJKf1qlsg9jqBWG8q9VCxKPhZaP/AcXwEoBcYQhQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -6488,10 +6668,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -6515,9 +6701,9 @@ } }, "node_modules/pkg-conf/node_modules/find-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.0.0.tgz", - "integrity": "sha512-NU20P/qRR4fbjbfQgf5SL6L7AbQbUG69OmBJ3o+DEmHwSwKaaeZ+9ok/zuE5Z8pyFSGPerTen16gLZTs1v1zjQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.2.0.tgz", + "integrity": "sha512-yWHzMzXCaFoABSnFTCPKNFlYoq4mSga9QLRRKOCLSJ33hSkzROB14ITbAWW0QDQDyuzsPQ33S1DsOWQb/oW1yA==", "dependencies": { "locate-path": "^7.0.0", "path-exists": "^5.0.0" @@ -6655,14 +6841,14 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", + "integrity": "sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==", "dependencies": { - "irregular-plurals": "^3.2.0" + "irregular-plurals": "^3.3.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6687,9 +6873,9 @@ } }, "node_modules/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -6745,17 +6931,6 @@ "node": ">=0.4.0" } }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, "node_modules/proto-props": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", @@ -6827,26 +7002,21 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "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": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "@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": ">=0.10.0" + "node": ">=8" } }, - "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/read-pkg-up": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", @@ -6877,12 +7047,6 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/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-up/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -6895,18 +7059,6 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/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-up/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6934,31 +7086,34 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/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==", + "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, - "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/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==", + "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, - "engines": { - "node": ">=8" + "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-up/node_modules/semver": { + "node_modules/read-pkg/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", @@ -6967,10 +7122,10 @@ "semver": "bin/semver" } }, - "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==", + "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" @@ -7094,16 +7249,6 @@ "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, - "peer": 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", @@ -7228,12 +7373,17 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/serialize-error": { @@ -7313,18 +7463,18 @@ } }, "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-12.0.1.tgz", + "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/fake-timers": "^8.1.0", "@sinonjs/samsam": "^6.0.2", "diff": "^5.0.0", "nise": "^5.1.0", @@ -7335,15 +7485,6 @@ "url": "https://opencollective.com/sinon" } }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -7377,9 +7518,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "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", @@ -7439,9 +7580,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "node_modules/sprintf-js": { @@ -7494,13 +7635,13 @@ } }, "node_modules/string-width": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.0.tgz", - "integrity": "sha512-zwXcRmLUdiWhMPrHz6EXITuyTgcEnUqDzspTkCLhQovxywWz6NP9VHgqfVg20V/1mUg0B95AKbXxNT+ALRmqCw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", + "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", "dependencies": { "emoji-regex": "^9.2.2", "is-fullwidth-code-point": "^4.0.0", - "strip-ansi": "^7.0.0" + "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" @@ -7559,12 +7700,15 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strip-indent": { @@ -7579,6 +7723,18 @@ "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/supertap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", @@ -7595,9 +7751,9 @@ } }, "node_modules/supertap/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } @@ -7619,11 +7775,11 @@ } }, "node_modules/supertap/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -7633,6 +7789,7 @@ "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" }, @@ -7653,168 +7810,20 @@ "node": ">=8" } }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dev": true, - "peer": 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/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/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, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/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, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/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, - "peer": true - }, - "node_modules/table/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, - "peer": true - }, - "node_modules/table/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, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "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, - "peer": true - }, - "node_modules/table/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, - "peer": 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/table/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tap": { - "version": "15.0.10", - "resolved": "https://registry.npmjs.org/tap/-/tap-15.0.10.tgz", - "integrity": "sha512-8aq4j+1JUOlXyffLX7ZJxhe9KAxV3s7PsdWAm3XwfoWc/OiFyAMcv4+T0/5/65gBxOVAPLpxH8ecfDkYTA2BCQ==", + "version": "15.1.5", + "resolved": "https://registry.npmjs.org/tap/-/tap-15.1.5.tgz", + "integrity": "sha512-ha9ify0cagIOENV5D+T8ys+FFOWqPaWAKk66hjtUWjywXdGmnL8LRxloZa8sHiaB+Az1GYx4ufEaflOpedSCbQ==", "bundleDependencies": [ "ink", "treport", - "@types/react" + "@types/react", + "@isaacs/import-jsx", + "react" ], "dev": true, "dependencies": { + "@isaacs/import-jsx": "*", "@types/react": "*", "chokidar": "^3.3.0", "coveralls": "^3.0.11", @@ -7822,19 +7831,18 @@ "foreground-child": "^2.0.0", "fs-exists-cached": "^1.0.0", "glob": "^7.1.6", - "import-jsx": "^4.0.0", "ink": "*", "isexe": "^2.0.0", "istanbul-lib-processinfo": "^2.0.2", - "jackspeak": "^1.4.0", + "jackspeak": "^1.4.1", "libtap": "^1.1.3", "minipass": "^3.1.1", "mkdirp": "^1.0.4", "nyc": "^15.1.0", "opener": "^1.5.1", - "react": "^16.12.0", + "react": "*", "rimraf": "^3.0.0", - "signal-exit": "^3.0.0", + "signal-exit": "^3.0.6", "source-map-support": "^0.5.16", "tap-mocha-reporter": "^5.0.0", "tap-parser": "^10.0.1", @@ -7936,19 +7944,19 @@ } }, "node_modules/tap/node_modules/@babel/code-frame": { - "version": "7.14.5", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/compat-data": { - "version": "7.15.0", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", @@ -7957,20 +7965,20 @@ } }, "node_modules/tap/node_modules/@babel/core": { - "version": "7.15.5", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7987,12 +7995,12 @@ } }, "node_modules/tap/node_modules/@babel/generator": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -8001,26 +8009,26 @@ } }, "node_modules/tap/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", + "version": "7.16.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -8031,93 +8039,93 @@ } }, "node_modules/tap/node_modules/@babel/helper-function-name": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-module-imports": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-module-transforms": { - "version": "7.15.7", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -8133,39 +8141,39 @@ } }, "node_modules/tap/node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-simple-access": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -8190,26 +8198,26 @@ } }, "node_modules/tap/node_modules/@babel/helpers": { - "version": "7.15.4", + "version": "7.16.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/tap/node_modules/@babel/highlight": { - "version": "7.14.5", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -8218,7 +8226,7 @@ } }, "node_modules/tap/node_modules/@babel/parser": { - "version": "7.15.7", + "version": "7.16.3", "dev": true, "inBundle": true, "license": "MIT", @@ -8230,16 +8238,16 @@ } }, "node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" + "@babel/plugin-transform-parameters": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -8249,7 +8257,7 @@ } }, "node_modules/tap/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8276,7 +8284,7 @@ } }, "node_modules/tap/node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.7", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8291,7 +8299,7 @@ } }, "node_modules/tap/node_modules/@babel/plugin-transform-parameters": { - "version": "7.15.4", + "version": "7.16.3", "dev": true, "inBundle": true, "license": "MIT", @@ -8306,16 +8314,16 @@ } }, "node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.14.9", + "version": "7.16.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" + "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -8324,51 +8332,104 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/tap/node_modules/@babel/template": { - "version": "7.15.4", + "node_modules/tap/node_modules/@babel/template": { + "version": "7.16.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/traverse": { + "version": "7.16.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/types": { + "version": "7.16.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "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/@isaacs/import-jsx/node_modules/caller-callsite": { + "version": "4.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "callsites": "^3.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/traverse": { - "version": "7.15.4", + "node_modules/tap/node_modules/@isaacs/import-jsx/node_modules/caller-path": { + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "caller-callsite": "^4.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/types": { - "version": "7.15.6", + "node_modules/tap/node_modules/@isaacs/import-jsx/node_modules/callsites": { + "version": "3.1.0", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, "engines": { - "node": ">=6.9.0" + "node": ">=6" } }, "node_modules/tap/node_modules/@types/prop-types": { @@ -8378,7 +8439,7 @@ "license": "MIT" }, "node_modules/tap/node_modules/@types/react": { - "version": "16.14.15", + "version": "17.0.34", "dev": true, "inBundle": true, "license": "MIT", @@ -8415,6 +8476,27 @@ "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, @@ -8433,15 +8515,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/tap/node_modules/arrify": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/tap/node_modules/astral-regex": { "version": "2.0.0", "dev": true, @@ -8480,16 +8553,16 @@ } }, "node_modules/tap/node_modules/browserslist": { - "version": "4.17.0", + "version": "4.17.6", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", + "caniuse-lite": "^1.0.30001274", + "electron-to-chromium": "^1.3.886", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -8502,41 +8575,8 @@ "url": "https://opencollective.com/browserslist" } }, - "node_modules/tap/node_modules/caller-callsite": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/caller-path": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/callsites": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/tap/node_modules/caniuse-lite": { - "version": "1.0.30001258", + "version": "1.0.30001279", "dev": true, "inBundle": true, "license": "CC-BY-4.0", @@ -8578,6 +8618,18 @@ "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, @@ -8606,6 +8658,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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, @@ -8621,12 +8685,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/tap/node_modules/colorette": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/tap/node_modules/commondir": { "version": "1.0.1", "dev": true, @@ -8648,6 +8706,15 @@ "safe-buffer": "~5.1.1" } }, + "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.0.9", "dev": true, @@ -8672,7 +8739,7 @@ } }, "node_modules/tap/node_modules/electron-to-chromium": { - "version": "1.3.844", + "version": "1.3.893", "dev": true, "inBundle": true, "license": "ISC" @@ -8766,7 +8833,7 @@ } }, "node_modules/tap/node_modules/glob": { - "version": "7.1.7", + "version": "7.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8803,24 +8870,13 @@ "node": ">=4" } }, - "node_modules/tap/node_modules/import-jsx": { + "node_modules/tap/node_modules/indent-string": { "version": "4.0.0", "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": "^2.0.0", - "find-cache-dir": "^3.2.0", - "make-dir": "^3.0.2", - "resolve-from": "^3.0.0", - "rimraf": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/tap/node_modules/inflight": { @@ -8840,32 +8896,37 @@ "license": "ISC" }, "node_modules/tap/node_modules/ink": { - "version": "2.7.1", + "version": "3.2.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", - "arrify": "^2.0.1", - "auto-bind": "^4.0.0", - "chalk": "^3.0.0", + "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.throttle": "^4.1.1", - "log-update": "^3.0.0", - "prop-types": "^15.6.2", - "react-reconciler": "^0.24.0", - "scheduler": "^0.18.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", - "string-length": "^3.1.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", - "yoga-layout-prebuilt": "^1.9.3" + "ws": "^7.5.5", + "yoga-layout-prebuilt": "^1.9.6" }, "engines": { - "node": ">=8" + "node": ">=10" }, "peerDependencies": { "@types/react": ">=16.8.0", @@ -8893,7 +8954,7 @@ } }, "node_modules/tap/node_modules/ink/node_modules/chalk": { - "version": "3.0.0", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "MIT", @@ -8902,7 +8963,10 @@ "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/tap/node_modules/ink/node_modules/color-convert": { @@ -8965,192 +9029,56 @@ "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.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "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.throttle": { - "version": "4.1.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/log-update": { - "version": "3.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^3.2.0", - "cli-cursor": "^2.1.0", - "wrap-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/ansi-regex": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/emoji-regex": { - "version": "7.0.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/log-update/node_modules/onetime": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/tap/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" }, - "node_modules/tap/node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", + "node_modules/tap/node_modules/jsesc": { + "version": "2.5.2", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { "node": ">=4" } }, - "node_modules/tap/node_modules/log-update/node_modules/string-width": { - "version": "3.1.0", + "node_modules/tap/node_modules/json5": { + "version": "2.2.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, - "node_modules/tap/node_modules/log-update/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/tap/node_modules/locate-path": { + "version": "5.0.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/tap/node_modules/log-update/node_modules/wrap-ansi": { - "version": "5.1.0", + "node_modules/tap/node_modules/lodash": { + "version": "4.17.21", "dev": true, "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "node_modules/tap/node_modules/loose-envify": { "version": "1.4.0", @@ -9225,7 +9153,7 @@ "license": "MIT" }, "node_modules/tap/node_modules/node-releases": { - "version": "1.1.76", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT" @@ -9299,6 +9227,15 @@ "node": ">=6" } }, + "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, @@ -9317,6 +9254,12 @@ "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, @@ -9329,48 +9272,53 @@ "node": ">=8" } }, - "node_modules/tap/node_modules/prop-types": { - "version": "15.7.2", + "node_modules/tap/node_modules/punycode": { + "version": "2.1.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "engines": { + "node": ">=6" } }, - "node_modules/tap/node_modules/punycode": { - "version": "2.1.1", + "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": ">=6" + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/react-is": { - "version": "16.13.1", + "node_modules/tap/node_modules/react-devtools-core": { + "version": "4.21.0", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } }, "node_modules/tap/node_modules/react-reconciler": { - "version": "0.24.0", + "version": "0.26.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.20.2" }, "engines": { "node": ">=0.10.0" }, "peerDependencies": { - "react": "^16.0.0" + "react": "^17.0.2" } }, "node_modules/tap/node_modules/redeyed": { @@ -9426,7 +9374,7 @@ "license": "MIT" }, "node_modules/tap/node_modules/scheduler": { - "version": "0.18.0", + "version": "0.20.2", "dev": true, "inBundle": true, "license": "MIT", @@ -9444,8 +9392,14 @@ "semver": "bin/semver.js" } }, + "node_modules/tap/node_modules/shell-quote": { + "version": "1.7.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, "node_modules/tap/node_modules/signal-exit": { - "version": "3.0.4", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC" @@ -9506,79 +9460,48 @@ "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/string-length": { - "version": "3.1.0", + "node_modules/tap/node_modules/stack-utils": { + "version": "2.0.5", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" + "escape-string-regexp": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/tap/node_modules/string-length/node_modules/ansi-regex": { - "version": "4.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tap/node_modules/string-length/node_modules/astral-regex": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/tap/node_modules/string-length/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/tap/node_modules/string-width": { - "version": "4.2.2", + "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.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tap/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", + "node_modules/tap/node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -9632,22 +9555,21 @@ } }, "node_modules/tap/node_modules/treport": { - "version": "2.0.2", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@isaacs/import-jsx": "^4.0.1", "cardinal": "^2.1.1", "chalk": "^3.0.0", - "import-jsx": "^4.0.0", - "ink": "^2.6.0", + "ink": "^3.2.0", "ms": "^2.1.2", - "string-length": "^3.1.0", "tap-parser": "^10.0.1", "unicode-length": "^2.0.2" }, "peerDependencies": { - "react": "^16.8.6" + "react": "^17.0.2" } }, "node_modules/tap/node_modules/treport/node_modules/ansi-styles": { @@ -9718,7 +9640,7 @@ } }, "node_modules/tap/node_modules/type-fest": { - "version": "0.21.3", + "version": "0.12.0", "dev": true, "inBundle": true, "license": "(MIT OR CC0-1.0)", @@ -9786,15 +9708,6 @@ "node": ">=8" } }, - "node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -9828,24 +9741,33 @@ "inBundle": true, "license": "MIT" }, - "node_modules/tap/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tap/node_modules/wrappy": { "version": "1.0.2", "dev": true, "inBundle": true, "license": "ISC" }, + "node_modules/tap/node_modules/ws": { + "version": "7.5.5", + "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/yallist": { "version": "4.0.0", "dev": true, @@ -9883,9 +9805,9 @@ } }, "node_modules/tcompare": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.6.tgz", - "integrity": "sha512-OvO7omN/wkdsKzmOqr3sQFfLbghs/2X5mwSkcfgRiXZshfPnTsAs3IRf1RixR/Pff26qG/r9ogcZMpV0YdeGXg==", + "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" @@ -9929,6 +9851,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/temp-write/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/temp-write/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -9957,22 +9891,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tempy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tempy/node_modules/type-fest": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.3.2.tgz", - "integrity": "sha512-cfvZ1nOC/VqAt8bVOIlFz8x+HdDASpiFYrSi0U0nzcAFlOnzzQ/gsPg2PP1uqjreO7sQCtraYJHMduXSewQsSA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.8.0.tgz", + "integrity": "sha512-O+V9pAshf9C6loGaH0idwsmugI2LxVNR7DtS40gVo2EXZVYFgz9OuNtOhgHLdHdapOEWNdvz9Ob/eeuaWwwlxA==", "dev": true, "engines": { "node": ">=12.20" @@ -9982,9 +9904,9 @@ } }, "node_modules/terser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", - "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "peer": true, "dependencies": { @@ -9997,17 +9919,24 @@ }, "engines": { "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } } }, "node_modules/terser-webpack-plugin": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz", - "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", + "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", "dev": true, "peer": true, "dependencies": { - "jest-worker": "^27.0.6", - "p-limit": "^3.1.0", + "jest-worker": "^27.4.1", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", @@ -10157,9 +10086,9 @@ "dev": true }, "node_modules/tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -10190,12 +10119,12 @@ } }, "node_modules/tsd": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.18.0.tgz", - "integrity": "sha512-UIkxm2CLmSjXlQs4zqxgVV9UmzK8VgJ63eBpgkH/ZsMkiUdzxxHvdCCg8F314HDxzfQl2muJEy/TEcXHIFIPXg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.19.1.tgz", + "integrity": "sha512-pSwchclr+ADdxlahRUQXUrdAIOjXx1T1PQV+fLfVLuo/S4z+T00YU84fH8iPlZxyA2pWgJjo42BG1p9SDb4NOw==", "dev": true, "dependencies": { - "@tsd/typescript": "~4.4.3", + "@tsd/typescript": "~4.5.2", "eslint-formatter-pretty": "^4.1.0", "globby": "^11.0.1", "meow": "^9.0.0", @@ -10298,9 +10227,9 @@ } }, "node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -10415,9 +10344,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", + "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -10462,9 +10391,9 @@ } }, "node_modules/watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "peer": true, "dependencies": { @@ -10476,9 +10405,9 @@ } }, "node_modules/webpack": { - "version": "5.61.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.61.0.tgz", - "integrity": "sha512-fPdTuaYZ/GMGFm4WrPi2KRCqS1vDp773kj9S0iI5Uc//5cszsFEDgHNaX4Rj1vobUiU1dFIV3mA9k1eHeluFpw==", + "version": "5.65.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", + "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", "dev": true, "peer": true, "dependencies": { @@ -10504,8 +10433,8 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^3.2.0" + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.2" }, "bin": { "webpack": "bin/webpack.js" @@ -10524,9 +10453,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz", - "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", "dev": true, "peer": true, "engines": { @@ -10547,6 +10476,30 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/webpack/node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -10612,63 +10565,94 @@ } }, "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=0.10.0" + "node": ">=8" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, + "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==" + }, + "node_modules/wrap-ansi/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==" + }, "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, + "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==", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/wrappy": { @@ -10688,9 +10672,9 @@ } }, "node_modules/xo": { - "version": "0.46.3", - "resolved": "https://registry.npmjs.org/xo/-/xo-0.46.3.tgz", - "integrity": "sha512-olSo9EQhwbBWgAtSC8ixRMLif6T/N3Axs51hgo/VVMVRSEDSmm+lo0OmECYkTtUhUbdkHBAkNc1pC38o8Stf8g==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/xo/-/xo-0.47.0.tgz", + "integrity": "sha512-QHRIpaPSG7tK7PX4K4fqe0V4EH1u2IkM7Pr356u1fKcVsZskw7i9gfEqyBLsnnc4e4Y8gnLtIqasLJsGPqM8sA==", "bundleDependencies": [ "@typescript-eslint/eslint-plugin", "@typescript-eslint/parser", @@ -10698,13 +10682,13 @@ ], "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.0.3", + "@eslint/eslintrc": "^1.0.4", "@typescript-eslint/eslint-plugin": "*", "@typescript-eslint/parser": "*", "arrify": "^3.0.0", "cosmiconfig": "^7.0.1", "define-lazy-prop": "^3.0.0", - "eslint": "^8.1.0", + "eslint": "^8.3.0", "eslint-config-prettier": "^8.3.0", "eslint-config-xo": "^0.39.0", "eslint-config-xo-typescript": "*", @@ -10712,11 +10696,11 @@ "eslint-import-resolver-webpack": "^0.13.2", "eslint-plugin-ava": "^13.1.0", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-import": "^2.25.2", + "eslint-plugin-import": "^2.25.3", "eslint-plugin-no-use-extend-native": "^0.5.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-unicorn": "^37.0.1", + "eslint-plugin-unicorn": "^39.0.0", "esm-utils": "^2.0.0", "find-cache-dir": "^3.3.2", "find-up": "^6.2.0", @@ -10726,14 +10710,14 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "json5": "^2.2.0", "lodash-es": "^4.17.21", - "meow": "^10.1.1", + "meow": "^10.1.2", "micromatch": "^4.0.4", - "open-editor": "^3.0.0", - "prettier": "^2.4.1", + "open-editor": "^4.0.0", + "prettier": "^2.5.0", "semver": "^7.3.5", "slash": "^4.0.0", "to-absolute-glob": "^2.0.2", - "typescript": "^4.4.4" + "typescript": "^4.5.2" }, "bin": { "xo": "cli.js" @@ -10745,21 +10729,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xo/node_modules/@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "inBundle": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, "node_modules/xo/node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "dev": true, @@ -10802,13 +10771,13 @@ "license": "MIT" }, "node_modules/xo/node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/experimental-utils": "5.4.0", + "@typescript-eslint/scope-manager": "5.4.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -10834,7 +10803,7 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "5.1.8", + "version": "5.1.9", "dev": true, "inBundle": true, "license": "MIT", @@ -10843,15 +10812,15 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/experimental-utils": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", + "@typescript-eslint/scope-manager": "5.4.0", + "@typescript-eslint/types": "5.4.0", + "@typescript-eslint/typescript-estree": "5.4.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -10867,14 +10836,14 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/parser": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", + "@typescript-eslint/scope-manager": "5.4.0", + "@typescript-eslint/types": "5.4.0", + "@typescript-eslint/typescript-estree": "5.4.0", "debug": "^4.3.2" }, "engines": { @@ -10894,13 +10863,13 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/scope-manager": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" + "@typescript-eslint/types": "5.4.0", + "@typescript-eslint/visitor-keys": "5.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -10911,7 +10880,7 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/types": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "MIT", @@ -10924,13 +10893,13 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", + "@typescript-eslint/types": "5.4.0", + "@typescript-eslint/visitor-keys": "5.4.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -10980,7 +10949,7 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { - "version": "5.1.8", + "version": "5.1.9", "dev": true, "inBundle": true, "license": "MIT", @@ -10998,12 +10967,12 @@ } }, "node_modules/xo/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.2.0", + "version": "5.4.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/types": "5.4.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -11014,23 +10983,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/xo/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, - "inBundle": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xo/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, - "inBundle": true - }, "node_modules/xo/node_modules/braces": { "version": "3.0.2", "dev": true, @@ -11044,9 +10996,9 @@ } }, "node_modules/xo/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" @@ -11056,9 +11008,9 @@ } }, "node_modules/xo/node_modules/camelcase-keys": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.0.tgz", - "integrity": "sha512-qlQlECgDl5Ev+gkvONaiD4X4TF2gyZKuLBvzx0zLo2UwAxmz3hJP/841aaMHTeH1T7v5HRwoRq91daulXoYWvg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.1.tgz", + "integrity": "sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA==", "dev": true, "dependencies": { "camelcase": "^6.2.0", @@ -11097,9 +11049,9 @@ "license": "MIT" }, "node_modules/xo/node_modules/decamelize": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz", - "integrity": "sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "dev": true, "engines": { "node": ">=10" @@ -11120,62 +11072,6 @@ "node": ">=8" } }, - "node_modules/xo/node_modules/eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "inBundle": true, - "dependencies": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/xo/node_modules/eslint-config-xo-typescript": { "version": "0.47.1", "dev": true, @@ -11243,7 +11139,7 @@ } }, "node_modules/xo/node_modules/eslint-visitor-keys": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -11343,45 +11239,6 @@ "node": ">= 6" } }, - "node_modules/xo/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "inBundle": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xo/node_modules/globals/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, - "inBundle": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xo/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "inBundle": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/xo/node_modules/is-extglob": { "version": "2.1.1", "dev": true, @@ -11412,19 +11269,6 @@ "node": ">=0.12.0" } }, - "node_modules/xo/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, - "inBundle": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/xo/node_modules/locate-path": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.0.0.tgz", @@ -11453,9 +11297,9 @@ } }, "node_modules/xo/node_modules/meow": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.1.tgz", - "integrity": "sha512-uzOAEBTGujHAD6bVzIQQk5kDTgatxmpVmr1pj9QhwsHLEG2AiB+9F08/wmjrZIk4h5pWxERd7+jqGZywYx3ZFw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", + "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", "dev": true, "dependencies": { "@types/minimist": "^1.2.2", @@ -11472,7 +11316,7 @@ "yargs-parser": "^20.2.9" }, "engines": { - "node": ">=12.17" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11797,19 +11641,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xo/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, - "inBundle": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/xo/node_modules/strip-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", @@ -11825,19 +11656,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xo/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, - "inBundle": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/xo/node_modules/to-regex-range": { "version": "5.0.1", "dev": true, @@ -11930,17 +11748,17 @@ "dev": true }, "node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "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", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.0.0" }, "engines": { "node": ">=12" @@ -11950,58 +11768,19 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, "engines": { "node": ">=10" } }, "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "node_modules/yargs/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==" - }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -12016,43 +11795,35 @@ } }, "node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/yargs/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==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=12" } }, "node_modules/yocto-queue": { diff --git a/package.json b/package.json index 540775fed..415e9b6ee 100644 --- a/package.json +++ b/package.json @@ -70,17 +70,17 @@ "typescript" ], "dependencies": { - "acorn": "^8.5.0", + "acorn": "^8.7.0", "acorn-walk": "^8.2.0", "ansi-styles": "^6.1.0", "arrgv": "^1.0.2", "arrify": "^3.0.0", "callsites": "^4.0.0", - "cbor": "^8.0.2", - "chalk": "^4.1.2", + "cbor": "^8.1.0", + "chalk": "^5.0.0", "chokidar": "^3.5.2", "chunkd": "^2.0.1", - "ci-info": "^3.2.0", + "ci-info": "^3.3.0", "ci-parallel-vars": "^1.0.1", "clean-yaml-object": "^0.1.0", "cli-truncate": "^3.1.0", @@ -88,7 +88,7 @@ "common-path-prefix": "^3.0.0", "concordance": "^5.0.4", "currently-unhandled": "^0.4.1", - "debug": "^4.3.2", + "debug": "^4.3.3", "del": "^6.0.0", "emittery": "^0.10.0", "figures": "^4.0.0", @@ -101,40 +101,40 @@ "matcher": "^5.0.0", "mem": "^9.0.1", "ms": "^2.1.3", - "p-event": "^4.2.0", - "p-map": "^5.2.0", + "p-event": "^5.0.1", + "p-map": "^5.3.0", "picomatch": "^2.3.0", "pkg-conf": "^4.0.0", - "plur": "^4.0.0", + "plur": "^5.1.0", "pretty-ms": "^7.0.1", "resolve-cwd": "^3.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", + "stack-utils": "^2.0.5", "strip-ansi": "^7.0.1", "supertap": "^2.0.0", "temp-dir": "^2.0.0", "write-file-atomic": "^3.0.3", - "yargs": "^17.2.1" + "yargs": "^17.3.1" }, "devDependencies": { "@ava/test": "github:avajs/test", - "@ava/typescript": "^2.0.0", - "@sinonjs/fake-timers": "^8.0.1", + "@ava/typescript": "^3.0.1", + "@sinonjs/fake-timers": "^8.1.0", "ansi-escapes": "^5.0.0", - "c8": "^7.10.0", + "c8": "^7.11.0", "delay": "^5.0.0", - "execa": "^5.1.1", + "execa": "^6.0.0", "fs-extra": "^10.0.0", "get-stream": "^6.0.1", "replace-string": "^4.0.0", - "sinon": "^11.1.2", - "tap": "^15.0.10", + "sinon": "^12.0.1", + "tap": "^15.1.5", "temp-write": "^5.0.0", "tempy": "^2.0.0", "touch": "^3.1.0", - "tsd": "^0.18.0", + "tsd": "^0.19.1", "typescript": "^4.4.4", - "xo": "^0.46.3", + "xo": "^0.47.0", "zen-observable": "^0.8.15" }, "peerDependencies": { diff --git a/test-d/implementation-result.ts b/test-d/implementation-result.ts index 4cbdaeb3e..35574c376 100644 --- a/test-d/implementation-result.ts +++ b/test-d/implementation-result.ts @@ -3,7 +3,7 @@ import test from '..'; test('return a promise-like', t => ({ then(resolve) { - resolve?.(); + resolve?.(); // eslint-disable-line @typescript-eslint/no-floating-promises }, })); diff --git a/test-tap/code-excerpt.js b/test-tap/code-excerpt.js index a41a99299..57e12fa67 100644 --- a/test-tap/code-excerpt.js +++ b/test-tap/code-excerpt.js @@ -1,7 +1,7 @@ import fs from 'node:fs'; import {pathToFileURL} from 'node:url'; -import _chalk from 'chalk'; +import {Chalk} from 'chalk'; // eslint-disable-line unicorn/import-style import {test} from 'tap'; import tempWrite from 'temp-write'; @@ -10,7 +10,7 @@ import codeExcerpt from '../lib/code-excerpt.js'; setChalk({level: 1}); -const chalk = new _chalk.Instance({level: 1}); +const chalk = new Chalk({level: 1}); test('read code excerpt', t => { const file = pathToFileURL(tempWrite.sync([ diff --git a/test-tap/fixture/fail-fast/multiple-files/passes-slow.cjs b/test-tap/fixture/fail-fast/multiple-files/passes-slow.cjs index d5042451c..97dda564c 100644 --- a/test-tap/fixture/fail-fast/multiple-files/passes-slow.cjs +++ b/test-tap/fixture/fail-fast/multiple-files/passes-slow.cjs @@ -1,13 +1,12 @@ const {parentPort} = require('worker_threads'); -const pEvent = require('p-event'); - const test = require('../../../../entrypoints/main.cjs'); test.serial('first pass', async t => { t.pass(); const timer = setTimeout(() => {}, 60_000); // Ensure process stays alive. const source = parentPort || process; + const {pEvent} = await import('p-event'); // eslint-disable-line node/no-unsupported-features/es-syntax await pEvent(source, 'message', message => { if (message.ava) { return message.ava.type === 'peer-failed'; diff --git a/test-tap/integration/repl.js b/test-tap/integration/repl.js index 91491c94e..5039229b9 100644 --- a/test-tap/integration/repl.js +++ b/test-tap/integration/repl.js @@ -1,4 +1,4 @@ -import execa from 'execa'; +import {execa} from 'execa'; import {test} from 'tap'; test('Throws error when required from the REPL', t => execa('node', ['-r', 'ava'], {reject: false}).then(result => { diff --git a/test-tap/integration/snapshots.js b/test-tap/integration/snapshots.js index 21577d3a0..ddd5b9a38 100644 --- a/test-tap/integration/snapshots.js +++ b/test-tap/integration/snapshots.js @@ -3,7 +3,7 @@ import fs from 'node:fs'; import path from 'node:path'; import {fileURLToPath} from 'node:url'; -import execa from 'execa'; +import {execa} from 'execa'; import {test} from 'tap'; import tempy from 'tempy'; diff --git a/test/cjs-default/fixtures/test.cjs b/test/cjs-default/fixtures/test.cjs index 5e1070401..1482fcef6 100644 --- a/test/cjs-default/fixtures/test.cjs +++ b/test/cjs-default/fixtures/test.cjs @@ -15,5 +15,6 @@ test('not enumerable', t => { }); test('main export equals the ESM export', async t => { - t.is(test, (await import('ava')).default); // eslint-disable-line node/no-unsupported-features/es-syntax + const {default: exported} = await import('ava'); // eslint-disable-line node/no-unsupported-features/es-syntax + t.is(test, exported); }); diff --git a/test/helpers/exec.js b/test/helpers/exec.js index 1d1dd94d8..01c1300a5 100644 --- a/test/helpers/exec.js +++ b/test/helpers/exec.js @@ -3,7 +3,7 @@ import path from 'node:path'; import {fileURLToPath} from 'node:url'; import test from '@ava/test'; -import execa from 'execa'; +import {execaNode} from 'execa'; import replaceString from 'replace-string'; const cliPath = fileURLToPath(new URL('../../entrypoints/cli.mjs', import.meta.url)); @@ -45,7 +45,7 @@ const forwardErrorOutput = async from => { export const fixture = async (args, options = {}) => { const workingDir = options.cwd || cwd(); - const running = execa.node(cliPath, args, { + const running = execaNode(cliPath, args, { ...options, env: { ...options.env, diff --git a/test/snapshot-order/fixtures/randomness/test.js b/test/snapshot-order/fixtures/randomness/test.js index 5c79c387a..62af629d6 100644 --- a/test/snapshot-order/fixtures/randomness/test.js +++ b/test/snapshot-order/fixtures/randomness/test.js @@ -20,18 +20,20 @@ test('A - declare some more snapshots', async t => { test('C - declare some snapshots in a try()', async t => { await randomDelay(); t.snapshot(id(5), 'outer'); - (await t.try('trying', t => { + const attempt = await t.try('trying', t => { t.snapshot(id(6), 'inner'); - })).commit(); + }); + attempt.commit(); t.snapshot(id(7), 'outer again'); }); test('E - discard some snapshots in a try()', async t => { await randomDelay(); t.snapshot(id(8), 'outer'); - (await t.try('trying', t => { + const attempt = await t.try('trying', t => { t.snapshot(id(9), 'inner'); - })).discard(); + }); + attempt.discard(); t.snapshot(id(10), 'outer again'); }); diff --git a/test/snapshot-order/fixtures/report-declaration-order/test.js b/test/snapshot-order/fixtures/report-declaration-order/test.js index ef93affbd..32d3fa903 100644 --- a/test/snapshot-order/fixtures/report-declaration-order/test.js +++ b/test/snapshot-order/fixtures/report-declaration-order/test.js @@ -14,17 +14,19 @@ test('A - declare some more snapshots', t => { test('C - declare some snapshots in a try()', async t => { t.snapshot(id(5), 'outer'); - (await t.try('trying', t => { + const attempt = await t.try('trying', t => { t.snapshot(id(6), 'inner'); - })).commit(); + }); + attempt.commit(); t.snapshot(id(7), 'outer again'); }); test('E - discard some snapshots in a try()', async t => { t.snapshot(id(8), 'outer'); - (await t.try('trying', t => { + const attempt = await t.try('trying', t => { t.snapshot(id(9), 'inner'); - })).discard(); + }); + attempt.discard(); t.snapshot(id(10), 'outer again'); }); From f09742f7baab7d44a48f1e3cee8f4b22deecf6f4 Mon Sep 17 00:00:00 2001 From: Mark Wubben Date: Mon, 3 Jan 2022 18:42:58 +0100 Subject: [PATCH 8/9] Clean up documentation in preparation for AVA 4 --- docs/01-writing-tests.md | 51 +++------------------- docs/02-execution-context.md | 30 +------------ docs/03-assertions.md | 75 ++------------------------------- docs/04-snapshot-testing.md | 25 +---------- docs/05-command-line.md | 18 +++----- docs/06-configuration.md | 27 +++--------- docs/08-common-pitfalls.md | 14 ------ docs/recipes/babel.md | 4 +- docs/recipes/es-modules.md | 53 +---------------------- docs/recipes/react.md | 4 +- docs/recipes/shared-workers.md | 16 ------- docs/recipes/typescript.md | 65 +++------------------------- docs/recipes/vue.md | 2 - lib/cli.js | 2 +- media/magic-assert-objects.png | Bin 34279 -> 0 bytes media/magic-assert-strings.png | Bin 34734 -> 0 bytes media/mini-reporter.gif | Bin 407116 -> 0 bytes media/power-assert.png | Bin 90749 -> 0 bytes readme.md | 5 +-- test-d/macros.ts | 9 ++++ 20 files changed, 47 insertions(+), 353 deletions(-) delete mode 100644 media/magic-assert-objects.png delete mode 100644 media/magic-assert-strings.png delete mode 100644 media/mini-reporter.gif delete mode 100644 media/power-assert.png diff --git a/docs/01-writing-tests.md b/docs/01-writing-tests.md index 7d1a90698..69726f31d 100644 --- a/docs/01-writing-tests.md +++ b/docs/01-writing-tests.md @@ -10,9 +10,7 @@ AVA tries to run test files with their current working directory set to the dire ## Test isolation -AVA 3 runs each test file in a separate Node.js process. This allows you to change the global state or overriding a built-in in one test file, without affecting another. - -AVA 4 runs each test file in a new worker thread, though you can fall back to AVA 3's behavior of running in separate processes. +Each test file is run in a new worker thread. This is new as of AVA 4, though you can fall back to AVA 3's behavior of running in separate processes. AVA will set `process.env.NODE_ENV` to `test`, unless the `NODE_ENV` environment variable has been set. This is useful if the code you're testing has test defaults (for example when picking what database to connect to). It may cause your code or its dependencies to behave differently though. Note that `'NODE_ENV' in process.env` will always be `true`. @@ -91,19 +89,6 @@ test('handles observables', t => { }); ``` -## Callback support - -*👉 AVA 4 removes support for `test.cb()` and `t.end()`.* - -AVA 3 supports using `t.end` as the final callback when using Node.js-style error-first callback APIs. AVA will consider any truthy value passed as the first argument to `t.end` to be an error. Note that `t.end` requires "callback mode", which can be enabled by using the `test.cb` chain. - -```js -test.cb('data.txt can be read', t => { - // `t.end` automatically checks for error as first argument - fs.readFile('data.txt', t.end); -}); -``` - ## Running specific tests During development it can be helpful to only run a few specific tests. This can be accomplished using the `.only` modifier: @@ -122,8 +107,6 @@ You can use the `.only` modifier with all tests. It cannot be used with hooks or *Note:* The `.only` modifier applies to the test file it's defined in, so if you run multiple test files, tests in other files will still run. If you want to only run the `test.only` test, provide just that test file to AVA. -In AVA 3, you cannot update snapshots when using `.only()`. - ## Skipping tests Sometimes failing tests can be hard to fix. You can tell AVA to temporarily skip these tests using the `.skip` modifier. They'll still be shown in the output (as having been skipped) but are never run. @@ -138,8 +121,6 @@ You must specify the implementation function. You can use the `.skip` modifier w If the test is likely to be failing for a while, use `.failing()` instead. -In AVA 3, you cannot update snapshots when using `.skip()`. - ## Test placeholders ("todo") You can use the `.todo` modifier when you're planning to write a test. Like skipped tests these placeholders are shown in the output. They only require a title; you cannot specify the implementation function. @@ -277,10 +258,8 @@ Access data about the currently loaded test file run by reading `test.meta`. Available properties: -* `file`: path to the test file -* `snapshotDirectory`: directory where snapshots are stored - -In AVA 4 these are file URL strings. +* `file`: path to the test file, as a file URL string +* `snapshotDirectory`: directory where snapshots are stored, as a file URL string ```js const test = require('ava'); @@ -294,7 +273,7 @@ console.log('Test file currently being run:', test.meta.file); Additional arguments passed to the test declaration will be passed to the test implementation. This is useful for creating reusable test macros. -You can use plain functions: +You _could_ use plain functions: ```js function macro(t, input, expected) { @@ -305,23 +284,7 @@ test('2 + 2 = 4', macro, '2 + 2', 4); test('2 * 3 = 6', macro, '2 * 3', 6); ``` -With AVA 3 you can build the test title programmatically by attaching a `title` function to the macro: - -```js -function macro(t, input, expected) { - t.is(eval(input), expected); -} - -macro.title = (providedTitle = '', input, expected) => `${providedTitle} ${input} = ${expected}`.trim(); - -test(macro, '2 + 2', 4); -test(macro, '2 * 3', 6); -test('providedTitle', macro, '3 * 3', 9); -``` - -The `providedTitle` argument defaults to `undefined` if the user does not supply a string title. This means you can use a parameter assignment to set the default value. The example above uses the empty string as the default. - -However with AVA 4 the preferred approach is to use the `test.macro()` helper: +However the preferred approach is to use the `test.macro()` helper: ```js import test from 'ava'; @@ -344,7 +307,7 @@ const macro = test.macro({ }, title(providedTitle = '', input, expected) { return `${providedTitle} ${input} = ${expected}`.trim(); - } + }, }); test(macro, '2 + 2', 4); @@ -352,4 +315,4 @@ test(macro, '2 * 3', 6); test('providedTitle', macro, '3 * 3', 9); ``` -We encourage you to use macros instead of building your own test generators ([here is an example](https://github.com/avajs/ava-codemods/blob/47073b5b58aa6f3fb24f98757be5d3f56218d160/test/ok-to-truthy.js#L7-L9) of code that should be replaced with a macro). Macros are designed to perform static analysis of your code, which can lead to better performance, IDE integration, and linter rules. +The `providedTitle` argument defaults to `undefined` if the user does not supply a string title. This means you can use a parameter assignment to set the default value. The example above uses the empty string as the default. diff --git a/docs/02-execution-context.md b/docs/02-execution-context.md index 834e130d0..5b7937955 100644 --- a/docs/02-execution-context.md +++ b/docs/02-execution-context.md @@ -26,10 +26,6 @@ Contains shared state from hooks. When used in `test.afterEach()` or `test.afterEach.always()` hooks this tells you whether the test has passed. When used in a test itself (including teardown functions) this remains `true` until an assertion fails, the test has ended with an error, or a teardown function caused an error. This value has no meaning in other hooks. -## `t.end()` - -End the test. Only works with `test.cb()`. Removed in AVA 4. - ## `t.log(...values)` Log values contextually alongside the test result instead of immediately printing them to `stdout`. Behaves somewhat like `console.log`, but without support for placeholder tokens. @@ -40,36 +36,12 @@ Plan how many assertions there are in the test. The test will fail if the actual ## `t.teardown(fn)` -Registers the `fn` function to be run after the test has finished. You can register multiple functions. In AVA 3 the functions are called in order, but in AVA 4 they'll run in _reverse_ order.. You can use asynchronous functions: only one will run at a time. +Registers the `fn` function to be run after the test has finished. You can register multiple functions. They'll run in reverse order, so the most last registered function is run first. You can use asynchronous functions: only one will run at a time. You cannot perform assertions using the `t` object or register additional functions from inside `fn`. You cannot use `t.teardown()` in hooks either. - You can opt in to this behavior in AVA 3 by enabling the `reverseTeardowns` experiment. - -**`package.json`**: - -```json -{ - "ava": { - "nonSemVerExperiments": { - "reverseTeardowns": true - } - } -} -``` - -**`ava.config.js`**: - -```js -export default { - nonSemVerExperiments: { - reverseTeardowns: true - } -} -``` - ## `t.timeout(ms)` Set a timeout for the test, in milliseconds. The test will fail if this timeout is exceeded. The timeout is reset each time an assertion is made. diff --git a/docs/03-assertions.md b/docs/03-assertions.md index d3ae195ae..a1e3393ca 100644 --- a/docs/03-assertions.md +++ b/docs/03-assertions.md @@ -75,69 +75,6 @@ test('skip assertion', t => { }); ``` -## Enhanced assertion messages - -With AVA 3, enabling [Babel](./recipes/babel.md) will also enable [`power-assert`](https://github.com/power-assert-js/power-assert), giving you more descriptive assertion messages. - -Let's take this example, using Node's standard [`assert` library](https://nodejs.org/api/assert.html): - -```js -const a = /foo/; -const b = 'bar'; -const c = 'baz'; -require('assert').ok(a.test(b) || b === c); -``` - -If you paste that into a Node REPL it'll return: - -``` -AssertionError: false == true -``` - -With AVA's `assert` assertion however, this test: - -```js -test('enhanced assertions', t => { - const a = /foo/; - const b = 'bar'; - const c = 'baz'; - t.assert(a.test(b) || b === c); -}); -``` - -Will output: - -``` -6: const c = 'baz'; -7: t.assert(a.test(b) || b === c); -8: }); - -Value is not truthy: - -false - -a.test(b) || b === c -=> false - -b === c -=> false - -c -=> 'baz' - -b -=> 'bar' - -a.test(b) -=> false - -b -=> 'bar' - -a -=> /foo/ -``` - ## Custom assertions You can use any assertion library instead of or in addition to the built-in one, provided it throws exceptions when the assertion fails. @@ -166,7 +103,7 @@ Failing assertion. Returns a boolean indicating whether the assertion passed. ### `.assert(value, message?)` -Asserts that `value` is truthy. This is [`power-assert`](#enhanced-assertion-messages) enabled. Returns a boolean indicating whether the assertion passed. +Asserts that `value` is truthy. Returns a boolean indicating whether the assertion passed. ### `.truthy(value, message?)` @@ -194,7 +131,7 @@ Assert that `value` is not the same as `expected`. This is based on [`Object.is( ### `.deepEqual(value, expected, message?)` -Assert that `value` is deeply equal to `expected`. See [Concordance](https://github.com/concordancejs/concordance) for details. In AVA 3 this works with [React elements and `react-test-renderer`](https://github.com/concordancejs/react). +Assert that `value` is deeply equal to `expected`. See [Concordance](https://github.com/concordancejs/concordance) for details. ### `.notDeepEqual(value, expected, message?)` @@ -239,7 +176,7 @@ Assert that an error is thrown. `fn` must be a function which should throw. The * `name`: the expected `.name` value of the thrown error * `code`: the expected `.code` value of the thrown error -`expectation` does not need to be specified. If you don't need it but do want to set an assertion message you have to specify `undefined`. (AVA 3 also allows you to specify `null`. This will be removed in AVA 4. You can opt into this change early by enabling the `disableNullExpectations` experiment.) +`expectation` does not need to be specified. If you don't need it but do want to set an assertion message you have to specify `undefined`. Example: @@ -271,7 +208,7 @@ The thrown value *must* be an error. It is returned so you can run more assertio * `name`: the expected `.name` value of the thrown error * `code`: the expected `.code` value of the thrown error -`expectation` does not need to be specified. If you don't need it but do want to set an assertion message you have to specify `undefined`. (AVA 3 also allows you to specify `null`. This will be removed in AVA 4. You can opt into this change early by enabling the `disableNullExpectations` experiment.) +`expectation` does not need to be specified. If you don't need it but do want to set an assertion message you have to specify `undefined`. Example: @@ -322,10 +259,6 @@ Assert that `contents` does not match `regex`. Returns a boolean indicating whet Compares the `expected` value with a previously recorded snapshot. Snapshots are stored for each test, so ensure you give your tests unique titles. -AVA 3 supports an `options` object that lets you select a specific snapshot, for instance `{id: 'my snapshot'}`. This is buggy and will be removed in AVA 4. - -In AVA 3, you cannot update snapshots while using `t.snapshot.skip()`. - ### `.try(title?, implementation | macro, ...args?)` `.try()` allows you to *try* assertions without causing the test to fail. diff --git a/docs/04-snapshot-testing.md b/docs/04-snapshot-testing.md index ca6fc979b..3ddd42db9 100644 --- a/docs/04-snapshot-testing.md +++ b/docs/04-snapshot-testing.md @@ -2,28 +2,7 @@ Translations: [Français](https://github.com/avajs/ava-docs/blob/master/fr_FR/docs/04-snapshot-testing.md) -AVA supports snapshot testing, [as introduced by Jest](https://facebook.github.io/jest/docs/snapshot-testing.html), through its [Assertions](./03-assertions.md) interface. You can snapshot any value. In AVA 3 you can also snapshot React elements: - -```js -// Your component -const HelloWorld = () =>

Hello World...!

; - -export default HelloWorld; -``` - -```js -// Your test -const test = require('ava'); -const render = require('react-test-renderer'); -const HelloWorld = require('.'); - -test('HelloWorld component', t => { - const tree = render.create().toJSON(); - t.snapshot(tree); -}); -``` - -[Try it out in this example project.](https://github.com/avajs/ava-snapshot-example) +AVA supports snapshot testing, [as introduced by Jest](https://facebook.github.io/jest/docs/snapshot-testing.html), through its [Assertions](./03-assertions.md) interface. You can snapshot any value. Snapshots are stored alongside your test files. If your tests are in a `test` or `tests` folder the snapshots will be stored in a `snapshots` folder. If your tests are in a `__tests__` folder then they they'll be stored in a `__snapshots__` folder. @@ -44,7 +23,7 @@ You can then check your code. If the change was intentional you can use the `--u $ ava --update-snapshots ``` -In AVA 4, if you need to update snapshots for only a particular test, you can use `--update-snapshots` together with e.g. `--match` or `.only()` to select the test. +If you need to update snapshots for only a particular test, you can use `--update-snapshots` together with e.g. `--match` or `.only()` to select the test. You can specify a fixed location for storing the snapshot files in AVA's [`package.json` configuration](./06-configuration.md): diff --git a/docs/05-command-line.md b/docs/05-command-line.md index aa2c0044e..49743ff3d 100644 --- a/docs/05-command-line.md +++ b/docs/05-command-line.md @@ -29,7 +29,7 @@ Options: --help Show help [boolean] --concurrency, -c Max number of test files running at the same time (default: CPU cores) [number] - --no-worker-threads Don't use worker threads [boolean] (AVA 4 only) + --no-worker-threads Don't use worker threads [boolean] --fail-fast Stop after first test failure [boolean] --match, -m Only run tests with matching title (can be repeated) [string] @@ -40,7 +40,7 @@ Options: --timeout, -T Set global timeout (milliseconds or human-readable, e.g. 10s, 2m) [string] --update-snapshots, -u Update snapshots [boolean] - --verbose, -v Enable verbose output (no-op in AVA 4) [boolean] + --verbose, -v Enable verbose output (default) [boolean] --watch, -w Re-run tests when files change [boolean] Examples: @@ -49,8 +49,6 @@ Examples: ava test.js:4,7-9 ``` -*Note that, for AVA 3, the CLI will use your local install of AVA when available, even when run globally. AVA 4 cannot be run globally.* - AVA searches for test files using the following patterns: * `test.js` @@ -164,7 +162,7 @@ AVA lets you run tests exclusively by referring to their line numbers. Target a The format is a comma-separated list of `[X|Y-Z]` where `X`, `Y` and `Z` are integers between `1` and the last line number of the file. -This feature is only available from the command line. It won't work if you use tools like `ts-node/register` or `@babel/register`, and it does not currently work with `@ava/babel` (available for AVA 3) and `@ava/typescript`. +This feature is only available from the command line. ### Running a single test @@ -220,7 +218,7 @@ When running a file with and without line numbers, line numbers take precedence. ## Resetting AVA's cache -AVA 3 itself does not cache files unless used with our [`@ava/babel`](https://github.com/avajs/babel) provider. If it seems like your latest changes aren't being picked up by AVA you can try resetting the cache by running: +AVA maintains some temporary state. You can clear this state by running: ```console npx ava reset-cache @@ -230,16 +228,10 @@ This deletes all files in the `node_modules/.cache/ava` directory. ## Reporters -AVA 4 uses a human readable reporter: +AVA uses a human readable reporter by default: -AVA 3 defaults to a less verbose reporter: - - - -Use the `--verbose` flag to enable the verbose reporter. This is always used in CI environments unless the [TAP reporter](#tap-reporter) is enabled. - ### TAP reporter [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/avajs/ava/tree/main/examples/tap-reporter?file=test.js&terminal=test&view=editor) diff --git a/docs/06-configuration.md b/docs/06-configuration.md index fa5a5ed86..6140ddec3 100644 --- a/docs/06-configuration.md +++ b/docs/06-configuration.md @@ -47,12 +47,12 @@ Arguments passed to the CLI will always take precedence over the CLI options con - `match`: not typically useful in the `package.json` configuration, but equivalent to [specifying `--match` on the CLI](./05-command-line.md#running-tests-with-matching-titles) - `cache`: defaults to `true` to cache compiled files under `node_modules/.cache/ava`. If `false`, files are cached in a temporary directory instead - `concurrency`: max number of test files running at the same time (default: CPU cores) -- `workerThreads`: use worker threads to run tests (requires AVA 4, enabled by default). If `false`, tests will run in child processes (how AVA 3 behaves) +- `workerThreads`: use worker threads to run tests (enabled by default). If `false`, tests will run in child processes - `failFast`: stop running further tests once a test fails - `failWithoutAssertions`: if `false`, does not fail a test if it doesn't run [assertions](./03-assertions.md) - `environmentVariables`: specifies environment variables to be made available to the tests. The environment variables defined here override the ones from `process.env` - `tap`: if `true`, enables the [TAP reporter](./05-command-line.md#tap-reporter) -- `verbose`: if `true`, enables verbose output (no-op in AVA 4) +- `verbose`: if `true`, enables verbose output (though there currently non-verbose output is not supported) - `snapshotDir`: specifies a fixed location for storing snapshot files. Use this if your snapshots are ending up in the wrong location - `extensions`: extensions of test files. Setting this overrides the default `["cjs", "mjs", "js"]` value, so make sure to include those extensions in the list. [Experimentally you can configure how files are loaded](#configuring-module-formats) - `require`: extra modules to require before tests are run. Modules are required in the [worker processes](./01-writing-tests.md#process-isolation) @@ -61,31 +61,24 @@ Arguments passed to the CLI will always take precedence over the CLI options con Note that providing files on the CLI overrides the `files` option. -When using AVA 3, provide the `babel` option (and install [`@ava/babel`](https://github.com/avajs/babel) as an additional dependency) to enable Babel compilation. - Provide the `typescript` option (and install [`@ava/typescript`](https://github.com/avajs/typescript) as an additional dependency) for AVA to run tests written in TypeScript. ## Using `ava.config.*` files Rather than specifying the configuration in the `package.json` file you can use `ava.config.js`, `ava.config.cjs` or `ava.config.mjs` files. -Note: AVA 3 recognizes `ava.config.mjs` files but refuses to load them. They work in AVA 4. - To use these files: 1. Your `package.json` must not contain an `ava` property (or, if it does, it must be an empty object) 2. You must only have one `ava.config.*` file in any directory, so don't mix `ava.config.js` *and* `ava.config.cjs` files -3. AVA 3 requires these files be in the same directory as your `package.json` file -AVA 4 searches your file system for `ava.config.*` files. First, when you run AVA, it finds the closest `package.json`. Starting in that directory it recursively checks the parent directories until it either reaches the file system root or encounters a `.git` file or directory. The first `ava.config.*` file found is selected. This allows you to use a single configuration file in a monorepo setup. +AVA searches your file system for `ava.config.*` files. First, when you run AVA, it finds the closest `package.json`. Starting in that directory it recursively checks the parent directories until it either reaches the file system root or encounters a `.git` file or directory. The first `ava.config.*` file found is selected. This allows you to use a single configuration file in a monorepo setup. ### `ava.config.js` -AVA 4 follows Node.js' behavior, so if you've set `"type": "module"` you must use ESM, and otherwise you must use CommonJS. +AVA follows Node.js' behavior, so if you've set `"type": "module"` you must use ESM, and otherwise you must use CommonJS. -In AVA 3, for `ava.config.js` files you must use `export default`. You cannot use ["module scope"](https://nodejs.org/docs/latest-v12.x/api/modules.html#modules_the_module_scope). You cannot import dependencies. - -The default export can either be a plain object or a factory function which returns a plain object. Starting in AVA 4 you can export or return a promise for a plain object: +The default export can either be a plain object or a factory function which returns a plain object. You can export or return a promise for a plain object: ```js export default { @@ -121,7 +114,7 @@ export default ({projectDir}) => { For `ava.config.cjs` files you must assign `module.exports`. ["Module scope"](https://nodejs.org/docs/latest-v12.x/api/modules.html#modules_the_module_scope) is available. You can `require()` dependencies. -The module export can either be a plain object or a factory function which returns a plain object. Starting in AVA 4 you can export or return a promise for a plain object: +The module export can either be a plain object or a factory function which returns a plain object. You can export or return a promise for a plain object: ```js module.exports = { @@ -155,8 +148,6 @@ module.exports = ({projectDir}) => { ### `ava.config.mjs` -Note that `ava.config.mjs` files are only supported in AVA 4. - The default export can either be a plain object or a factory function which returns a plain object. You can export or return a promise for a plain object: ```js @@ -195,8 +186,6 @@ The [CLI] lets you specify a specific configuration file, using the `--config` f When the `--config` flag is set, the provided file will override all configuration from the `package.json` and `ava.config.js`, `ava.config.cjs` or `ava.config.mjs` files. The configuration is not merged. -Note: In AVA 3 the configuration file *must* be in the same directory as the `package.json` file. This restriction does not apply to AVA 4. - You can use this to customize configuration for a specific test run. For instance, you may want to run unit tests separately from integration tests: `ava.config.cjs`: @@ -255,10 +244,6 @@ export default { Node.js can only load non-standard extension as ES Modules when using [experimental loaders](https://nodejs.org/docs/latest/api/esm.html#esm_experimental_loaders). To use this you'll also have to configure AVA to `import()` your test file. -This is an experimental feature in AVA 3. You can opt in to it by enabling the `configurableModuleFormat` experiment. Afterwards, you'll be able to specify per-extension module formats using an object form. - -This feature is available by default in AVA 4. - As with the array form, you need to explicitly list `js`, `cjs`, and `mjs` extensions. These **must** be set using the `true` value; other extensions are configurable using either `'commonjs'` or `'module'`: `ava.config.js`: diff --git a/docs/08-common-pitfalls.md b/docs/08-common-pitfalls.md index fb32ce765..d38be3651 100644 --- a/docs/08-common-pitfalls.md +++ b/docs/08-common-pitfalls.md @@ -54,20 +54,6 @@ test('fetches foo', async t => { AVA [can't trace uncaught exceptions](https://github.com/avajs/ava/issues/214) back to the test that triggered them. Callback-taking functions may lead to uncaught exceptions that can then be hard to debug. Consider promisifying and using `async`/`await`, as in the above example. This should allow AVA to catch the exception and attribute it to the correct test. -## Why are the enhanced assertion messages not shown? - -Enhanced assertion messages are no longer supported in AVA 4. - -Ensure that the first parameter passed into your test is named `t`. This is a requirement of [`power-assert`](https://github.com/power-assert-js/power-assert), the library that provides the [enhanced messages](./03-assertions.md#enhanced-assertion-messages). - -```js -test('one is one', t => { - t.assert(1 === 1); -}); -``` - -Also make sure to enable [Babel](./recipes/babel.md). - ## Sharing variables between asynchronous tests By default AVA executes tests concurrently. This can cause problems if your tests are asynchronous and share variables. diff --git a/docs/recipes/babel.md b/docs/recipes/babel.md index 1b649febd..32f6da8b1 100644 --- a/docs/recipes/babel.md +++ b/docs/recipes/babel.md @@ -1,8 +1,8 @@ -# Configuring Babel +# Configuring Babel with AVA 3 Translations: [Français](https://github.com/avajs/ava-docs/blob/master/fr_FR/docs/recipes/babel.md) -This is no longer available in AVA 4. +**This is no longer available in AVA 4.** You can enable Babel support by installing `@ava/babel`, and then in AVA's configuration setting `babel` to `true`: diff --git a/docs/recipes/es-modules.md b/docs/recipes/es-modules.md index 35efe952c..6358063bb 100644 --- a/docs/recipes/es-modules.md +++ b/docs/recipes/es-modules.md @@ -1,54 +1,3 @@ # Using ES modules in AVA -Translations: [Français](https://github.com/avajs/ava-docs/blob/master/fr_FR/docs/recipes/es-modules.md) - -As of Node.js 12.17, [ECMAScript Modules](https://nodejs.org/docs/latest/api/esm.html#esm_introduction) are natively supported in Node.js itself. AVA 3.3 supports ESM test files, however support is incomplete. The [ESM support project](https://github.com/orgs/avajs/projects/2) tracks our progress. - -If you use TypeScript with `ts-node` please [see our Typescript recipe for setup instructions](./typescript.md). - -## Using the `esm` package - -If you're using Node.js 10 and AVA 3 and you want to use the ESM syntax, without relying on Node.js' implementation, your best bet is to use the [`esm`](https://github.com/standard-things/esm) package. Make sure to use the `.js` extension and *do not* set `"type": "module"` in `package.json`. - -*Note: The `esm` package is no longer supported in AVA 4.* - -Here's how you get it working with AVA. - -First, install `esm`: - -``` -$ npm install esm -``` - -Configure it in your `package.json` or `ava.config.*` file, and add it to AVA's `"require"` option as well. Make sure to add it as the first item. - -**`package.json`:** - -```json -{ - "ava": { - "require": [ - "esm" - ] - } -} -``` - -You can now use native ES modules with AVA: - -```js -// sum.js -export default function sum(a, b) { - return a + b; -}; -``` - -```js -// test.js -import test from 'ava'; -import sum from './sum'; - -test('2 + 2 = 4', t => { - t.is(sum(2, 2), 4); -}); -``` +AVA 4 supports ES modules out of the box. diff --git a/docs/recipes/react.md b/docs/recipes/react.md index 0208e7f7b..d7a8ee80e 100644 --- a/docs/recipes/react.md +++ b/docs/recipes/react.md @@ -1,7 +1,9 @@ -# Testing React components +# Testing React components with AVA 3 Translations: [Español](https://github.com/avajs/ava-docs/blob/master/es_ES/docs/recipes/react.md), [Français](https://github.com/avajs/ava-docs/blob/master/fr_FR/docs/recipes/react.md) +**AVA 4 no longer has built-in Babel support, and `t.snapshot()` and `t.deepEqual()` no longer recognize React elements either. Therefore this recipe is mostly relevant for AVA 3 users.** + ## Setting up Babel When you [enable Babel](https://github.com/avajs/babel), AVA 3 will automatically extend your regular (project-level) Babel configuration. You should be able to use React in your test files without any additional configuration. diff --git a/docs/recipes/shared-workers.md b/docs/recipes/shared-workers.md index 34e36c96a..976891459 100644 --- a/docs/recipes/shared-workers.md +++ b/docs/recipes/shared-workers.md @@ -4,20 +4,6 @@ Shared workers are a powerful AVA feature. A program can be loaded in a [worker When you use watch mode, shared workers remain loaded across runs. -## Enabling the experiment (only needed with AVA 3) - -Shared workers are available when you use AVA with Node.js 12.17.0 or newer. AVA 3.13.0 or newer is required. It is an experimental feature so you need to enable it in your AVA configuration: - -`ava.config.js`: - -```js -export default { - nonSemVerExperiments: { - sharedWorkers: true - } -}; -``` - ## Available plugins * [`@ava/get-port`](https://github.com/avajs/get-port) works like [`get-port`](https://github.com/sindresorhus/get-port), but ensures the port is locked across all test files. @@ -37,8 +23,6 @@ Plugins communicate with their shared worker using a *protocol*. Protocols are v Plugins can be compatible with multiple protocols. AVA will select the best protocol it supports. If AVA does not support any of the specified protocols it'll throw an error. The selected protocol is available on the returned worker object. -**For AVA 3, substitute `'ava-4'` with `'experimental'`.** - ```js import {registerSharedWorker} from 'ava/plugin'; diff --git a/docs/recipes/typescript.md b/docs/recipes/typescript.md index ae24594be..cc054d5aa 100644 --- a/docs/recipes/typescript.md +++ b/docs/recipes/typescript.md @@ -4,7 +4,7 @@ Translations: [Español](https://github.com/avajs/ava-docs/blob/master/es_ES/doc AVA comes bundled with a TypeScript definition file. This allows developers to leverage TypeScript for writing tests. -This guide assumes you've already set up TypeScript for your project. Note that AVA 3's definition expects at least version 3.7.5. AVA 4 will require at least version 4.4. +This guide assumes you've already set up TypeScript for your project. Note that AVA's definition expects at least version 4.4. ## Enabling AVA's support for TypeScript test files @@ -111,39 +111,7 @@ const hasLength = (t: ExecutionContext, input: string, expected: number) => { test('bar has length 3', hasLength, 'bar', 3); ``` -### AVA 3 - -With AVA 3, in order to be able to assign the `title` property to a macro you need to type the function: - -```ts -import test, {Macro} from 'ava'; - -const macro: Macro<[string, number]> = (t, input, expected) => { - t.is(eval(input), expected); -}; -macro.title = (providedTitle = '', input, expected) => `${providedTitle} ${input} = ${expected}`.trim(); - -test(macro, '2 + 2', 4); -test(macro, '2 * 3', 6); -test('providedTitle', macro, '3 * 3', 9); -``` - -You'll need a different type if you're expecting your macro to be used with an AVA 3 callback test: - -```ts -import test, {CbMacro} from 'ava'; - -const macro: CbMacro<[]> = t => { - t.pass(); - setTimeout(t.end, 100); -}; - -test.cb(macro); -``` - -### AVA 4 - -With AVA 4 you can use the `test.macro()` helper to create macros: +However if you use the `test.macro()` helper you get much better type inference: ```ts import test from 'ava'; @@ -178,13 +146,12 @@ test('providedTitle', macro, '3 * 3', 9); [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/avajs/ava/tree/main/examples/typescript-context?file=source%2Ftest.ts&terminal=test&view=editor) -By default, the type of `t.context` will be the empty object (`{}`). AVA exposes an interface `TestInterface` (in AVA 4 this is `TestFn`) which you can use to apply your own type to `t.context`. This can help you catch errors at compile-time: +By default, the type of `t.context` will be the empty object (`{}`). AVA exposes an interface `TestFn` which you can use to apply your own type to `t.context`. This can help you catch errors at compile-time: ```ts -import anyTest, {TestInterface} from 'ava'; // AVA 3 -// import anyTest, {TestFn as TestInterface} from 'ava'; // AVA 4, usage is the same +import anyTest, {TestFn} from 'ava'; -const test = anyTest as TestInterface<{foo: string}>; +const test = anyTest as TestFn<{foo: string}>; test.beforeEach(t => { t.context = {foo: 'bar'}; @@ -203,28 +170,6 @@ test('an actual test', t => { }); ``` -You can also type the context when creating macros: - -```ts -import anyTest, {Macro, TestInterface} from 'ava'; // AVA 3 - -interface Context { - foo: string -} - -const test = anyTest as TestInterface; - -const macro: Macro<[string], Context> = (t, expected: string) => { - t.is(t.context.foo, expected); -}; - -test.beforeEach(t => { - t.context = {foo: 'bar'}; -}); - -test('foo is bar', macro, 'bar'); -``` - Note that, despite the type cast above, when executing `t.context` is an empty object unless it's assigned. ## Typing `throws` assertions diff --git a/docs/recipes/vue.md b/docs/recipes/vue.md index 6275a6611..7c23c97ad 100644 --- a/docs/recipes/vue.md +++ b/docs/recipes/vue.md @@ -53,8 +53,6 @@ hooks(['vue', 'js']).exclude(({filename}) => filename.match(/\/node_modules\//)) **Note:** If you are using _babel-plugin-webpack-alias-7_, you must also exclude your webpack file - e.g. `filename.includes(/\/node_modules\//) || filename.includes('webpack.config.test.js')` -You can find more information about setting up Babel with AVA 3 in [`@ava/babel`](https://github.com/avajs/babel). - ## Sample snapshot test ```js diff --git a/lib/cli.js b/lib/cli.js index a80d4b1a4..3f9974732 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -87,7 +87,7 @@ const FLAGS = { verbose: { alias: 'v', coerce: coerceLastValue, - description: 'Enable verbose output (no-op)', + description: 'Enable verbose output (default)', type: 'boolean', }, watch: { diff --git a/media/magic-assert-objects.png b/media/magic-assert-objects.png deleted file mode 100644 index c57d2d17ed985cb9b533a2665d6f4dbf63a57595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34279 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 KiSX;)r~e0c@ggz+ diff --git a/media/magic-assert-strings.png b/media/magic-assert-strings.png deleted file mode 100644 index fad67b7a25e9b50ddd0f521a297510d835290215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34734 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 diff --git a/media/mini-reporter.gif b/media/mini-reporter.gif deleted file mode 100644 index 27fb20a686c526aaa87ea6e6ad98ea05b0f22d3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407116 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