From 5739c76796ae9ec17451021cd84078e1c8213386 Mon Sep 17 00:00:00 2001 From: isaacs Date: Mon, 25 Sep 2023 13:17:19 -0700 Subject: [PATCH] tap 18, build with tshy --- .tshy/build.json | 9 + .tshy/commonjs.json | 14 + .tshy/esm.json | 11 + fixup.sh | 17 - package-lock.json | 7156 +++++++---------- package.json | 60 +- src/{bin.ts => bin.mts} | 20 +- src/retry-busy.ts | 2 +- src/rimraf-move-remove.ts | 2 +- src/rimraf-native.ts | 2 +- src/rimraf-posix.ts | 2 +- src/rimraf-windows.ts | 2 +- src/use-native.ts | 12 +- tap-snapshots/test/bin.js.test.cjs | 38 - tap-snapshots/test/bin.ts.test.cjs | 38 + .../{index.js.test.cjs => index.ts.test.cjs} | 12 +- ...usy.js.test.cjs => retry-busy.ts.test.cjs} | 2 +- .../test/rimraf-move-remove.js.test.cjs | 165 - .../test/rimraf-move-remove.ts.test.cjs | 177 + ....js.test.cjs => rimraf-native.ts.test.cjs} | 2 +- tap-snapshots/test/rimraf-posix.js.test.cjs | 111 - tap-snapshots/test/rimraf-posix.ts.test.cjs | 111 + tap-snapshots/test/rimraf-windows.js.test.cjs | 138 - tap-snapshots/test/rimraf-windows.ts.test.cjs | 150 + test/{bin.js => bin.ts} | 92 +- test/{default-tmp.js => default-tmp.ts} | 30 +- ...ete-many-files.js => delete-many-files.ts} | 35 +- test/{fix-eperm.js => fix-eperm.ts} | 78 +- test/fs.ts | 19 +- test/{ignore-enoent.js => ignore-enoent.ts} | 7 +- test/{index.js => index.ts} | 126 +- test/{opt-arg.js => opt-arg.ts} | 59 +- test/{path-arg.js => path-arg.ts} | 39 +- test/platform.js | 10 - test/platform.ts | 14 + ...eaddir-or-error.js => readdir-or-error.ts} | 14 +- test/{retry-busy.js => retry-busy.ts} | 42 +- test/rimraf-manual.js | 35 - test/rimraf-manual.ts | 29 + ...f-move-remove.js => rimraf-move-remove.ts} | 227 +- test/rimraf-native.js | 26 - test/rimraf-native.ts | 27 + test/{rimraf-posix.js => rimraf-posix.ts} | 100 +- test/{rimraf-windows.js => rimraf-windows.ts} | 273 +- test/use-native.js | 60 - test/use-native.ts | 87 + tsconfig-base.json | 18 - tsconfig-esm.json | 8 - tsconfig.json | 18 +- 49 files changed, 4395 insertions(+), 5331 deletions(-) create mode 100644 .tshy/build.json create mode 100644 .tshy/commonjs.json create mode 100644 .tshy/esm.json delete mode 100644 fixup.sh rename src/{bin.ts => bin.mts} (94%) delete mode 100644 tap-snapshots/test/bin.js.test.cjs create mode 100644 tap-snapshots/test/bin.ts.test.cjs rename tap-snapshots/test/{index.js.test.cjs => index.ts.test.cjs} (79%) rename tap-snapshots/test/{retry-busy.js.test.cjs => retry-busy.ts.test.cjs} (87%) delete mode 100644 tap-snapshots/test/rimraf-move-remove.js.test.cjs create mode 100644 tap-snapshots/test/rimraf-move-remove.ts.test.cjs rename tap-snapshots/test/{rimraf-native.js.test.cjs => rimraf-native.ts.test.cjs} (84%) delete mode 100644 tap-snapshots/test/rimraf-posix.js.test.cjs create mode 100644 tap-snapshots/test/rimraf-posix.ts.test.cjs delete mode 100644 tap-snapshots/test/rimraf-windows.js.test.cjs create mode 100644 tap-snapshots/test/rimraf-windows.ts.test.cjs rename test/{bin.js => bin.ts} (80%) rename test/{default-tmp.js => default-tmp.ts} (65%) rename test/{delete-many-files.js => delete-many-files.ts} (76%) rename test/{fix-eperm.js => fix-eperm.ts} (55%) rename test/{ignore-enoent.js => ignore-enoent.ts} (82%) rename test/{index.js => index.ts} (58%) rename test/{opt-arg.js => opt-arg.ts} (68%) rename test/{path-arg.js => path-arg.ts} (70%) delete mode 100644 test/platform.js create mode 100644 test/platform.ts rename test/{readdir-or-error.js => readdir-or-error.ts} (70%) rename test/{retry-busy.js => retry-busy.ts} (73%) delete mode 100644 test/rimraf-manual.js create mode 100644 test/rimraf-manual.ts rename test/{rimraf-move-remove.js => rimraf-move-remove.ts} (75%) delete mode 100644 test/rimraf-native.js create mode 100644 test/rimraf-native.ts rename test/{rimraf-posix.js => rimraf-posix.ts} (83%) rename test/{rimraf-windows.js => rimraf-windows.ts} (72%) delete mode 100644 test/use-native.js create mode 100644 test/use-native.ts delete mode 100644 tsconfig-base.json delete mode 100644 tsconfig-esm.json diff --git a/.tshy/build.json b/.tshy/build.json new file mode 100644 index 00000000..c51b7f53 --- /dev/null +++ b/.tshy/build.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "../src", + "target": "es2022", + "module": "nodenext", + "moduleResolution": "nodenext" + } +} diff --git a/.tshy/commonjs.json b/.tshy/commonjs.json new file mode 100644 index 00000000..6060f010 --- /dev/null +++ b/.tshy/commonjs.json @@ -0,0 +1,14 @@ +{ + "extends": "./build.json", + "include": [ + "../src/**/*.ts", + "../src/**/*.cts", + "../src/**/*.tsx" + ], + "exclude": [ + ".../src/**/*.mts" + ], + "compilerOptions": { + "outDir": "../.tshy-build-tmp/commonjs" + } +} diff --git a/.tshy/esm.json b/.tshy/esm.json new file mode 100644 index 00000000..fc29fc7d --- /dev/null +++ b/.tshy/esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./build.json", + "include": [ + "../src/**/*.ts", + "../src/**/*.mts", + "../src/**/*.tsx" + ], + "compilerOptions": { + "outDir": "../.tshy-build-tmp/esm" + } +} diff --git a/fixup.sh b/fixup.sh deleted file mode 100644 index 34d813fa..00000000 --- a/fixup.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -cat >dist/cjs/package.json <dist/mjs/package.json <=14" @@ -33,864 +30,1181 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "node_modules/@alcalzone/ansi-tokenize": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", + "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=14.13.1" } }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "node_modules/@alcalzone/ansi-tokenize/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@alcalzone/ansi-tokenize/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@npmcli/agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", + "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "@babel/types": "^7.21.4" + "debug": "^4.3.4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, "engines": { - "node": ">=6.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "node_modules/@npmcli/git": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=16" } }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=6.9.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" }, "engines": { - "node": ">=6.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "which": "^4.0.0" }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=4" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@npmcli/run-script": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.1.tgz", + "integrity": "sha512-Od/JMrgkjZ8alyBE0IzeqZDiF1jgMez9Gkc/OYrCkHHiXNwM0wc6s7+h+xM7kYDZkS0tAoOLr9VvygyE5+2F7g==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=16" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, "engines": { - "node": ">=4" + "node": ">=14" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/@sigstore/sign": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.1.0.tgz", + "integrity": "sha512-4VRpfJxs+8eLqzLVrZngVNExVA/zAhVbi4UT4zmtLi4xRd7vz5qie834OgkrGsLlLB1B2nz/3wUxT1XAUBe8gw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "node_modules/@tapjs/after": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.0.6.tgz", + "integrity": "sha512-knE0IKenPvPoWKLnicmyn6bAOA1jelD3Hl4yi7l5bogmWh7olSCfpRjsUT0/sfP3usKuDWf3nS3weR7qkufZTA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "is-actual-promise": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@tapjs/after-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.0.6.tgz", + "integrity": "sha512-RRuKEKoFCe7BG2xKEQZAHuLHr4vC2rXue4LttFWtvEiv4c0iTtQwe1zG9LtuMzVCddfPNn8FXHsWfUonjPwfUw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "function-loop": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@tapjs/asserts": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.0.6.tgz", + "integrity": "sha512-oG0VbiC6qkO1lbNWjT3rSwhaSg4KwBbX+RrBx3e24wnnGGQxE01MGT3ahdBjMIRg3bqgTX9Xnb0cDkoLLWeA8g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "is-actual-promise": "^1.0.0", + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@tapjs/before": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.0.6.tgz", + "integrity": "sha512-n2d2hDMb4oGdFVbEGtEAJdZygKNvjBqN/W/Dx213CW3hEJC7p/oPXAdUq3DQxzf4xkF5m0gdGoEYIdW0RVGMRQ==", "dev": true, - "peer": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "is-actual-promise": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@tapjs/core": "1.1.2" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "node_modules/@tapjs/before-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.0.6.tgz", + "integrity": "sha512-DUs7pExjfvLAmIdlMrRaRdOBW2bL1cDYYubZuTFEd1vf08c/9EnKbfYOnrn9Lir+U1+QIHdTVRZ1ksr8+ntj3g==", "dev": true, - "peer": true, + "dependencies": { + "function-loop": "^4.0.0" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "node_modules/@tapjs/config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.1.2.tgz", + "integrity": "sha512-k85DJahSGtIBZhob7hj+1ywiwlT4w172v6eyfJ2mZ4leHjuoTwTbmGilcG2AzZz+I9jRHleeAoSRCZxUnGUrzA==", "dev": true, - "peer": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "chalk": "^5.2.0", + "jackspeak": "^2.3.3", + "polite-json": "^4.0.1", + "walk-up-path": "^3.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2", + "@tapjs/test": "1.1.2" } }, - "node_modules/@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "node_modules/@tapjs/config/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "node_modules/@tapjs/core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.1.2.tgz", + "integrity": "sha512-cx1j1bSpwY2UHkcdSEWvM0AMI8r/HkK/YYkSY8ExKnremt5itCTcu0JrILgxAtKXI5jCYnEtgXyBKNSe80MT7Q==", "dev": true, - "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@tapjs/processinfo": "^3.1.1", + "@tapjs/stack": "1.1.0", + "@tapjs/test": "1.1.2", + "async-hook-domain": "^4.0.1", + "is-actual-promise": "^1.0.0", + "jackspeak": "^2.3.3", + "minipass": "^7.0.3", + "signal-exit": "4.1", + "tap-parser": "15.1.0", + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=16" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@tapjs/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "peer": true, "engines": { - "node": ">=12.22" + "node": ">=14" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@humanwhocodes/object-schema": { - "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==", + "node_modules/@tapjs/error-serdes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.0.0.tgz", + "integrity": "sha512-c15fdXAD0Mj9YakHvqWHrDgyaOftjRfkhNNCTphN9kLtuI8MCAyLUzb+cXa7/ZiIk89knsnyJh+B+Gb/bdtYBQ==", "dev": true, - "peer": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=12" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@tapjs/filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.1.2.tgz", + "integrity": "sha512-UB262+D0XlUfTGFzRJKFGguyNWxwuaAYg+qmerjNOmAomybBCuE8uzRYkKj7vTlxHNQzgYuBsv8MkY57xQOdag==", + "dev": true, + "dependencies": { + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=16" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@tapjs/fixture": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.0.6.tgz", + "integrity": "sha512-hOLogYf32WaZWn5oJGmQi44N0okPK6uEmzzs8wmNfsmd5EmS5gyajSQqIKuzt/MOqk0fGzWj5PK3JGfCIRpKhA==", + "dev": true, + "dependencies": { + "mkdirp": "^3.0.0", + "rimraf": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": ">=16" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@tapjs/fixture/node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "glob": "^10.2.5" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/@tapjs/intercept": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.1.3.tgz", + "integrity": "sha512-goe2DlSUQlYW2WdRrt9/CzsI1eIsreEfdTYZP1feIpSRmnjhBqhqX5UCuC1KfoMD1BOXz6d86PEpII40OxGiJw==", + "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "@tapjs/after": "1.0.6", + "@tapjs/stack": "1.1.0" }, "engines": { - "node": ">=12" + "node": ">=16" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@tapjs/mock": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.0.7.tgz", + "integrity": "sha512-6kH3wzpAB4kNWqATLp13SQU9NuChVX8j5dGCJvtkx0zpOaZyi1cyV8dk32Puj/+RN4VAYU8P2FmVTJEBzRRGVw==", + "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@tapjs/after": "1.0.6", + "@tapjs/stack": "1.1.0", + "resolve-import": "^1.4.1", + "walk-up-path": "^3.0.1" }, "engines": { - "node": ">=12" + "node": ">=16" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@tapjs/node-serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.0.2.tgz", + "integrity": "sha512-R77F1GByE0KXj/nLy9/5m1EWw35CG8qQCxNxd8tnG0zUZhvOst0nCxcYpIx7g/FKpQBLFDhy31P3NTZHFTsg6Q==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@tapjs/error-serdes": "1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@tapjs/processinfo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.1.tgz", + "integrity": "sha512-elE44bcvfsmTpF3McgD9uugUXLdU5HuQTXtrkXcMu1m9A2BRIZ/qIGuLPoZftvdb+1cFjMA21bItS5p7Lu9IaQ==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "pirates": "^4.0.5", + "process-on-spawn": "^1.0.0", + "signal-exit": "^4.0.2", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=16.17" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "node_modules/@tapjs/processinfo/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tapjs/reporter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.1.3.tgz", + "integrity": "sha512-HwFblJDG/hBHwmQZITmGAupe4EbUOc2v7ij4uR3J6+R/q9ytQKio/BmgJdGyZ71s2w2XqANONRGLmQVC3EkQCQ==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@tapjs/config": "2.1.2", + "@tapjs/test": "1.1.2", + "chalk": "^5.2.0", + "ink": "^4.4.1", + "ms": "^2.1.3", + "patch-console": "^2.0.0", + "prismjs": "^1.29.0", + "prismjs-terminal": "^1.2.3", + "react": "^18.2.0", + "string-length": "^6.0.0", + "tcompare": "6.1.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@tapjs/reporter/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@tapjs/reporter/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@tapjs/run": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.1.4.tgz", + "integrity": "sha512-wf1KvewMyIH68FWJSo/dcBS1sKQxkTih0kBYwahz+eUhrTbG5NHXLqfDkW7J7CTpwIHYMS/poQyPXMKR9zmnsQ==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.0.6", + "@tapjs/before": "1.0.6", + "@tapjs/config": "2.1.2", + "@tapjs/processinfo": "^3.1.1", + "@tapjs/reporter": "1.1.3", + "@tapjs/spawn": "1.0.6", + "@tapjs/stdin": "1.0.6", + "@tapjs/test": "1.1.2", + "c8": "^8.0.1", + "chokidar": "^3.5.3", + "foreground-child": "^3.1.1", + "glob": "^10.3.6", + "minipass": "^7.0.3", + "mkdirp": "^3.0.1", + "opener": "^1.5.2", + "pacote": "^17.0.3", + "path-scurry": "^1.9.2", + "resolve-import": "^1.4.1", + "rimraf": "^5.0.0", + "semver": "^7.5.4", + "signal-exit": "^4.1.0", + "tap-yaml": "2.1.1", + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0", + "ts-node": "npm:@isaacs/ts-node-temp-fork-for-pr-2009@^10.9.1", + "which": "^4.0.0" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "tap-run": "dist/esm/index.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@tapjs/run/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", + "node_modules/@tapjs/run/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@tapjs/run/node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "glob": "^10.2.5" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=6" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "node_modules/@tapjs/run/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tapjs/run/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=8" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@tapjs/snapshot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.0.6.tgz", + "integrity": "sha512-pvbKatjDV4Kq0cIQvdgauqDfBsjebFHAGn43vCX+G0JaOUjut/3zLH0KbJfmULSbLQ4cBOVHzgunr6Hm2c3BDg==", "dev": true, + "dependencies": { + "is-actual-promise": "^1.0.0", + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@tapjs/spawn": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.0.6.tgz", + "integrity": "sha512-uVPOHlQ/AvmEPkQTcMNSg7ykgS/bcvQmE6Zv4ZCi1MUb/YsBM1jme8AVmFxNtWLhGiDyp6VgCGKc7h8GUmwVbg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@tapjs/stack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.1.0.tgz", + "integrity": "sha512-L4ex6ZEAze4U2DDIth5nyzZfvwcK2BJOZKnlhRMpcxmSUpSas7oxnZeQVRfafZXzr4lE1ft/wNG5Ij/lx4lyag==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "tcompare": "6.1.0", + "trivial-deferred": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@tapjs/stdin": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.0.6.tgz", + "integrity": "sha512-0F4f3bmkZTATP88ctpB2GLUf74hga5WyYM82bdCGdXE8OcpNoUy3dYdwfvCuQ4jE+e728nMFx4Gw98G4WFHHyA==", "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@jridgewell/set-array": { + "node_modules/@tapjs/test": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, + "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.1.2.tgz", + "integrity": "sha512-HNvaxmGpu0CGNXKOym6+KRkI0wXVE4O1/tYcl7Q/evWOfnV4sQkFgMrbB2uWLjsMgldmQgr1/n6SJP2oFjoIyg==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.0.6", + "@tapjs/after-each": "1.0.6", + "@tapjs/asserts": "1.0.6", + "@tapjs/before": "1.0.6", + "@tapjs/before-each": "1.0.6", + "@tapjs/filter": "1.1.2", + "@tapjs/fixture": "1.0.6", + "@tapjs/intercept": "1.1.3", + "@tapjs/mock": "1.0.7", + "@tapjs/node-serialize": "1.0.2", + "@tapjs/snapshot": "1.0.6", + "@tapjs/spawn": "1.0.6", + "@tapjs/stdin": "1.0.6", + "@tapjs/typescript": "1.1.2", + "@tapjs/worker": "1.0.6", + "glob": "^10.3.6", + "jackspeak": "^2.3.3", + "mkdirp": "^3.0.0", + "resolve-import": "^1.4.1", + "rimraf": "^5.0.1", + "sync-content": "^1.0.1", + "tap-parser": "15.1.0", + "ts-node": "npm:@isaacs/ts-node-temp-fork-for-pr-2009@^10.9.1", + "tshy": "^1.1.1", + "typescript": "5.2" + }, + "bin": { + "generate-tap-test-class": "scripts/build.mjs" + }, "engines": { - "node": ">=6.0.0" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "node_modules/@tapjs/test/node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "glob": "^10.2.5" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@tapjs/typescript": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.1.2.tgz", + "integrity": "sha512-qybR/4U5UTj7KyncBnv6AMXNvYhRT+pXQn6BTTDqPrKrTkwFtZEKYQ1gkynbnvpjRPiW4cvzR1YVsQvqf9pshg==", "dev": true, - "peer": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "ts-node": "npm:@isaacs/ts-node-temp-fork-for-pr-2009@^10.9.1" }, "engines": { - "node": ">= 8" + "node": ">=16" + }, + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@tapjs/worker": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.0.6.tgz", + "integrity": "sha512-ghIXSEnsUy1XBDSbHQLgSCj7kTemVb3I9llChY+8tgx9W2Hn8Hym8qZuez+WSRwO1tzsuytORz0sLK+WUB/gqg==", "dev": true, - "peer": true, "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "node": ">=16" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@tapjs/core": "1.1.2" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, "engines": { - "node": ">=14" + "node": ">= 10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "node_modules/@tsconfig/node14": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz", + "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==", "dev": true }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "node_modules/@tsconfig/node16": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz", + "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==", "dev": true }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "node_modules/@tsconfig/node18": { + "version": "18.2.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", + "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", "dev": true }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "node_modules/@tsconfig/node20": { + "version": "20.1.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz", + "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==", "dev": true }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "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/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "version": "20.6.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.5.tgz", + "integrity": "sha512-2qGq5LAOTh9izcc0+F+dToFigBWiK1phKPt7rNhOqJSr35y8rlIBjDwGtFSgAI6MGIhjwOVNSQZVdJsZJ2uR1w==", "dev": true }, - "node_modules/@types/tap": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/@types/tap/-/tap-15.0.8.tgz", - "integrity": "sha512-ZfeoiZlLIaFi4t6wccwbTEicrHREkP0bOq8dZVi/nWvG5F8O7LlS2cSUZBiOW/D4cgWS/p2uhM3lJoyzFAl80w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, "node_modules/acorn": { "version": "8.8.2", @@ -904,16 +1218,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", @@ -923,6 +1227,30 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -936,21 +1264,40 @@ "node": ">=8" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/aggregate-error/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/ansi-escapes": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", "dev": true, - "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { @@ -994,44 +1341,50 @@ "node": ">= 8" } }, - "node_modules/append-transform": { + "node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, "dependencies": { - "default-require-extensions": "^3.0.0" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "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==", + "node_modules/async-hook-domain": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-4.0.1.tgz", + "integrity": "sha512-bSktexGodAjfHWIrSrrqxqWzf1hWBZBpmPNZv+TYUMyWa2eoefFc6q6H1+KtdHYSz35lrhWdmXt/XK9wNEZvww==", "dev": true, - "peer": true + "engines": { + "node": ">=16" + } }, - "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==", + "node_modules/auto-bind": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", + "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/balanced-match": { @@ -1048,15 +1401,6 @@ "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/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1079,44 +1423,19 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "semver": "^7.0.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, "node_modules/c8": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", - "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", + "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1124,90 +1443,42 @@ "find-up": "^5.0.0", "foreground-child": "^2.0.0", "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" }, "bin": { "c8": "bin/c8.js" }, "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001477", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001477.tgz", - "integrity": "sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dev": true, - "peer": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/chokidar": { @@ -1249,6 +1520,30 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1258,417 +1553,338 @@ "node": ">=6" } }, - "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==", + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "restore-cursor": "^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/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" }, "engines": { - "node": ">=6.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/cli-truncate/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "peer": true - }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, - "peer": true, "dependencies": { - "esutils": "^2.0.2" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.356", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.356.tgz", - "integrity": "sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==", - "dev": true - }, - "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/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "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==", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "peer": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "node_modules/cliui/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, - "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "node_modules/code-excerpt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", + "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", "dev": true, - "peer": true, "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "convert-to-spaces": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "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" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "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/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "color-support": "bin.js" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/convert-to-spaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", + "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", "dev": true, - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, "engines": { - "node": ">=0.10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "peer": true, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { - "estraverse": "^5.2.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=4.0" + "node": ">= 8" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "peer": true, + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=4.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/events-to-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", - "integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==", - "dev": true + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true + "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/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, - "peer": true + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "peer": true + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "peer": true, - "dependencies": { - "reusify": "^1.0.4" + "engines": { + "node": ">=6" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/events-to-array": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-2.0.3.tgz", + "integrity": "sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==", "dev": true, - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1681,23 +1897,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -1714,33 +1913,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", - "integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==", - "dev": true - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "peer": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true, - "peer": true - }, "node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -1774,11 +1946,17 @@ } ] }, - "node_modules/fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==", - "dev": true + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -1787,9 +1965,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -1800,19 +1978,35 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "node_modules/function-loop": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-2.0.1.tgz", - "integrity": "sha512-ktIR+O6i/4h+j/ZhZJNdzeI4i9lEPeEK6UPR2EVyTVBqOwcU3Za9xYKLH64ZR9HmcROyRrOkizNyjjtWJzDDkQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-4.0.0.tgz", + "integrity": "sha512-f34iQBedYF3XcI93uewZZOnyscDragxgTK/eTvVB74k3fCD0ZorOi5BV9GS4M8rz/JoNi0Kl3qX5Y9MH3S/CLQ==", "dev": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, "engines": { - "node": ">=6.9.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/get-caller-file": { @@ -1824,28 +2018,19 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/glob": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", - "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz", + "integrity": "sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -1854,19 +2039,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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": ">=10.13.0" - } - }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1890,27 +2062,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob/node_modules/jackspeak": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", - "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1932,2525 +2087,911 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true, - "peer": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.2.tgz", - "integrity": "sha512-GHeGTmnuaHnvS+ZctRB01bfxARuu9wW83ENbuiweu07SFcVlZrJpcshSre/keGT7YGBhLHg/+rXCNSrsEHKU4Q==", - "dev": true, - "dependencies": { - "cliui": "^7.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "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": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/libtap": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.0.tgz", - "integrity": "sha512-STLFynswQ2A6W14JkabgGetBNk6INL1REgJ9UeNKw5llXroC2cGLgKTqavv0sl8OLVztLLipVKMcQ7yeUcqpmg==", - "dev": true, - "dependencies": { - "async-hook-domain": "^2.0.4", - "bind-obj-methods": "^3.0.0", - "diff": "^4.0.2", - "function-loop": "^2.0.1", - "minipass": "^3.1.5", - "own-or": "^1.0.0", - "own-or-env": "^1.0.2", - "signal-exit": "^3.0.4", - "stack-utils": "^2.0.4", - "tap-parser": "^11.0.0", - "tap-yaml": "^1.0.0", - "tcompare": "^5.0.6", - "trivial-deferred": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/libtap/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/libtap/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "peer": true - }, - "node_modules/lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.0.tgz", - "integrity": "sha512-7+JDnNsyCvZXoUJdkMR0oUE2AmAdsNXGTmRbiOjYIwQ6q+bL6NwrozGQdPcmYaNcrhH37F50HHBUzoaBV6FITQ==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "peer": true - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "peer": 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/own-or": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", - "integrity": "sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==", - "dev": true - }, - "node_modules/own-or-env": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.2.tgz", - "integrity": "sha512-NQ7v0fliWtK7Lkb+WdFqe6ky9XAzYmlkXthQrBbzlYbmFKoAYbDDcwmOm6q8kOuwSRXW8bdL5ORksploUJmWgw==", - "dev": true, - "dependencies": { - "own-or": "^1.0.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.1.tgz", - "integrity": "sha512-UgmoiySyjFxP6tscZDgWGEAgsW5ok8W3F5CJDnnH2pozwSTGE6eH7vwTotMwATWA2r5xqdkKdxYPkwlJjAI/3g==", - "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "peer": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "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/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", - "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-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/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tap": { - "version": "16.3.4", - "resolved": "https://registry.npmjs.org/tap/-/tap-16.3.4.tgz", - "integrity": "sha512-SAexdt2ZF4XBgye6TPucFI2y7VE0qeFXlXucJIV1XDPCs+iJodk0MYacr1zR6Ycltzz7PYg8zrblDXKbAZM2LQ==", - "bundleDependencies": [ - "ink", - "treport", - "@types/react", - "@isaacs/import-jsx", - "react" - ], - "dev": true, - "dependencies": { - "@isaacs/import-jsx": "^4.0.1", - "@types/react": "^17.0.52", - "chokidar": "^3.3.0", - "findit": "^2.0.0", - "foreground-child": "^2.0.0", - "fs-exists-cached": "^1.0.0", - "glob": "^7.2.3", - "ink": "^3.2.0", - "isexe": "^2.0.0", - "istanbul-lib-processinfo": "^2.0.3", - "jackspeak": "^1.4.2", - "libtap": "^1.4.0", - "minipass": "^3.3.4", - "mkdirp": "^1.0.4", - "nyc": "^15.1.0", - "opener": "^1.5.1", - "react": "^17.0.2", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.6", - "source-map-support": "^0.5.16", - "tap-mocha-reporter": "^5.0.3", - "tap-parser": "^11.0.2", - "tap-yaml": "^1.0.2", - "tcompare": "^5.0.7", - "treport": "^3.0.4", - "which": "^2.0.2" - }, - "bin": { - "tap": "bin/run.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "peerDependencies": { - "coveralls": "^3.1.1", - "flow-remove-types": ">=2.112.0", - "ts-node": ">=8.5.2", - "typescript": ">=3.7.2" - }, - "peerDependenciesMeta": { - "coveralls": { - "optional": true - }, - "flow-remove-types": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tap-mocha-reporter": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.3.tgz", - "integrity": "sha512-6zlGkaV4J+XMRFkN0X+yuw6xHbE9jyCZ3WUKfw4KxMyRGOpYSRuuQTRJyWX88WWuLdVTuFbxzwXhXuS2XE6o0g==", - "dev": true, - "dependencies": { - "color-support": "^1.1.0", - "debug": "^4.1.1", - "diff": "^4.0.1", - "escape-string-regexp": "^2.0.0", - "glob": "^7.0.5", - "tap-parser": "^11.0.0", - "tap-yaml": "^1.0.0", - "unicode-length": "^2.0.2" - }, - "bin": { - "tap-mocha-reporter": "index.js" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tap-mocha-reporter/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tap-mocha-reporter/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "dev": true }, - "node_modules/tap-parser": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.2.tgz", - "integrity": "sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==", + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { - "events-to-array": "^1.0.1", - "minipass": "^3.1.6", - "tap-yaml": "^1.0.0" - }, - "bin": { - "tap-parser": "bin/cmd.js" + "function-bind": "^1.1.1" }, "engines": { - "node": ">= 8" + "node": ">= 0.4.0" } }, - "node_modules/tap-parser/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/tap-parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "node_modules/tap-yaml": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz", - "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==", + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dev": true, "dependencies": { - "yaml": "^1.10.2" + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/@ampproject/remapping": { - "version": "2.1.2", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, - "inBundle": true, - "license": "Apache-2.0", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=6.0.0" + "node": ">= 6" } }, - "node_modules/tap/node_modules/@babel/code-frame": { - "version": "7.16.7", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.7" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 6" } }, - "node_modules/tap/node_modules/@babel/compat-data": { - "version": "7.17.7", + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "ms": "^2.0.0" } }, - "node_modules/tap/node_modules/@babel/core": { - "version": "7.17.8", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "inBundle": true, - "license": "MIT", + "optional": true, "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/@babel/generator": { - "version": "7.17.7", + "node_modules/ignore-walk": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "minimatch": "^9.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "balanced-match": "^1.0.0" } }, - "node_modules/tap/node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=16 || 14 >=14.17" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=0.8.19" } }, - "node_modules/tap/node_modules/@babel/helper-function-name": { - "version": "7.16.7", + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ink": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.1.tgz", + "integrity": "sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==", + "dev": true, + "dependencies": { + "@alcalzone/ansi-tokenize": "^0.1.3", + "ansi-escapes": "^6.0.0", + "auto-bind": "^5.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "cli-cursor": "^4.0.0", + "cli-truncate": "^3.1.0", + "code-excerpt": "^4.0.0", + "indent-string": "^5.0.0", + "is-ci": "^3.0.1", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lodash": "^4.17.21", + "patch-console": "^2.0.0", + "react-reconciler": "^0.29.0", + "scheduler": "^0.23.0", + "signal-exit": "^3.0.7", + "slice-ansi": "^6.0.0", + "stack-utils": "^2.0.6", + "string-width": "^5.1.2", + "type-fest": "^0.12.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0", + "ws": "^8.12.0", + "yoga-wasm-web": "~0.3.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.16" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0", + "react-devtools-core": "^4.19.1" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-devtools-core": { + "optional": true + } } }, - "node_modules/tap/node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", + "node_modules/ink/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ink/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, "engines": { - "node": ">=6.9.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/tap/node_modules/@babel/helper-module-imports": { - "version": "7.16.7", + "node_modules/ink/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/ink/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", + "node_modules/ink/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/tap/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", + "node_modules/ink/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/@babel/helper-simple-access": { - "version": "7.17.7", + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/is-actual-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.0.tgz", + "integrity": "sha512-DWSmKTiEoY3Y9LGHG9TVnFgydCCu+3fLJi4rv3fpi0gL/lKoILekh/oF/nO3/Lq1l5Rqo+tQt5TWzxMmYIhWyg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "ci-info": "^3.2.0" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "is-ci": "bin.js" } }, - "node_modules/tap/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tap/node_modules/@babel/helper-validator-option": { - "version": "7.16.7", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/helpers": { - "version": "7.17.8", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/@babel/highlight": { - "version": "7.16.10", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.0.3" } }, - "node_modules/tap/node_modules/@babel/parser": { - "version": "7.17.8", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "inBundle": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=0.12.0" } }, - "node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, + "tslib": "^2.0.3" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=10" } }, - "node_modules/tap/node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/tap/node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/jackspeak": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", + "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/tap/node_modules/@babel/template": { - "version": "7.16.7", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, + "node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=6.9.0" + "node": "14 || >=16.14" } }, - "node_modules/tap/node_modules/@babel/traverse": { - "version": "7.17.3", + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@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.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/@babel/types": { - "version": "7.17.0", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/@isaacs/import-jsx": { - "version": "4.0.1", + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", "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" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", + "node_modules/make-fetch-happen/node_modules/cacache/node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tap/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/tap/node_modules/@types/prop-types": { - "version": "15.7.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/@types/react": { - "version": "17.0.52", + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "engines": { + "node": ">=12" } }, - "node_modules/tap/node_modules/@types/scheduler": { - "version": "0.16.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/@types/yoga-layout": { - "version": "1.9.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/ansi-escapes": { - "version": "4.3.2", + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, - "inBundle": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "bin": { + "marked": "bin/marked.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 12" } }, - "node_modules/tap/node_modules/ansi-regex": { - "version": "5.0.1", + "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, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/tap/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=4" - } - }, - "node_modules/tap/node_modules/ansicolors": { - "version": "0.3.2", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/tap/node_modules/auto-bind": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/minipass": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/tap/node_modules/balanced-match": { + "node_modules/minipass-collect": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/tap/node_modules/browserslist": { - "version": "4.20.2", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "inBundle": true, - "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" + "minipass": "^3.0.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">= 8" } }, - "node_modules/tap/node_modules/caller-callsite": { - "version": "4.1.0", + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "callsites": "^3.1.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/caller-path": { - "version": "3.0.1", + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "caller-callsite": "^4.1.0" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/tap/node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/tap/node_modules/caniuse-lite": { - "version": "1.0.30001319", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ], - "inBundle": true, - "license": "CC-BY-4.0" - }, - "node_modules/tap/node_modules/cardinal": { - "version": "2.1.1", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" + "minipass": "^3.0.0" }, - "bin": { - "cdl": "bin/cdl.js" + "engines": { + "node": ">= 8" } }, - "node_modules/tap/node_modules/chalk": { - "version": "2.4.2", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/tap/node_modules/ci-info": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/cli-boxes": { - "version": "2.2.1", + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" } }, - "node_modules/tap/node_modules/cli-cursor": { - "version": "3.1.0", + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "minipass": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/code-excerpt": { - "version": "3.0.0", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "convert-to-spaces": "^1.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/tap/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "node": ">=8" } }, - "node_modules/tap/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/convert-source-map": { - "version": "1.8.0", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/tap/node_modules/convert-to-spaces": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", + "minipass": "^3.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/tap/node_modules/csstype": { - "version": "3.0.11", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/debug": { - "version": "4.3.4", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ms": "2.1.2" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/tap/node_modules/electron-to-chromium": { - "version": "1.4.89", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/tap/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/escalade": { - "version": "3.1.1", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">= 8" } }, - "node_modules/tap/node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/tap/node_modules/esprima": { - "version": "4.0.1", + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/events-to-array": { - "version": "1.1.2", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/tap/node_modules/find-cache-dir": { - "version": "3.3.2", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/tap/node_modules/find-up": { - "version": "4.1.0", + "node_modules/node-gyp": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^11.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/tap/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/tap/node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "node": "^12.13 || ^14.13 || >=16" } }, - "node_modules/tap/node_modules/glob": { + "node_modules/node-gyp/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4466,514 +3007,598 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/globals": { - "version": "11.12.0", + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { - "node": ">=4" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/tap/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/indent-string": { - "version": "4.0.0", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/inflight": { - "version": "1.0.6", + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/tap/node_modules/ink": { - "version": "3.2.0", + "node_modules/npm-install-checks": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.2.0.tgz", + "integrity": "sha512-744wat5wAAHsxa4590mWO0tJ8PKxR8ORZsH9wGpQc3nWTzozMAgBN/XyqYw7mg3yqLM8dLwEnwSfKMmXAjF69g==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "auto-bind": "4.0.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.0", - "cli-cursor": "^3.1.0", - "cli-truncate": "^2.1.0", - "code-excerpt": "^3.0.0", - "indent-string": "^4.0.0", - "is-ci": "^2.0.0", - "lodash": "^4.17.20", - "patch-console": "^1.0.0", - "react-devtools-core": "^4.19.1", - "react-reconciler": "^0.26.2", - "scheduler": "^0.20.2", - "signal-exit": "^3.0.2", - "slice-ansi": "^3.0.0", - "stack-utils": "^2.0.2", - "string-width": "^4.2.2", - "type-fest": "^0.12.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0", - "ws": "^7.5.5", - "yoga-layout-prebuilt": "^1.9.6" + "dependencies": { + "semver": "^7.1.1" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": ">=16.8.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/ink/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/ink/node_modules/chalk": { - "version": "4.1.2", + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/ink/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/npm-packlist": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", + "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ignore-walk": "^6.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/ink/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/ink/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/ink/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/npm-registry-fetch": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", + "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/is-ci": { - "version": "2.0.0", + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ci-info": "^2.0.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/tap/node_modules/js-tokens": { - "version": "4.0.0", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "wrappy": "1" + } }, - "node_modules/tap/node_modules/jsesc": { - "version": "2.5.2", + "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, - "inBundle": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/json5": { - "version": "2.2.3", + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, - "inBundle": true, - "license": "MIT", "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "opener": "bin/opener-bin.js" } }, - "node_modules/tap/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/loose-envify": { - "version": "1.4.0", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "p-limit": "^3.0.2" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/make-dir": { - "version": "3.1.0", + "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, - "inBundle": true, - "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/pacote": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/patch-console": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", + "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/tap/node_modules/minipass": { - "version": "3.3.4", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } }, - "node_modules/tap/node_modules/node-releases": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "MIT" + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/tap/node_modules/object-assign": { - "version": "4.1.1", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tap/node_modules/once": { - "version": "1.4.0", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" + "engines": { + "node": ">= 6" } }, - "node_modules/tap/node_modules/onetime": { - "version": "5.1.2", + "node_modules/polite-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/polite-json/-/polite-json-4.0.1.tgz", + "integrity": "sha512-8LI5ZeCPBEb4uBbcYKNVwk4jgqNx1yHReWoW4H4uUihWlSqZsUDfSITrRhjliuPgxsNPFhNSudGO2Zu4cbWinQ==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=6" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/tap/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prismjs-terminal": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prismjs-terminal/-/prismjs-terminal-1.2.3.tgz", + "integrity": "sha512-xc0zuJ5FMqvW+DpiRkvxURlz98DdfDsZcFHdO699+oL+ykbFfgI7O4VDEgUyc07BSL2NHl3zdb8m/tZ/aaqUrw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "chalk": "^5.2.0", + "prismjs": "^1.29.0", + "string-length": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/p-try": { - "version": "2.2.0", + "node_modules/prismjs-terminal/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/tap/node_modules/patch-console": { - "version": "1.0.0", + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/path-exists": { - "version": "4.0.0", + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/path-is-absolute": { + "node_modules/promise-inflight": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/tap/node_modules/picocolors": { - "version": "1.0.0", + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dev": true, - "inBundle": true, - "license": "ISC" + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/tap/node_modules/pkg-dir": { - "version": "4.2.0", + "node_modules/react-reconciler": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", + "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.2.0" } }, - "node_modules/tap/node_modules/punycode": { - "version": "2.1.1", + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/react": { - "version": "17.0.2", + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/react-devtools-core": { - "version": "4.24.1", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "shell-quote": "^1.6.1", - "ws": "^7" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/tap/node_modules/react-reconciler": { - "version": "0.26.2", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "react": "^17.0.2" + "node": ">=8.10.0" } }, - "node_modules/tap/node_modules/redeyed": { + "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "esprima": "~4.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/tap/node_modules/resolve-from": { - "version": "3.0.0", + "node_modules/resolve-import": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-1.4.1.tgz", + "integrity": "sha512-afPxGmDnvJ4Atfg5mc+JFhxI4Rp3VnxFTsAa4WRbblyhDFYg5ZFyhqtrQ/AL29te1TK2ADcbAHX7uKK7Bwcjaw==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "glob": "^10.3.3", + "walk-up-path": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/restore-cursor": { - "version": "3.1.0", + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" } }, - "node_modules/tap/node_modules/rimraf": { + "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -4984,272 +3609,396 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/safe-buffer": { - "version": "5.1.2", + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "inBundle": true, - "license": "MIT" + "optional": true }, - "node_modules/tap/node_modules/scheduler": { - "version": "0.20.2", + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, - "node_modules/tap/node_modules/semver": { - "version": "6.3.0", + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "inBundle": true, - "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/tap/node_modules/shell-quote": { - "version": "1.7.3", + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "inBundle": true, - "license": "MIT" + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/tap/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC" + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/tap/node_modules/slice-ansi": { + "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.1.tgz", + "integrity": "sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/slice-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz", + "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/tap/node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/tap/node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, - "inBundle": true, - "license": "MIT" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/tap/node_modules/source-map": { - "version": "0.5.7", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "inBundle": true, - "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/tap/node_modules/stack-utils": { - "version": "2.0.5", + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "escape-string-regexp": "^2.0.0" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">=10" + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, - "inBundle": true, - "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/tap/node_modules/string-width": { - "version": "4.2.3", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tap/node_modules/strip-ansi": { - "version": "6.0.1", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "escape-string-regexp": "^2.0.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/supports-color": { - "version": "5.5.0", + "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, - "inBundle": true, - "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "safe-buffer": "~5.2.0" } }, - "node_modules/tap/node_modules/tap-parser": { - "version": "11.0.2", + "node_modules/string-length": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-6.0.0.tgz", + "integrity": "sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "events-to-array": "^1.0.1", - "minipass": "^3.1.6", - "tap-yaml": "^1.0.0" - }, - "bin": { - "tap-parser": "bin/cmd.js" + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/tap/node_modules/tap-yaml": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yaml": "^1.10.2" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tap/node_modules/to-fast-properties": { - "version": "2.0.0", + "node_modules/string-length/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "inBundle": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/tap/node_modules/treport": { - "version": "3.0.4", + "node_modules/string-length/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "inBundle": true, - "license": "ISC", "dependencies": { - "@isaacs/import-jsx": "^4.0.1", - "cardinal": "^2.1.1", - "chalk": "^3.0.0", - "ink": "^3.2.0", - "ms": "^2.1.2", - "tap-parser": "^11.0.0", - "tap-yaml": "^1.0.0", - "unicode-length": "^2.0.2" + "ansi-regex": "^6.0.1" }, - "peerDependencies": { - "react": "^17.0.2" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/tap/node_modules/treport/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/tap/node_modules/treport/node_modules/chalk": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/treport/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", + "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==", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/tap/node_modules/treport/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/treport/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/tap/node_modules/treport/node_modules/supports-color": { + "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5257,172 +4006,181 @@ "node": ">=8" } }, - "node_modules/tap/node_modules/type-fest": { - "version": "0.12.0", + "node_modules/sync-content": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-1.0.2.tgz", + "integrity": "sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==", "dev": true, - "inBundle": true, - "license": "(MIT OR CC0-1.0)", + "dependencies": { + "glob": "^10.2.6", + "mkdirp": "^3.0.1", + "path-scurry": "^1.9.2", + "rimraf": "^5.0.1" + }, + "bin": { + "sync-content": "dist/mjs/bin.mjs" + }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/unicode-length": { - "version": "2.0.2", + "node_modules/sync-content/node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "punycode": "^2.0.0", - "strip-ansi": "^3.0.1" + "glob": "^10.2.5" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/unicode-length/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", + "node_modules/tap": { + "version": "18.1.4", + "resolved": "https://registry.npmjs.org/tap/-/tap-18.1.4.tgz", + "integrity": "sha512-kd5YGSf7pjrmQBP+o+/AIjYntS5Oz4dOl5Uc8HPQlyIlWnv4RbsE2qSL8yRoEA6ds059JbNiUrntADa/L0dsuQ==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.0.6", + "@tapjs/after-each": "1.0.6", + "@tapjs/asserts": "1.0.6", + "@tapjs/before": "1.0.6", + "@tapjs/before-each": "1.0.6", + "@tapjs/core": "1.1.2", + "@tapjs/filter": "1.1.2", + "@tapjs/fixture": "1.0.6", + "@tapjs/intercept": "1.1.3", + "@tapjs/mock": "1.0.7", + "@tapjs/node-serialize": "1.0.2", + "@tapjs/run": "1.1.4", + "@tapjs/snapshot": "1.0.6", + "@tapjs/spawn": "1.0.6", + "@tapjs/stdin": "1.0.6", + "@tapjs/test": "1.1.2", + "@tapjs/typescript": "1.1.2", + "@tapjs/worker": "1.0.6" + }, + "bin": { + "tap": "dist/esm/run.mjs" + }, "engines": { - "node": ">=0.10.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tap/node_modules/unicode-length/node_modules/strip-ansi": { - "version": "3.0.1", + "node_modules/tap-parser": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.1.0.tgz", + "integrity": "sha512-gPc+JHHMEjuETjVxTHx26OVe7Eh4qxxwFulM6q2ZOVg5GFXzf29k3uStzjIDLaWTJcH9EqmA+7dnHiLPaq5EIg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "events-to-array": "^2.0.3", + "tap-yaml": "2.1.1" + }, + "bin": { + "tap-parser": "bin/cmd.cjs" }, "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, - "node_modules/tap/node_modules/widest-line": { - "version": "3.1.0", + "node_modules/tap-yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.1.1.tgz", + "integrity": "sha512-dIj7qdrZNfeY258zE970ACPTvsSogjq+n7VBw2Ydm6RTQ5OSeu+kODzf0pR3A7T5tRiwcXqiePWkHcLpggJT0g==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "string-width": "^4.0.0" + "yaml": "^2.3.0", + "yaml-types": "^0.3.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/tap/node_modules/wrap-ansi": { + "node_modules/tar": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 8" } }, - "node_modules/tap/node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "inBundle": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "yallist": "^4.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tap/node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/tap/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/tap/node_modules/ws": { - "version": "7.5.7", - "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": ">=8" } }, - "node_modules/tap/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/tap/node_modules/yaml": { - "version": "1.10.2", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "inBundle": true, - "license": "ISC", "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/tap/node_modules/yoga-layout-prebuilt": { - "version": "1.10.0", + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "@types/yoga-layout": "1.9.2" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/tcompare": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz", - "integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.1.0.tgz", + "integrity": "sha512-9B2QkV1A4jrwV+hoiwT2GfcpLznhtAee9Np9xpmzwDOb23XibNjwx3ZzAyhTxAml/5ztjHv2x2b6jKOBiYkKbQ==", "dev": true, "dependencies": { - "diff": "^4.0.2" + "diff": "^5.1.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/test-exclude": { @@ -5459,22 +4217,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "peer": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5488,111 +4230,205 @@ } }, "node_modules/trivial-deferred": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.1.2.tgz", - "integrity": "sha512-vDPiDBC3hyP6O4JrJYMImW3nl3c03Tsj9fEXc7Qc/XKa1O7gf5ZtFfIR/E0dun9SnDHdwjna1Z2rSzYgqpxh/g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-2.0.0.tgz", + "integrity": "sha512-iGbM7X2slv9ORDVj2y2FFUq3cP/ypbtu2nQ8S38ufjL0glBABvmR9pTdsib1XtS2LUhhLMbelaBUaf/s5J3dSw==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ts-node": { + "name": "@isaacs/ts-node-temp-fork-for-pr-2009", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.1.tgz", + "integrity": "sha512-MY4rUonz835NsTbd4dcgKZvZFYX9IkLnYFZV9M7GQV8t39fawafLin/Qw6VXD4yfMs4HcBq8P3ddeU0QHMH1YQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node14": "*", + "@tsconfig/node16": "*", + "@tsconfig/node18": "*", + "@tsconfig/node20": "*", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=4.2" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tshy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.1.1.tgz", + "integrity": "sha512-rtsY0MRxSY0wB7NRJNiRMH0BfLyYzTSbb1zbb87qJKbDwQS71nJ9B6BTOZRJoALbzu/KrOTHvRC7uaaPyUm36A==", + "dev": true, + "dependencies": { + "chalk": "^5.3.0", + "foreground-child": "^3.1.1", + "mkdirp": "^3.0.1", + "resolve-import": "^1.4.1", + "rimraf": "^5.0.1", + "sync-content": "^1.0.2", + "typescript": "5.2", + "walk-up-path": "^3.0.1" + }, + "bin": { + "tshy": "dist/esm/index.js" + }, + "engines": { + "node": "16 >=16.17 || 18 >=18.16.0 || >=20.6.1" + } + }, + "node_modules/tshy/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tshy/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">= 8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/tshy/node_modules/rimraf": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "glob": "^10.2.5" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "rimraf": "dist/cjs/src/bin.js" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=14" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/tshy/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", "dev": true, - "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { - "is-typedarray": "^1.0.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/typedoc": { - "version": "0.23.28", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.28.tgz", - "integrity": "sha512-9x1+hZWTHEQcGoP7qFmlo4unUoVJLB0H/8vfO/7wqTnZxg4kPuji9y3uRzEu0ZKez63OJAUmiGhUrtukC6Uj3w==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.1.tgz", + "integrity": "sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==", "dev": true, "dependencies": { "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", + "marked": "^4.3.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 14.14" + "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -5605,77 +4441,62 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, - "node_modules/unicode-length": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.1.0.tgz", - "integrity": "sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==", + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, "dependencies": { - "punycode": "^2.0.0" + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" + "imurmurhash": "^0.1.4" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/uuid": { "version": "8.3.2", @@ -5706,6 +4527,28 @@ "node": ">=10.12.0" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", @@ -5718,6 +4561,12 @@ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5732,34 +4581,91 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "peer": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -5782,22 +4688,88 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/y18n": { @@ -5810,54 +4782,58 @@ } }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 14" + } + }, + "node_modules/yaml-types": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yaml-types/-/yaml-types-0.3.0.tgz", + "integrity": "sha512-i9RxAO/LZBiE0NJUy9pbN5jFz5EasYDImzRkj8Y81kkInTi1laia3P3K/wlMKzOxFQutZip8TejvQP/DwgbU7A==", + "dev": true, + "engines": { + "node": ">= 16", + "npm": ">= 7" + }, + "peerDependencies": { + "yaml": "^2.3.0" } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "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.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "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/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/yocto-queue": { @@ -5871,6 +4847,12 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yoga-wasm-web": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", + "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==", + "dev": true } } } diff --git a/package.json b/package.json index 66c349ad..3aebe4f6 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,17 @@ { "name": "rimraf", "version": "5.0.1", - "main": "./dist/cjs/src/index.js", - "module": "./dist/mjs/index.js", - "types": "./dist/mjs/index.d.ts", - "bin": "./dist/cjs/src/bin.js", + "bin": "./dist/esm/bin.mjs", "exports": { + "./package.json": "./package.json", ".": { "import": { - "types": "./dist/mjs/index.d.ts", - "default": "./dist/mjs/index.js" + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" }, "require": { - "types": "./dist/cjs/src/index.d.ts", - "default": "./dist/cjs/src/index.js" + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" } } }, @@ -28,16 +26,14 @@ "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", - "preprepare": "rm -rf dist", - "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json", - "postprepare": "bash fixup.sh", + "prepare": "tshy", "pretest": "npm run prepare", "presnap": "npm run prepare", - "test": "c8 tap", - "snap": "c8 tap", + "test": "tap", + "snap": "tap", "format": "prettier --write . --loglevel warn", "benchmark": "node benchmark/index.js", - "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts" + "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts" }, "prettier": { "semi": false, @@ -51,26 +47,13 @@ "endOfLine": "lf" }, "devDependencies": { - "@types/node": "^18.11.9", - "@types/tap": "^15.0.7", - "c8": "^7.12.0", - "eslint-config-prettier": "^8.6.0", - "mkdirp": "^3.0.0", + "@types/node": "^20.6.5", + "mkdirp": "^3.0.1", "prettier": "^2.8.2", - "tap": "^16.3.4", - "ts-node": "^10.9.1", - "typedoc": "^0.23.21", - "typescript": "^5.0.4" - }, - "tap": { - "coverage": false, - "libtap-settings": "libtap-settings.js", - "node-arg": [ - "--no-warnings", - "--loader", - "ts-node/esm" - ], - "ts": false + "tap": "^18.1.4", + "tshy": "^1.1.1", + "typedoc": "^0.25.1", + "typescript": "^5.2" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -79,7 +62,7 @@ "node": ">=14" }, "dependencies": { - "glob": "^10.2.5" + "glob": "^10.3.7" }, "keywords": [ "rm", @@ -90,5 +73,12 @@ "cli", "rmdir", "recursive" - ] + ], + "type": "module", + "tshy": { + "exports": { + "./package.json": "./package.json", + ".": "./src/index.ts" + } + } } diff --git a/src/bin.ts b/src/bin.mts similarity index 94% rename from src/bin.ts rename to src/bin.mts index b49b4e85..24bee3c9 100755 --- a/src/bin.ts +++ b/src/bin.mts @@ -1,7 +1,13 @@ #!/usr/bin/env node -import { version } from '../package.json' -import { rimraf } from './index.js' +import { readFile } from 'fs/promises' import type { RimrafAsyncOptions } from './index.js' +import { rimraf } from './index.js' + +const pj = fileURLToPath(new URL('../package.json', import.meta.url)) +const pjDist = fileURLToPath(new URL('../../package.json', import.meta.url)) +const { version } = JSON.parse( + await readFile(pjDist, 'utf8').catch(() => readFile(pj, 'utf8')) +) as { version: string } const runHelpForUsage = () => console.error('run `rimraf --help` for usage information') @@ -45,8 +51,9 @@ Implementation-specific options: import { parse, relative, resolve } from 'path' const cwd = process.cwd() -import { createInterface, Interface } from 'readline' import { Dirent, Stats } from 'fs' +import { createInterface, Interface } from 'readline' +import { fileURLToPath } from 'url' const prompt = async (rl: Interface, q: string) => new Promise(res => rl.question(q, res)) @@ -253,12 +260,9 @@ const main = async (...args: string[]) => { main.help = help export default main +const isMainModule = process.argv[1] === fileURLToPath(import.meta.url) -if ( - typeof require === 'function' && - typeof module === 'object' && - require.main === module -) { +if (isMainModule) { const args = process.argv.slice(2) main(...args).then( code => process.exit(code), diff --git a/src/retry-busy.ts b/src/retry-busy.ts index 0c09890f..207ba9ba 100644 --- a/src/retry-busy.ts +++ b/src/retry-busy.ts @@ -1,6 +1,6 @@ // note: max backoff is the maximum that any *single* backoff will do -import { RimrafAsyncOptions, RimrafOptions } from '.' +import { RimrafAsyncOptions, RimrafOptions } from './index.js' export const MAXBACKOFF = 200 export const RATE = 1.2 diff --git a/src/rimraf-move-remove.ts b/src/rimraf-move-remove.ts index 77f95df2..e41fb3bf 100644 --- a/src/rimraf-move-remove.ts +++ b/src/rimraf-move-remove.ts @@ -27,7 +27,7 @@ import { const { lstat, rename, unlink, rmdir, chmod } = fsPromises import { Dirent, Stats } from 'fs' -import { RimrafAsyncOptions, RimrafSyncOptions } from '.' +import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js' import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js' // crypto.randomBytes is much slower, and Math.random() is enough here diff --git a/src/rimraf-native.ts b/src/rimraf-native.ts index 4e793943..101675ec 100644 --- a/src/rimraf-native.ts +++ b/src/rimraf-native.ts @@ -1,4 +1,4 @@ -import { RimrafAsyncOptions, RimrafSyncOptions } from '.' +import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js' import { promises, rmSync } from './fs.js' const { rm } = promises diff --git a/src/rimraf-posix.ts b/src/rimraf-posix.ts index 64326d99..4e99c532 100644 --- a/src/rimraf-posix.ts +++ b/src/rimraf-posix.ts @@ -12,7 +12,7 @@ import { parse, resolve } from 'path' import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js' import { Dirent, Stats } from 'fs' -import { RimrafAsyncOptions, RimrafSyncOptions } from '.' +import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js' import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js' export const rimrafPosix = async (path: string, opt: RimrafAsyncOptions) => { diff --git a/src/rimraf-windows.ts b/src/rimraf-windows.ts index 67b87cb9..150194a3 100644 --- a/src/rimraf-windows.ts +++ b/src/rimraf-windows.ts @@ -10,7 +10,7 @@ import { Dirent, Stats } from 'fs' import { parse, resolve } from 'path' -import { RimrafAsyncOptions, RimrafSyncOptions } from '.' +import { RimrafAsyncOptions, RimrafSyncOptions } from './index.js' import { fixEPERM, fixEPERMSync } from './fix-eperm.js' import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js' import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js' diff --git a/src/use-native.ts b/src/use-native.ts index 915784e3..633521b0 100644 --- a/src/use-native.ts +++ b/src/use-native.ts @@ -1,10 +1,16 @@ +import { RimrafAsyncOptions, RimrafOptions } from './index.js' +import platform from './platform.js' + const version = process.env.__TESTING_RIMRAF_NODE_VERSION__ || process.version const versArr = version.replace(/^v/, '').split('.') -const hasNative = +versArr[0] > 14 || (+versArr[0] === 14 && +versArr[1] >= 14) -import { RimrafAsyncOptions, RimrafOptions } from './index.js' + +/* c8 ignore start */ +const [major = 0, minor = 0] = versArr.map(v => parseInt(v, 10)) +/* c8 ignore stop */ +const hasNative = major > 14 || (major === 14 && minor >= 14) + // we do NOT use native by default on Windows, because Node's native // rm implementation is less advanced. Change this code if that changes. -import platform from './platform.js' export const useNative: (opt?: RimrafAsyncOptions) => boolean = !hasNative || platform === 'win32' ? () => false diff --git a/tap-snapshots/test/bin.js.test.cjs b/tap-snapshots/test/bin.js.test.cjs deleted file mode 100644 index 91e4871d..00000000 --- a/tap-snapshots/test/bin.js.test.cjs +++ /dev/null @@ -1,38 +0,0 @@ -/* IMPORTANT - * This snapshot file is auto-generated, but designed for humans. - * It should be checked into source control and tracked carefully. - * Re-generate by setting TAP_SNAPSHOT=1 and running tests. - * Make sure to inspect the output below. Do not ignore changes! - */ -'use strict' -exports[`test/bin.js TAP interactive deletes -V a > had any leftover 1`] = ` -false -` - -exports[`test/bin.js TAP interactive deletes -V hehaha, yes i think so, , A > had any leftover 1`] = ` -false -` - -exports[`test/bin.js TAP interactive deletes -V no, n, N, N, Q > had any leftover 1`] = ` -true -` - -exports[`test/bin.js TAP interactive deletes -V y, YOLO, no, quit > had any leftover 1`] = ` -true -` - -exports[`test/bin.js TAP interactive deletes -v a > had any leftover 1`] = ` -false -` - -exports[`test/bin.js TAP interactive deletes -v hehaha, yes i think so, , A > had any leftover 1`] = ` -false -` - -exports[`test/bin.js TAP interactive deletes -v no, n, N, N, Q > had any leftover 1`] = ` -true -` - -exports[`test/bin.js TAP interactive deletes -v y, YOLO, no, quit > had any leftover 1`] = ` -true -` diff --git a/tap-snapshots/test/bin.ts.test.cjs b/tap-snapshots/test/bin.ts.test.cjs new file mode 100644 index 00000000..6e5e8f52 --- /dev/null +++ b/tap-snapshots/test/bin.ts.test.cjs @@ -0,0 +1,38 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/bin.ts > TAP > interactive deletes > -v > a > had any leftover 1`] = ` +false +` + +exports[`test/bin.ts > TAP > interactive deletes > -V > a > had any leftover 1`] = ` +false +` + +exports[`test/bin.ts > TAP > interactive deletes > -v > hehaha, yes i think so, , A > had any leftover 1`] = ` +false +` + +exports[`test/bin.ts > TAP > interactive deletes > -V > hehaha, yes i think so, , A > had any leftover 1`] = ` +false +` + +exports[`test/bin.ts > TAP > interactive deletes > -v > no, n, N, N, Q > had any leftover 1`] = ` +true +` + +exports[`test/bin.ts > TAP > interactive deletes > -V > no, n, N, N, Q > had any leftover 1`] = ` +true +` + +exports[`test/bin.ts > TAP > interactive deletes > -v > y, YOLO, no, quit > had any leftover 1`] = ` +true +` + +exports[`test/bin.ts > TAP > interactive deletes > -V > y, YOLO, no, quit > had any leftover 1`] = ` +true +` diff --git a/tap-snapshots/test/index.js.test.cjs b/tap-snapshots/test/index.ts.test.cjs similarity index 79% rename from tap-snapshots/test/index.js.test.cjs rename to tap-snapshots/test/index.ts.test.cjs index fa006ef9..f6ce6f8c 100644 --- a/tap-snapshots/test/index.js.test.cjs +++ b/tap-snapshots/test/index.ts.test.cjs @@ -5,7 +5,7 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' -exports[`test/index.js TAP mocky unit tests to select the correct function main function, useNative=false > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > main function, useNative=false > must match snapshot 1`] = ` Array [ Array [ "optArg", @@ -56,7 +56,7 @@ Array [ ] ` -exports[`test/index.js TAP mocky unit tests to select the correct function main function, useNative=true > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > main function, useNative=true > must match snapshot 1`] = ` Array [ Array [ "optArg", @@ -107,7 +107,7 @@ Array [ ] ` -exports[`test/index.js TAP mocky unit tests to select the correct function manual > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > manual > must match snapshot 1`] = ` Array [ Array [ "optArg", @@ -146,7 +146,7 @@ Array [ ] ` -exports[`test/index.js TAP mocky unit tests to select the correct function native > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > native > must match snapshot 1`] = ` Array [ Array [ "optArg", @@ -185,7 +185,7 @@ Array [ ] ` -exports[`test/index.js TAP mocky unit tests to select the correct function posix > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > posix > must match snapshot 1`] = ` Array [ Array [ "optArg", @@ -224,7 +224,7 @@ Array [ ] ` -exports[`test/index.js TAP mocky unit tests to select the correct function windows > must match snapshot 1`] = ` +exports[`test/index.ts > TAP > mocky unit tests to select the correct function > windows > must match snapshot 1`] = ` Array [ Array [ "optArg", diff --git a/tap-snapshots/test/retry-busy.js.test.cjs b/tap-snapshots/test/retry-busy.ts.test.cjs similarity index 87% rename from tap-snapshots/test/retry-busy.js.test.cjs rename to tap-snapshots/test/retry-busy.ts.test.cjs index 90e77bc0..d7519b2c 100644 --- a/tap-snapshots/test/retry-busy.js.test.cjs +++ b/tap-snapshots/test/retry-busy.ts.test.cjs @@ -5,7 +5,7 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' -exports[`test/retry-busy.js TAP > default settings 1`] = ` +exports[`test/retry-busy.ts > TAP > default settings 1`] = ` Object { "codes": Set { "EMFILE", diff --git a/tap-snapshots/test/rimraf-move-remove.js.test.cjs b/tap-snapshots/test/rimraf-move-remove.js.test.cjs deleted file mode 100644 index def1c0c4..00000000 --- a/tap-snapshots/test/rimraf-move-remove.js.test.cjs +++ /dev/null @@ -1,165 +0,0 @@ -/* IMPORTANT - * This snapshot file is auto-generated, but designed for humans. - * It should be checked into source control and tracked carefully. - * Re-generate by setting TAP_SNAPSHOT=1 and running tests. - * Make sure to inspect the output below. Do not ignore changes! - */ -'use strict' -exports[`test/rimraf-move-remove.js TAP filter function filter=i async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP filter function filter=i async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP filter function filter=i sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-i-sync/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP filter function filter=j async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP filter function filter=j async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP filter function filter=j sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/a", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/b", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/d", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/e", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/g", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/h", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/j", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/k", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/l", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/m", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-move-remove-filter-function-filter-j-sync/c/f/i/m/o", -] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs on unlink by trying to chmod 0o666 async > must match snapshot 1`] = ` -Array [ - Array [ - "chmod", - "{tmpfile}", - "438", - ], -] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs on unlink by trying to chmod 0o666 sync > must match snapshot 1`] = ` -Array [ - Array [ - "chmodSync", - "{tmpfile}", - "438", - ], -] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs, chmod raises something other than ENOENT async > must match snapshot 1`] = ` -Array [] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs, chmod raises something other than ENOENT sync > must match snapshot 1`] = ` -Array [ - Array [ - "chmodSync", - "{tmpfile}", - "438", - ], -] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs, chmod returns ENOENT async > must match snapshot 1`] = ` -Array [ - Array [ - "chmod", - "{tmpfile}", - "438", - ], -] -` - -exports[`test/rimraf-move-remove.js TAP handle EPERMs, chmod returns ENOENT sync > must match snapshot 1`] = ` -Array [ - Array [ - "chmodSync", - "{tmpfile}", - "438", - ], -] -` diff --git a/tap-snapshots/test/rimraf-move-remove.ts.test.cjs b/tap-snapshots/test/rimraf-move-remove.ts.test.cjs new file mode 100644 index 00000000..aa1a9aef --- /dev/null +++ b/tap-snapshots/test/rimraf-move-remove.ts.test.cjs @@ -0,0 +1,177 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=i > async > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=i > async filter > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-async-filter/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=i > sync > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-i-sync/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=j > async > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=j > async filter > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-async-filter/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > filter function > filter=j > sync > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/a", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/b", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/d", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/e", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/g", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/h", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-move-remove.ts-filter-function-filter-j-sync/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs on unlink by trying to chmod 0o666 > async > must match snapshot 1`] = ` +Array [ + Array [ + "chmod", + "{tmpfile}", + "438", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs on unlink by trying to chmod 0o666 > sync > must match snapshot 1`] = ` +Array [ + Array [ + "chmodSync", + "{tmpfile}", + "438", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs, chmod raises something other than ENOENT > async > must match snapshot 1`] = ` +Array [] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs, chmod raises something other than ENOENT > sync > must match snapshot 1`] = ` +Array [ + Array [ + "chmodSync", + "{tmpfile}", + "438", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs, chmod returns ENOENT > async > must match snapshot 1`] = ` +Array [ + Array [ + "chmod", + "{tmpfile}", + "438", + ], +] +` + +exports[`test/rimraf-move-remove.ts > TAP > handle EPERMs, chmod returns ENOENT > sync > must match snapshot 1`] = ` +Array [ + Array [ + "chmodSync", + "{tmpfile}", + "438", + ], +] +` diff --git a/tap-snapshots/test/rimraf-native.js.test.cjs b/tap-snapshots/test/rimraf-native.ts.test.cjs similarity index 84% rename from tap-snapshots/test/rimraf-native.js.test.cjs rename to tap-snapshots/test/rimraf-native.ts.test.cjs index 1185d3b6..56a66b26 100644 --- a/tap-snapshots/test/rimraf-native.js.test.cjs +++ b/tap-snapshots/test/rimraf-native.ts.test.cjs @@ -5,7 +5,7 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' -exports[`test/rimraf-native.js TAP calls the right node function > must match snapshot 1`] = ` +exports[`test/rimraf-native.ts > TAP > calls the right node function > must match snapshot 1`] = ` Array [ Array [ "rm", diff --git a/tap-snapshots/test/rimraf-posix.js.test.cjs b/tap-snapshots/test/rimraf-posix.js.test.cjs deleted file mode 100644 index 97c449bb..00000000 --- a/tap-snapshots/test/rimraf-posix.js.test.cjs +++ /dev/null @@ -1,111 +0,0 @@ -/* IMPORTANT - * This snapshot file is auto-generated, but designed for humans. - * It should be checked into source control and tracked carefully. - * Re-generate by setting TAP_SNAPSHOT=1 and running tests. - * Make sure to inspect the output below. Do not ignore changes! - */ -'use strict' -exports[`test/rimraf-posix.js TAP filter function filter=i async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-posix.js TAP filter function filter=i async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-posix.js TAP filter function filter=i sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-i-sync/c/f/i/m/o", -] -` - -exports[`test/rimraf-posix.js TAP filter function filter=j async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-posix.js TAP filter function filter=j async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-posix.js TAP filter function filter=j sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/a", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/b", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/d", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/e", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/g", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/h", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/j", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/k", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/l", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/m", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-posix-filter-function-filter-j-sync/c/f/i/m/o", -] -` diff --git a/tap-snapshots/test/rimraf-posix.ts.test.cjs b/tap-snapshots/test/rimraf-posix.ts.test.cjs new file mode 100644 index 00000000..23506033 --- /dev/null +++ b/tap-snapshots/test/rimraf-posix.ts.test.cjs @@ -0,0 +1,111 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/rimraf-posix.ts > TAP > filter function > filter=i > async > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async/c/f/i/m/o", +] +` + +exports[`test/rimraf-posix.ts > TAP > filter function > filter=i > async filter > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-async-filter/c/f/i/m/o", +] +` + +exports[`test/rimraf-posix.ts > TAP > filter function > filter=i > sync > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-i-sync/c/f/i/m/o", +] +` + +exports[`test/rimraf-posix.ts > TAP > filter function > filter=j > async > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async/c/f/i/m/o", +] +` + +exports[`test/rimraf-posix.ts > TAP > filter function > filter=j > async filter > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-async-filter/c/f/i/m/o", +] +` + +exports[`test/rimraf-posix.ts > TAP > filter function > filter=j > sync > paths seen 1`] = ` +Array [ + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/a", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/b", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/d", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/e", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/g", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/h", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-posix.ts-filter-function-filter-j-sync/c/f/i/m/o", +] +` diff --git a/tap-snapshots/test/rimraf-windows.js.test.cjs b/tap-snapshots/test/rimraf-windows.js.test.cjs deleted file mode 100644 index f51a2783..00000000 --- a/tap-snapshots/test/rimraf-windows.js.test.cjs +++ /dev/null @@ -1,138 +0,0 @@ -/* IMPORTANT - * This snapshot file is auto-generated, but designed for humans. - * It should be checked into source control and tracked carefully. - * Re-generate by setting TAP_SNAPSHOT=1 and running tests. - * Make sure to inspect the output below. Do not ignore changes! - */ -'use strict' -exports[`test/rimraf-windows.js TAP filter function filter=i async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP filter function filter=i async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP filter function filter=i sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-i-sync/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP filter function filter=j async > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP filter function filter=j async filter > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-async-filter/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP filter function filter=j sync > paths seen 1`] = ` -Array [ - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/a", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/b", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/d", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/e", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/g", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/h", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/j", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/k", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/l", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/m", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/m/n", - "test/tap-testdir-rimraf-windows-filter-function-filter-j-sync/c/f/i/m/o", -] -` - -exports[`test/rimraf-windows.js TAP handle EPERMs on unlink by trying to chmod 0o666 async > chmods 1`] = ` -1 -` - -exports[`test/rimraf-windows.js TAP handle EPERMs on unlink by trying to chmod 0o666 sync > chmods 1`] = ` -1 -` - -exports[`test/rimraf-windows.js TAP handle EPERMs, chmod raises something other than ENOENT async > chmods 1`] = ` -0 -` - -exports[`test/rimraf-windows.js TAP handle EPERMs, chmod raises something other than ENOENT sync > chmods 1`] = ` -1 -` - -exports[`test/rimraf-windows.js TAP handle EPERMs, chmod returns ENOENT async > chmods 1`] = ` -1 -` - -exports[`test/rimraf-windows.js TAP handle EPERMs, chmod returns ENOENT sync > chmods 1`] = ` -1 -` diff --git a/tap-snapshots/test/rimraf-windows.ts.test.cjs b/tap-snapshots/test/rimraf-windows.ts.test.cjs new file mode 100644 index 00000000..90817216 --- /dev/null +++ b/tap-snapshots/test/rimraf-windows.ts.test.cjs @@ -0,0 +1,150 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/rimraf-windows.ts > TAP > filter function > filter=i > async > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > filter function > filter=i > async filter > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-async-filter/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > filter function > filter=i > sync > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-i-sync/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > filter function > filter=j > async > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > filter function > filter=j > async filter > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-async-filter/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > filter function > filter=j > sync > paths seen 1`] = ` +Array [ + Array [ + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/a", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/b", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/d", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/e", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/g", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/h", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/j", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/k", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/l", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/m", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/m/n", + ".tap/fixtures/test-rimraf-windows.ts-filter-function-filter-j-sync/c/f/i/m/o", + ], +] +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs on unlink by trying to chmod 0o666 > async > chmods 1`] = ` +1 +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs on unlink by trying to chmod 0o666 > sync > chmods 1`] = ` +1 +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs, chmod raises something other than ENOENT > async > chmods 1`] = ` +0 +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs, chmod raises something other than ENOENT > sync > chmods 1`] = ` +1 +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs, chmod returns ENOENT > async > chmods 1`] = ` +1 +` + +exports[`test/rimraf-windows.ts > TAP > handle EPERMs, chmod returns ENOENT > sync > chmods 1`] = ` +1 +` diff --git a/test/bin.js b/test/bin.ts similarity index 80% rename from test/bin.js rename to test/bin.ts index aa6f26d0..93b21aab 100644 --- a/test/bin.js +++ b/test/bin.ts @@ -1,9 +1,14 @@ -const t = require('tap') -const { readdirSync } = require('fs') +import { spawn, spawnSync } from 'child_process' +import { readdirSync, statSync } from 'fs' +import t from 'tap' +import { fileURLToPath } from 'url' +import { RimrafOptions } from '../src/index.js' -t.test('basic arg parsing stuff', t => { - const LOGS = [] - const ERRS = [] +const binModule = fileURLToPath(new URL('../dist/esm/bin.mjs', import.meta.url)) + +t.test('basic arg parsing stuff', async t => { + const LOGS: any[] = [] + const ERRS: any[] = [] const { log: consoleLog, error: consoleError } = console t.teardown(() => { console.log = consoleLog @@ -12,24 +17,30 @@ t.test('basic arg parsing stuff', t => { console.log = (...msg) => LOGS.push(msg) console.error = (...msg) => ERRS.push(msg) - const CALLS = [] + const CALLS: any[] = [] const rimraf = Object.assign( - async (path, opt) => CALLS.push(['rimraf', path, opt]), + async (path: string, opt: RimrafOptions) => + CALLS.push(['rimraf', path, opt]), { - native: async (path, opt) => CALLS.push(['native', path, opt]), - manual: async (path, opt) => CALLS.push(['manual', path, opt]), - posix: async (path, opt) => CALLS.push(['posix', path, opt]), - windows: async (path, opt) => CALLS.push(['windows', path, opt]), - moveRemove: async (path, opt) => CALLS.push(['move-remove', path, opt]), + native: async (path: string, opt: RimrafOptions) => + CALLS.push(['native', path, opt]), + manual: async (path: string, opt: RimrafOptions) => + CALLS.push(['manual', path, opt]), + posix: async (path: string, opt: RimrafOptions) => + CALLS.push(['posix', path, opt]), + windows: async (path: string, opt: RimrafOptions) => + CALLS.push(['windows', path, opt]), + moveRemove: async (path: string, opt: RimrafOptions) => + CALLS.push(['move-remove', path, opt]), } ) - const bin = t.mock('../dist/cjs/src/bin.js', { - '../dist/cjs/src/index.js': { + const { default: bin } = await t.mockImport('../dist/esm/bin.mjs', { + '../dist/esm/index.js': { rimraf, ...rimraf, }, - }).default + }) t.afterEach(() => { LOGS.length = 0 @@ -84,7 +95,7 @@ t.test('basic arg parsing stuff', t => { t.teardown(() => { console.log = log }) - const logs = [] + const logs: any[] = [] console.log = s => logs.push(s) for (const c of CALLS) { t.equal(c[0], 'rimraf') @@ -106,7 +117,7 @@ t.test('basic arg parsing stuff', t => { t.teardown(() => { console.log = log }) - const logs = [] + const logs: any[] = [] console.log = s => logs.push(s) for (const c of CALLS) { t.equal(c[0], 'rimraf') @@ -267,10 +278,9 @@ t.test('actually delete something with it', async t => { }, }) - const bin = require.resolve('../dist/cjs/src/bin.js') - const { spawnSync } = require('child_process') - const res = spawnSync(process.execPath, [bin, path]) - const { statSync } = require('fs') + const res = spawnSync(process.execPath, [binModule, path], { + encoding: 'utf8' + }) t.throws(() => statSync(path)) t.equal(res.status, 0) }) @@ -284,15 +294,12 @@ t.test('print failure when impl throws', async t => { }, }) - const bin = require.resolve('../dist/cjs/src/bin.js') - const { spawnSync } = require('child_process') - const res = spawnSync(process.execPath, [bin, path], { + const res = spawnSync(process.execPath, [binModule, path], { env: { ...process.env, __RIMRAF_TESTING_BIN_FAIL__: '1', }, }) - const { statSync } = require('fs') t.equal(statSync(path).isDirectory(), true) t.equal(res.status, 1) t.match(res.stderr.toString(), /^Error: simulated rimraf failure/) @@ -314,11 +321,9 @@ t.test('interactive deletes', t => { // t.jobs = scripts.length * verboseOpt.length - const { spawn } = require('child_process') - const bin = require.resolve('../dist/cjs/src/bin.js') const node = process.execPath - const leftovers = d => { + const leftovers = (d: string) => { try { readdirSync(d) return true @@ -333,12 +338,12 @@ t.test('interactive deletes', t => { const script = s.slice() t.test(script.join(', '), async t => { const d = t.testdir(fixture) - const args = [bin, '-i', verbose, d] + const args = [binModule, '-i', verbose, d] const child = spawn(node, args, { stdio: 'pipe', }) - const out = [] - const err = [] + const out: string[] = [] + const err: string[] = [] const timer = setTimeout(() => { t.fail('timed out') child.kill('SIGKILL') @@ -346,7 +351,7 @@ t.test('interactive deletes', t => { child.stdout.setEncoding('utf8') child.stderr.setEncoding('utf8') let last = '' - child.stdout.on('data', async c => { + child.stdout.on('data', async (c: string) => { // await new Promise(r => setTimeout(r, 50)) out.push(c.trim()) const s = script.shift() @@ -359,18 +364,21 @@ t.test('interactive deletes', t => { child.stdin.write(last + '\n') } }) - child.stderr.on('data', c => { + child.stderr.on('data', (c: string) => { err.push(c) }) - return new Promise(res => { - child.on('close', (code, signal) => { - clearTimeout(timer) - t.same(err, [], 'should not see any stderr') - t.equal(code, 0, 'code') - t.equal(signal, null, 'signal') - t.matchSnapshot(leftovers(d), 'had any leftover') - res() - }) + return new Promise(res => { + child.on( + 'close', + (code: number | null, signal: NodeJS.Signals | null) => { + clearTimeout(timer) + t.same(err, [], 'should not see any stderr') + t.equal(code, 0, 'code') + t.equal(signal, null, 'signal') + t.matchSnapshot(leftovers(d), 'had any leftover') + res() + } + ) }) }) } diff --git a/test/default-tmp.js b/test/default-tmp.ts similarity index 65% rename from test/default-tmp.js rename to test/default-tmp.ts index 806c05a9..35974e7b 100644 --- a/test/default-tmp.js +++ b/test/default-tmp.ts @@ -1,19 +1,21 @@ -const t = require('tap') +import t from 'tap' + +import { tmpdir } from 'os' +import { win32 } from 'path' t.test('posix platform', async t => { - const { tmpdir } = require('os') - const { defaultTmp, defaultTmpSync } = t.mock( - '../dist/cjs/src/default-tmp.js', + const { defaultTmp, defaultTmpSync } = (await t.mockImport( + '../dist/esm/default-tmp.js', { - '../dist/cjs/src/platform.js': 'posix', + '../dist/esm/platform.js': 'posix', } - ) + )) as typeof import('../dist/esm/default-tmp.js') t.equal(defaultTmpSync('anything'), tmpdir()) t.equal(await defaultTmp('anything').then(t => t), tmpdir()) }) t.test('windows', async t => { - const tempDirCheck = path => { + const tempDirCheck = (path: string) => { switch (path.toLowerCase()) { case 'd:\\temp': return { isDirectory: () => true } @@ -23,22 +25,22 @@ t.test('windows', async t => { throw Object.assign(new Error('no ents here'), { code: 'ENOENT' }) } } - const { defaultTmp, defaultTmpSync } = t.mock( - '../dist/cjs/src/default-tmp.js', + const { defaultTmp, defaultTmpSync } = (await t.mockImport( + '../dist/esm/default-tmp.js', { os: { tmpdir: () => 'C:\\Windows\\Temp', }, - path: require('path').win32, - '../dist/cjs/src/platform.js': 'win32', - '../dist/cjs/src/fs.js': { + path: win32, + '../dist/esm/platform.js': 'win32', + '../dist/esm/fs.js': { statSync: tempDirCheck, promises: { - stat: async path => tempDirCheck(path), + stat: async (path: string) => tempDirCheck(path), }, }, } - ) + )) as typeof import('../dist/esm/default-tmp.js') const expect = { 'c:\\some\\path': 'C:\\Windows\\Temp', diff --git a/test/delete-many-files.js b/test/delete-many-files.ts similarity index 76% rename from test/delete-many-files.js rename to test/delete-many-files.ts index c5c5bbb7..9e418e20 100644 --- a/test/delete-many-files.js +++ b/test/delete-many-files.ts @@ -1,6 +1,6 @@ // this isn't for coverage. it's basically a smoke test, to ensure that // we can delete a lot of files on CI in multiple platforms and node versions. -const t = require('tap') +import t from 'tap' if (/^v10\./.test(process.version)) { t.plan(0, 'skip this on node 10, it runs out of memory') @@ -11,13 +11,13 @@ if (/^v10\./.test(process.version)) { // make this more or less aggressive. const START = (process.env.RIMRAF_TEST_START_CHAR || 'a').charCodeAt(0) const END = (process.env.RIMRAF_TEST_END_CHAR || 'f').charCodeAt(0) -const DEPTH = +process.env.RIMRAF_TEST_DEPTH || 4 +const DEPTH = +(process.env.RIMRAF_TEST_DEPTH || '') || 4 -const { statSync, mkdirSync, readdirSync } = require('../dist/cjs/src/fs.js') -const { writeFileSync } = require('fs') -const { resolve, dirname } = require('path') +import { statSync, mkdirSync, readdirSync } from '../dist/esm/fs.js' +import { writeFileSync } from 'fs' +import { resolve, dirname } from 'path' -const create = (path, depth = 0) => { +const create = (path: string, depth = 0) => { mkdirSync(path) for (let i = START; i <= END; i++) { const c = String.fromCharCode(i) @@ -30,18 +30,17 @@ const create = (path, depth = 0) => { return path } -const cases = { - manual: require('../').manual, -} +import { manual } from '../dist/esm/index.js' +const cases = { manual } -const base = t.testdir( - Object.keys(cases).reduce((o, c) => { - o[c] = { sync: {}, async: {} } - return o - }, {}) -) +const base = t.testdir(Object.fromEntries( + Object.entries(cases).map(([name]) => [name, { + sync: {}, + async: {}, + }]) +)) -const createAllFixtures = t => { +t.test('create all fixtures', t => { for (const name of Object.keys(cases)) { for (const type of ['sync', 'async']) { const path = `${base}/${name}/${type}/test` @@ -50,9 +49,7 @@ const createAllFixtures = t => { } } setTimeout(() => t.end(), 3000) -} - -t.test('create all fixtures', createAllFixtures) +}) t.test('delete all fixtures', t => { for (const [name, rimraf] of Object.entries(cases)) { diff --git a/test/fix-eperm.js b/test/fix-eperm.ts similarity index 55% rename from test/fix-eperm.js rename to test/fix-eperm.ts index b4b2e45a..7859e064 100644 --- a/test/fix-eperm.js +++ b/test/fix-eperm.ts @@ -1,44 +1,43 @@ -const t = require('tap') -const fs = require('../dist/cjs/src/fs.js') +import t from 'tap' t.test('works if it works', async t => { - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', {}) - const fixed = fixEPERM(() => 1) - await fixed().then(n => t.equal(n, 1)) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/fix-eperm.js') + const fixed = fixEPERM(async () => 1) + await fixed('x').then(n => t.equal(n, 1)) const fixedSync = fixEPERMSync(() => 1) - t.equal(fixedSync(), 1) + t.equal(fixedSync('x'), 1) }) t.test('throw non-EPERM just throws', async t => { - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', {}) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/fix-eperm.js') const fixed = fixEPERM(() => { throw new Error('oops') }) - await t.rejects(fixed(), new Error('oops')) + await t.rejects(fixed('x'), new Error('oops')) const fixedSync = fixEPERMSync(() => { throw new Error('oops') }) - t.throws(() => fixedSync(), new Error('oops')) + t.throws(() => fixedSync('x'), new Error('oops')) }) t.test('throw ENOENT returns void', async t => { const er = Object.assign(new Error('no ents'), { code: 'ENOENT' }) - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', {}) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/fix-eperm.js') const fixed = fixEPERM(() => { throw er }) - await fixed().then(n => t.equal(n, undefined)) + await fixed('x').then(n => t.equal(n, undefined)) const fixedSync = fixEPERMSync(() => { throw er }) - t.equal(fixedSync(), undefined) + t.equal(fixedSync('x'), undefined) }) t.test('chmod and try again', async t => { - const seen = new Set() - const finished = new Set() + const seen = new Set() + const finished = new Set() const eperm = Object.assign(new Error('perm'), { code: 'EPERM' }) - const method = p => { + const method = (p: string) => { if (!seen.has(p)) { seen.add(p) throw eperm @@ -48,20 +47,21 @@ t.test('chmod and try again', async t => { finished.add(p) } } + const asyncMethod = async (p: string) => method(p) const chmods = new Set() - const chmodSync = (p, mode) => { + const chmodSync = (p: string, mode: number) => { t.equal(chmods.has(p), false) chmods.add(p) t.equal(mode, 0o666) } - const chmod = async (p, mode) => chmodSync(p, mode) - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', { - '../dist/cjs/src/fs.js': { + const chmod = async (p: string, mode: number) => chmodSync(p, mode) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', { + '../dist/esm/fs.js': { promises: { chmod }, chmodSync, }, - }) - const fixed = fixEPERM(method) + }) as typeof import('../dist/esm/fix-eperm.js') + const fixed = fixEPERM(asyncMethod) const fixedSync = fixEPERMSync(method) await fixed('async').then(n => t.equal(n, undefined)) t.equal(fixedSync('sync'), undefined) @@ -71,10 +71,10 @@ t.test('chmod and try again', async t => { }) t.test('chmod ENOENT is fine, abort', async t => { - const seen = new Set() - const finished = new Set() + const seen = new Set() + const finished = new Set() const eperm = Object.assign(new Error('perm'), { code: 'EPERM' }) - const method = p => { + const method = (p: string) => { if (!seen.has(p)) { seen.add(p) throw eperm @@ -84,21 +84,22 @@ t.test('chmod ENOENT is fine, abort', async t => { finished.add(p) } } + const asyncMethod = async (p: string) => method(p) const chmods = new Set() - const chmodSync = (p, mode) => { + const chmodSync = (p: string, mode: number) => { t.equal(chmods.has(p), false) chmods.add(p) t.equal(mode, 0o666) throw Object.assign(new Error('no ent'), { code: 'ENOENT' }) } - const chmod = async (p, mode) => chmodSync(p, mode) - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', { - '../dist/cjs/src/fs.js': { + const chmod = async (p:string, mode:number) => chmodSync(p, mode) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', { + '../dist/esm/fs.js': { promises: { chmod }, chmodSync, }, - }) - const fixed = fixEPERM(method) + }) as typeof import('../dist/esm/fix-eperm.js') + const fixed = fixEPERM(asyncMethod) const fixedSync = fixEPERMSync(method) await fixed('async').then(n => t.equal(n, undefined)) t.equal(fixedSync('sync'), undefined) @@ -111,7 +112,7 @@ t.test('chmod other than ENOENT is failure', async t => { const seen = new Set() const finished = new Set() const eperm = Object.assign(new Error('perm'), { code: 'EPERM' }) - const method = p => { + const method = (p: string) => { if (!seen.has(p)) { seen.add(p) throw eperm @@ -121,23 +122,24 @@ t.test('chmod other than ENOENT is failure', async t => { finished.add(p) } } + const asyncMethod = async (p: string) => method(p) const chmods = new Set() - const chmodSync = (p, mode) => { + const chmodSync = (p:string, mode:number) => { t.equal(chmods.has(p), false) chmods.add(p) t.equal(mode, 0o666) throw Object.assign(new Error('ent bro'), { code: 'OHNO' }) } - const chmod = async (p, mode) => chmodSync(p, mode) - const { fixEPERM, fixEPERMSync } = t.mock('../dist/cjs/src/fix-eperm.js', { - '../dist/cjs/src/fs.js': { + const chmod = async (p:string, mode:number) => chmodSync(p, mode) + const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', { + '../dist/esm/fs.js': { promises: { chmod }, chmodSync, }, - }) - const fixed = fixEPERM(method) + }) as typeof import('../dist/esm/fix-eperm.js') + const fixed = fixEPERM(asyncMethod) const fixedSync = fixEPERMSync(method) - t.rejects(fixed('async'), { code: 'EPERM' }) + await t.rejects(fixed('async'), { code: 'EPERM' }) t.throws(() => fixedSync('sync'), { code: 'EPERM' }) t.equal(chmods.size, 2) t.equal(seen.size, 2) diff --git a/test/fs.ts b/test/fs.ts index 8d9cd0fb..f9f166e6 100644 --- a/test/fs.ts +++ b/test/fs.ts @@ -5,7 +5,7 @@ import t from 'tap' // and that when the cb returns an error, the promised version fails, // and when the cb returns data, the promisified version resolves to it. import realFS from 'fs' -import * as fs from '../dist/cjs/src/fs.js' +import * as fs from '../dist/esm/fs.js' const mockFSMethodPass = (method: string) => @@ -20,12 +20,13 @@ const mockFSMethodFail = process.nextTick(() => cb(new Error('oops'), method, 1, 2, 3)) } -import { useNative } from '../dist/cjs/src/use-native.js' +import { useNative } from '../dist/esm/use-native.js' t.type(fs.promises, Object) -const mockFSPass: { [k: string]: (...a: any[]) => any } = {} -const mockFSFail: { [k: string]: (...a: any[]) => any } = {} +const mockFSPass: Record any> = {} +const mockFSFail: Record any> = {} + for (const method of Object.keys( - fs.promises as { [k: string]: (...a: any[]) => any } + fs.promises as Record any> )) { // of course fs.rm is missing when we shouldn't use native :) // also, readdirSync is clubbed to always return file types @@ -65,7 +66,9 @@ for (const method of Object.keys(fs)) { } t.test('passing resolves promise', async t => { - const fs = t.mock('../src/fs', { fs: mockFSPass }) + const fs = (await t.mockImport('../src/fs.js', { + fs: { ...realFS, ...mockFSPass }, + })) as typeof import('../src/fs.js') for (const [m, fn] of Object.entries( fs.promises as { [k: string]: (...a: any) => Promise } )) { @@ -74,7 +77,9 @@ t.test('passing resolves promise', async t => { }) t.test('failing rejects promise', async t => { - const fs = t.mock('../src/fs', { fs: mockFSFail }) + const fs = (await t.mockImport('../src/fs.js', { + fs: { ...realFS, ...mockFSFail }, + })) as typeof import('../src/fs.js') for (const [m, fn] of Object.entries( fs.promises as { [k: string]: (...a: any[]) => Promise } )) { diff --git a/test/ignore-enoent.js b/test/ignore-enoent.ts similarity index 82% rename from test/ignore-enoent.js rename to test/ignore-enoent.ts index 7f8ad61a..4548a56a 100644 --- a/test/ignore-enoent.js +++ b/test/ignore-enoent.ts @@ -1,8 +1,5 @@ -const t = require('tap') -const { - ignoreENOENT, - ignoreENOENTSync, -} = require('../dist/cjs/src/ignore-enoent.js') +import t from 'tap' +import { ignoreENOENT, ignoreENOENTSync } from '../dist/esm/ignore-enoent.js' const enoent = Object.assign(new Error('no ent'), { code: 'ENOENT' }) const eperm = Object.assign(new Error('eperm'), { code: 'EPERM' }) diff --git a/test/index.js b/test/index.ts similarity index 58% rename from test/index.js rename to test/index.ts index bc67def2..6cd1d83c 100644 --- a/test/index.js +++ b/test/index.ts @@ -1,86 +1,80 @@ -const { statSync } = require('fs') -const t = require('tap') +import { statSync } from 'fs' +import {resolve} from 'path' +import t from 'tap' +import { + RimrafAsyncOptions, + RimrafOptions, + RimrafSyncOptions, + rimraf, + rimrafSync +} from '../src/index.js' -t.same( - require('../package.json').exports, - { - '.': { - import: { - default: './dist/mjs/index.js', - types: './dist/mjs/index.d.ts', - }, - require: { - default: './dist/cjs/src/index.js', - types: './dist/cjs/src/index.d.ts', - }, - }, - }, - 'nothing else exported except main' -) - -t.test('mocky unit tests to select the correct function', t => { +t.test('mocky unit tests to select the correct function', async t => { // don't mock rimrafManual, so we can test the platform switch - const CALLS = [] + const CALLS: any[] = [] let USE_NATIVE = true const mocks = { - '../dist/cjs/src/use-native.js': { - useNative: opt => { + '../dist/esm/use-native.js': { + useNative: (opt: RimrafOptions) => { CALLS.push(['useNative', opt]) return USE_NATIVE }, - useNativeSync: opt => { + useNativeSync: (opt: RimrafOptions) => { CALLS.push(['useNativeSync', opt]) return USE_NATIVE }, }, - '../dist/cjs/src/path-arg.js': path => { + '../dist/esm/path-arg.js': (path: string) => { CALLS.push(['pathArg', path]) return path }, - '../dist/cjs/src/opt-arg.js': { - optArg: opt => { + '../dist/esm/opt-arg.js': { + optArg: (opt: RimrafOptions) => { CALLS.push(['optArg', opt]) return opt }, - optArgSync: opt => { + optArgSync: (opt: RimrafOptions) => { CALLS.push(['optArg', opt]) return opt }, }, - '../dist/cjs/src/rimraf-posix.js': { - rimrafPosix: async (path, opt) => { + '../dist/esm/rimraf-posix.js': { + rimrafPosix: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafPosix', path, opt]) }, - rimrafPosixSync: async (path, opt) => { + rimrafPosixSync: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafPosixSync', path, opt]) }, }, - '../dist/cjs/src/rimraf-windows.js': { - rimrafWindows: async (path, opt) => { + '../dist/esm/rimraf-windows.js': { + rimrafWindows: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafWindows', path, opt]) }, - rimrafWindowsSync: async (path, opt) => { + rimrafWindowsSync: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafWindowsSync', path, opt]) }, }, - '../dist/cjs/src/rimraf-native.js': { - rimrafNative: async (path, opt) => { + '../dist/esm/rimraf-native.js': { + rimrafNative: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafNative', path, opt]) }, - rimrafNativeSync: async (path, opt) => { + rimrafNativeSync: async (path: string, opt: RimrafOptions) => { CALLS.push(['rimrafNativeSync', path, opt]) }, }, } process.env.__TESTING_RIMRAF_PLATFORM__ = 'posix' - const { rimraf } = t.mock('../', mocks) + const { rimraf } = (await t.mockImport( + '../dist/esm/index.js', + mocks + )) as typeof import('../dist/esm/index.js') t.afterEach(() => (CALLS.length = 0)) for (const useNative of [true, false]) { t.test(`main function, useNative=${useNative}`, t => { USE_NATIVE = useNative - rimraf('path', { a: 1 }) - rimraf.sync('path', { a: 2 }) + rimraf('path', { a: 1 } as unknown as RimrafAsyncOptions) + rimraf.sync('path', { a: 2 } as unknown as RimrafSyncOptions) t.equal(rimraf.rimraf, rimraf) t.equal(rimraf.rimrafSync, rimraf.sync) t.matchSnapshot(CALLS) @@ -89,32 +83,32 @@ t.test('mocky unit tests to select the correct function', t => { } t.test('manual', t => { - rimraf.manual('path', { a: 3 }) - rimraf.manual.sync('path', { a: 4 }) + rimraf.manual('path', { a: 3 } as unknown as RimrafAsyncOptions) + rimraf.manual.sync('path', { a: 4 } as unknown as RimrafSyncOptions) t.equal(rimraf.manualSync, rimraf.manual.sync) t.matchSnapshot(CALLS) t.end() }) t.test('native', t => { - rimraf.native('path', { a: 5 }) - rimraf.native.sync('path', { a: 6 }) + rimraf.native('path', { a: 5 } as unknown as RimrafAsyncOptions) + rimraf.native.sync('path', { a: 6 } as unknown as RimrafSyncOptions) t.equal(rimraf.nativeSync, rimraf.native.sync) t.matchSnapshot(CALLS) t.end() }) t.test('posix', t => { - rimraf.posix('path', { a: 7 }) - rimraf.posix.sync('path', { a: 8 }) + rimraf.posix('path', { a: 7 } as unknown as RimrafAsyncOptions) + rimraf.posix.sync('path', { a: 8 } as unknown as RimrafSyncOptions) t.equal(rimraf.posixSync, rimraf.posix.sync) t.matchSnapshot(CALLS) t.end() }) t.test('windows', t => { - rimraf.windows('path', { a: 9 }) - rimraf.windows.sync('path', { a: 10 }) + rimraf.windows('path', { a: 9 } as unknown as RimrafAsyncOptions) + rimraf.windows.sync('path', { a: 10 } as unknown as RimrafSyncOptions) t.equal(rimraf.windowsSync, rimraf.windows.sync) t.matchSnapshot(CALLS) t.end() @@ -145,8 +139,6 @@ t.test('actually delete some stuff', t => { }, }, } - const { rimraf } = require('../') - const { statSync } = require('fs') t.test('sync', t => { const path = t.testdir(fixture) rimraf.sync(path) @@ -162,21 +154,25 @@ t.test('actually delete some stuff', t => { }) t.test('accept array of paths as first arg', async t => { - const { resolve } = require('path') - const ASYNC_CALLS = [] - const SYNC_CALLS = [] - const { rimraf, rimrafSync } = t.mock('../', { - '../dist/cjs/src/use-native.js': { + const ASYNC_CALLS: any[] = [] + const SYNC_CALLS: any[] = [] + const { rimraf, rimrafSync } = (await t.mockImport('../dist/esm/index.js', { + '../dist/esm/use-native.js': { useNative: () => true, useNativeSync: () => true, }, - '../dist/cjs/src/rimraf-native.js': { - rimrafNative: async (path, opt) => ASYNC_CALLS.push([path, opt]), - rimrafNativeSync: (path, opt) => SYNC_CALLS.push([path, opt]), + '../dist/esm/rimraf-native.js': { + rimrafNative: async (path: string, opt: RimrafOptions) => + ASYNC_CALLS.push([path, opt]), + rimrafNativeSync: (path: string, opt: RimrafOptions) => + SYNC_CALLS.push([path, opt]), }, - }) + })) as typeof import('../dist/esm/index.js') t.equal(await rimraf(['a', 'b', 'c']), true) - t.equal(await rimraf(['i', 'j', 'k'], { x: 'ya' }), true) + t.equal( + await rimraf(['i', 'j', 'k'], { x: 'ya' } as unknown as RimrafOptions), + true + ) t.same(ASYNC_CALLS, [ [resolve('a'), {}], [resolve('b'), {}], @@ -187,7 +183,12 @@ t.test('accept array of paths as first arg', async t => { ]) t.equal(rimrafSync(['x', 'y', 'z']), true) - t.equal(rimrafSync(['m', 'n', 'o'], { cat: 'chai' }), true) + t.equal( + rimrafSync(['m', 'n', 'o'], { + cat: 'chai', + } as unknown as RimrafSyncOptions), + true + ) t.same(SYNC_CALLS, [ [resolve('x'), {}], [resolve('y'), {}], @@ -198,8 +199,7 @@ t.test('accept array of paths as first arg', async t => { ]) }) -t.test('deleting globs', t => { - const { rimraf, rimrafSync } = require('../') +t.test('deleting globs', async t => { const fixture = { a: 'a', diff --git a/test/opt-arg.js b/test/opt-arg.ts similarity index 68% rename from test/opt-arg.js rename to test/opt-arg.ts index fc08e367..5c54d295 100644 --- a/test/opt-arg.js +++ b/test/opt-arg.ts @@ -1,14 +1,22 @@ -const t = require('tap') -const { optArg: oa, optArgSync: oas } = require('../dist/cjs/src/opt-arg.js') -const opt = { a: 1 } +import t from 'tap' +import { optArg as oa, optArgSync as oas } from '../dist/esm/opt-arg.js' +import { RimrafAsyncOptions, RimrafSyncOptions } from '../src/index.js' -t.same(oa(opt), opt, 'returns equivalent object if provided') -t.same(oas(opt), oa(opt), 'optArgSync does the same thing') +const asyncOpt = { a: 1 } as unknown as RimrafAsyncOptions +const syncOpt = { s: 1 } as unknown as RimrafSyncOptions + +t.same(oa(asyncOpt), asyncOpt, 'returns equivalent object if provided') +t.same(oas(syncOpt), oa(syncOpt), 'optArgSync does the same thing') t.same(oa(), {}, 'returns new object otherwise') +t.same(oas(), {}, 'returns new object otherwise, sync') +//@ts-expect-error t.throws(() => oa(true)) +//@ts-expect-error t.throws(() => oa(null)) +//@ts-expect-error t.throws(() => oa('hello')) +//@ts-expect-error t.throws(() => oa({ maxRetries: 'banana' })) t.test('every kind of invalid option value', t => { @@ -36,11 +44,17 @@ t.test('every kind of invalid option value', t => { } t.throws(() => oa({ + //@ts-expect-error preserveRoot, + //@ts-expect-error maxRetries, + //@ts-expect-error retryDelay, + //@ts-expect-error backoff, + //@ts-expect-error maxBackoff, + //@ts-expect-error tmp, }) ) @@ -88,16 +102,19 @@ t.test('glob option handling', t => { t.same(oa({ glob: true }), { glob: { absolute: true, withFileTypes: false }, }) - const gws = oa({ signal: { x: 1 }, glob: true }) + const gws = oa({ signal: { x: 1 } as unknown as AbortSignal, glob: true }) t.same(gws, { signal: { x: 1 }, glob: { absolute: true, signal: { x: 1 }, withFileTypes: false }, }) - t.equal(gws.signal, gws.glob.signal) + t.equal(gws.signal, gws.glob?.signal) t.same(oa({ glob: { nodir: true } }), { glob: { absolute: true, nodir: true, withFileTypes: false }, }) - const gwsg = oa({ signal: { x: 1 }, glob: { nodir: true } }) + const gwsg = oa({ + signal: { x: 1 } as unknown as AbortSignal, + glob: { nodir: true }, + }) t.same(gwsg, { signal: { x: 1 }, glob: { @@ -107,15 +124,21 @@ t.test('glob option handling', t => { signal: { x: 1 }, }, }) - t.equal(gwsg.signal, gwsg.glob.signal) - t.same(oa({ signal: { x: 1 }, glob: { nodir: true, signal: { y: 1 } } }), { - signal: { x: 1 }, - glob: { - absolute: true, - nodir: true, - signal: { y: 1 }, - withFileTypes: false, - }, - }) + t.equal(gwsg.signal, gwsg.glob?.signal) + t.same( + oa({ + signal: { x: 1 } as unknown as AbortSignal, + glob: { nodir: true, signal: { y: 1 } as unknown as AbortSignal }, + }), + { + signal: { x: 1 }, + glob: { + absolute: true, + nodir: true, + signal: { y: 1 }, + withFileTypes: false, + }, + } + ) t.end() }) diff --git a/test/path-arg.js b/test/path-arg.ts similarity index 70% rename from test/path-arg.js rename to test/path-arg.ts index a917bc44..4584c89f 100644 --- a/test/path-arg.js +++ b/test/path-arg.ts @@ -1,20 +1,29 @@ -const t = require('tap') +import * as PATH from 'path' +import t from 'tap' +import { fileURLToPath } from 'url' +import { inspect } from 'util' if (!process.env.__TESTING_RIMRAF_PLATFORM__) { const fake = process.platform === 'win32' ? 'posix' : 'win32' - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_PLATFORM__: fake, - }, - }) + t.spawn( + process.execPath, + [...process.execArgv, fileURLToPath(import.meta.url)], + { + name: fake, + env: { + ...process.env, + __TESTING_RIMRAF_PLATFORM__: fake, + }, + } + ) } const platform = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform -const path = require('path')[platform] || require('path') -const pathArg = t.mock('../dist/cjs/src/path-arg.js', { +const path = PATH[platform as 'win32' | 'posix'] || PATH +const { default: pathArg } = (await t.mockImport('../dist/esm/path-arg.js', { path, -}).default +})) as typeof import('../dist/esm/path-arg.js') + const { resolve } = path t.equal(pathArg('a/b/c'), resolve('a/b/c')) @@ -42,11 +51,13 @@ if (platform === 'win32') { } t.throws(() => pathArg('/'), { code: 'ERR_PRESERVE_ROOT' }) -t.throws(() => pathArg('/', { preserveRoot: null }), { + +t.throws(() => pathArg('/', { preserveRoot: undefined }), { code: 'ERR_PRESERVE_ROOT', }) t.equal(pathArg('/', { preserveRoot: false }), resolve('/')) +//@ts-expect-error t.throws(() => pathArg({}), { code: 'ERR_INVALID_ARG_TYPE', path: {}, @@ -55,6 +66,7 @@ t.throws(() => pathArg({}), { 'Received an instance of Object', name: 'TypeError', }) +//@ts-expect-error t.throws(() => pathArg([]), { code: 'ERR_INVALID_ARG_TYPE', path: [], @@ -63,8 +75,8 @@ t.throws(() => pathArg([]), { 'Received an instance of Array', name: 'TypeError', }) -const { inspect } = require('util') -t.throws(() => pathArg(Object.create(null)), { +//@ts-expect-error +t.throws(() => pathArg(Object.create(null) as {}), { code: 'ERR_INVALID_ARG_TYPE', path: Object.create(null), message: @@ -72,6 +84,7 @@ t.throws(() => pathArg(Object.create(null)), { `Received ${inspect(Object.create(null))}`, name: 'TypeError', }) +//@ts-expect-error t.throws(() => pathArg(true), { code: 'ERR_INVALID_ARG_TYPE', path: true, diff --git a/test/platform.js b/test/platform.js deleted file mode 100644 index c1ca077d..00000000 --- a/test/platform.js +++ /dev/null @@ -1,10 +0,0 @@ -const t = require('tap') -t.test('actual platform', t => { - t.equal(require('../dist/cjs/src/platform.js').default, process.platform) - t.end() -}) -t.test('fake platform', t => { - process.env.__TESTING_RIMRAF_PLATFORM__ = 'not actual platform' - t.equal(t.mock('../dist/cjs/src/platform.js').default, 'not actual platform') - t.end() -}) diff --git a/test/platform.ts b/test/platform.ts new file mode 100644 index 00000000..b13aa383 --- /dev/null +++ b/test/platform.ts @@ -0,0 +1,14 @@ +import t from 'tap' +import actual from '../dist/esm/platform.js' +t.test('actual platform', t => { + t.equal(actual, process.platform) + t.end() +}) +t.test('fake platform', async t => { + process.env.__TESTING_RIMRAF_PLATFORM__ = 'not actual platform' + t.equal( + (await t.mockImport('../dist/esm/platform.js')).default, + 'not actual platform' + ) + t.end() +}) diff --git a/test/readdir-or-error.js b/test/readdir-or-error.ts similarity index 70% rename from test/readdir-or-error.js rename to test/readdir-or-error.ts index 3eb1ca29..9428424f 100644 --- a/test/readdir-or-error.js +++ b/test/readdir-or-error.ts @@ -1,8 +1,8 @@ -const t = require('tap') -const { +import t from 'tap' +import { readdirOrError, readdirOrErrorSync, -} = require('../dist/cjs/src/readdir-or-error.js') +} from '../dist/esm/readdir-or-error.js' const path = t.testdir({ file: 'file', @@ -15,7 +15,7 @@ const path = t.testdir({ }) // [path, expected] -const cases = [ +const cases: [string, string[] | { code: string }][] = [ ['file', { code: 'ENOTDIR' }], ['empty', []], ['full', ['x', 'y', 'z']], @@ -27,6 +27,12 @@ for (const [c, expect] of cases) { const resAsync = await readdirOrError(p) const resSync = readdirOrErrorSync(p) if (Array.isArray(expect)) { + if (!Array.isArray(resAsync)) { + throw new Error('expected array async result') + } + if (!Array.isArray(resSync)) { + throw new Error('expected array sync result') + } t.same( resAsync.map(e => e.name).sort(), expect.sort(), diff --git a/test/retry-busy.js b/test/retry-busy.ts similarity index 73% rename from test/retry-busy.js rename to test/retry-busy.ts index 85389b38..1c27aa93 100644 --- a/test/retry-busy.js +++ b/test/retry-busy.ts @@ -1,13 +1,13 @@ -const { - retryBusy, - retryBusySync, +import { + codes, MAXBACKOFF, - RATE, MAXRETRIES, - codes, -} = require('../dist/cjs/src/retry-busy.js') + RATE, + retryBusy, + retryBusySync, +} from '../dist/esm/retry-busy.js' -const t = require('tap') +import t from 'tap' t.matchSnapshot( { @@ -21,17 +21,18 @@ t.matchSnapshot( t.test('basic working operation when no errors happen', async t => { let calls = 0 - const arg = {} + const arg = {} as unknown as string const opt = {} - const method = (a, b) => { + const method = (a: typeof arg, b?: any) => { t.equal(a, arg, 'got first argument') t.equal(b, undefined, 'did not get another argument') calls++ } + const asyncMethod = async (a: typeof arg, b?: any) => method(a, b) const rBS = retryBusySync(method) rBS(arg, opt) t.equal(calls, 1) - const rB = retryBusy(method) + const rB = retryBusy(asyncMethod) await rB(arg, opt).then(() => t.equal(calls, 2)) }) @@ -42,9 +43,9 @@ t.test('retry when known error code thrown', t => { t.test(code, async t => { let thrown = false let calls = 0 - const arg = {} + const arg = {} as unknown as string const opt = {} - const method = (a, b) => { + const method = (a: string, b?: any) => { t.equal(a, arg, 'got first argument') t.equal(b, undefined, 'did not get another argument') if (!thrown) { @@ -58,11 +59,12 @@ t.test('retry when known error code thrown', t => { thrown = false } } + const asyncMethod = async (a: string, b?: any) => method(a, b) const rBS = retryBusySync(method) rBS(arg, opt) t.equal(calls, 2) calls = 0 - const rB = retryBusy(method) + const rB = retryBusy(asyncMethod) await rB(arg, opt).then(() => t.equal(calls, 2)) }) } @@ -78,33 +80,35 @@ t.test('retry and eventually give up', t => { for (const code of codes) { t.test(code, async t => { let calls = 0 - const arg = {} - const method = (a, b) => { + const arg = {} as unknown as string + const method = (a: string, b?: any) => { t.equal(a, arg, 'got first argument') t.equal(b, undefined, 'did not get another argument') calls++ throw Object.assign(new Error(code), { path: a, code }) } + const asyncMethod = async (a: string, b?: any) => method(a, b) const rBS = retryBusySync(method) t.throws(() => rBS(arg, opt), { path: arg, code }) t.equal(calls, 3) calls = 0 - const rB = retryBusy(method) + const rB = retryBusy(asyncMethod) await t.rejects(rB(arg, opt)).then(() => t.equal(calls, 3)) }) } }) t.test('throw unknown error gives up right away', async t => { - const arg = {} + const arg = {} as unknown as string const opt = {} - const method = (a, b) => { + const method = (a: string, b?: any) => { t.equal(a, arg, 'got first argument') t.equal(b, undefined, 'did not get another argument') throw Object.assign(new Error('nope'), { path: a, code: 'nope' }) } + const asyncMethod = async (a: string, b?: any) => method(a, b) const rBS = retryBusySync(method) t.throws(() => rBS(arg, opt), { code: 'nope' }) - const rB = retryBusy(method) + const rB = retryBusy(asyncMethod) await t.rejects(rB(arg, opt), { code: 'nope' }) }) diff --git a/test/rimraf-manual.js b/test/rimraf-manual.js deleted file mode 100644 index f7fcfb7b..00000000 --- a/test/rimraf-manual.js +++ /dev/null @@ -1,35 +0,0 @@ -const t = require('tap') - -const { - rimrafWindows, - rimrafWindowsSync, -} = require('../dist/cjs/src/rimraf-windows.js') - -const { - rimrafPosix, - rimrafPosixSync, -} = require('../dist/cjs/src/rimraf-posix.js') - -const { - rimrafManual, - rimrafManualSync, -} = require('../dist/cjs/src/rimraf-manual.js') - -if (!process.env.__TESTING_RIMRAF_PLATFORM__) { - const otherPlatform = process.platform !== 'win32' ? 'win32' : 'posix' - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_PLATFORM__: otherPlatform, - }, - }) -} - -const platform = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform - -const [expectManual, expectManualSync] = - platform === 'win32' - ? [rimrafWindows, rimrafWindowsSync] - : [rimrafPosix, rimrafPosixSync] -t.equal(rimrafManual, expectManual, 'got expected implementation') -t.equal(rimrafManualSync, expectManualSync, 'got expected implementation') diff --git a/test/rimraf-manual.ts b/test/rimraf-manual.ts new file mode 100644 index 00000000..5d3aee0e --- /dev/null +++ b/test/rimraf-manual.ts @@ -0,0 +1,29 @@ +import t from 'tap' +import { fileURLToPath } from 'url' +import { rimrafManual, rimrafManualSync } from '../dist/esm/rimraf-manual.js' +import { rimrafPosix, rimrafPosixSync } from '../dist/esm/rimraf-posix.js' +import { rimrafWindows, rimrafWindowsSync } from '../dist/esm/rimraf-windows.js' + +if (!process.env.__TESTING_RIMRAF_PLATFORM__) { + const otherPlatform = process.platform !== 'win32' ? 'win32' : 'posix' + t.spawn( + process.execPath, + [...process.execArgv, fileURLToPath(import.meta.url)], + { + name: otherPlatform, + env: { + ...process.env, + __TESTING_RIMRAF_PLATFORM__: otherPlatform, + }, + } + ) +} + +const platform = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform + +const [expectManual, expectManualSync] = + platform === 'win32' + ? [rimrafWindows, rimrafWindowsSync] + : [rimrafPosix, rimrafPosixSync] +t.equal(rimrafManual, expectManual, 'got expected implementation') +t.equal(rimrafManualSync, expectManualSync, 'got expected implementation') diff --git a/test/rimraf-move-remove.js b/test/rimraf-move-remove.ts similarity index 75% rename from test/rimraf-move-remove.js rename to test/rimraf-move-remove.ts index 1035790c..9b556c71 100644 --- a/test/rimraf-move-remove.js +++ b/test/rimraf-move-remove.ts @@ -1,5 +1,5 @@ -const t = require('tap') -t.formatSnapshot = calls => +import t from 'tap' +t.formatSnapshot = (calls: string[][]) => calls.map(args => args.map(arg => String(arg) @@ -10,8 +10,13 @@ t.formatSnapshot = calls => ) ) -const { relative, basename } = require('path') -const { statSync } = require('fs') +import { Stats, statSync } from 'fs' +import * as PATH from 'path' +import { basename, parse, relative } from 'path' +import { + rimrafMoveRemove, + rimrafMoveRemoveSync, +} from '../dist/esm/rimraf-move-remove.js' const fixture = { a: 'a', @@ -36,8 +41,8 @@ const fixture = { } t.only('actually delete some stuff', async t => { - const fs = require('../dist/cjs/src/fs.js') - const fsMock = { ...fs, promises: { ...fs.promises } } + const fs = await import('../dist/esm/fs.js') + const fsMock: Record = { ...fs, promises: { ...fs.promises } } // simulate annoying windows semantics, where an unlink or rmdir // may take an arbitrary amount of time. we only delay unlinks, @@ -47,40 +52,40 @@ t.only('actually delete some stuff', async t => { promises: { unlink }, } = fs - const danglers = [] - const unlinkLater = path => { - const p = new Promise(res => { + const danglers: Promise[] = [] + const unlinkLater = (path: string) => { + const p = new Promise(res => { setTimeout(() => unlink(path).then(res, res)) }) danglers.push(p) } - fsMock.unlinkSync = path => unlinkLater(path) - fsMock.promises.unlink = async path => unlinkLater(path) + fsMock.unlinkSync = (path: string) => unlinkLater(path) + fsMock.promises.unlink = async (path: string) => unlinkLater(path) // but actually do wait to clean them up, though t.teardown(() => Promise.all(danglers)) - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': fsMock, + '../dist/esm/fs.js': fsMock, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', - { '../dist/cjs/src/fs.js': fsMock } - ) + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', + { '../dist/esm/fs.js': fsMock } + )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('posix does not work here', t => { t.test('sync', t => { const path = t.testdir(fixture) - t.throws(() => rimrafPosixSync(path)) + t.throws(() => rimrafPosixSync(path, {})) t.end() }) t.test('async', t => { const path = t.testdir(fixture) - t.rejects(() => rimrafPosix(path)) + t.rejects(() => rimrafPosix(path, {})) t.end() }) t.end() @@ -107,17 +112,17 @@ t.only('actually delete some stuff', async t => { }) t.only('throw unlink errors', async t => { - const fs = require('../dist/cjs/src/fs.js') + const fs = await import('../dist/esm/fs.js') // only throw once here, or else it messes with tap's fixture cleanup // that's probably a bug in t.mock? let threwAsync = false let threwSync = false - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { return fs.unlinkSync(path) } @@ -126,7 +131,7 @@ t.only('throw unlink errors', async t => { }, promises: { ...fs.promises, - unlink: async path => { + unlink: async (path: string) => { if (threwAsync) { return fs.promises.unlink(path) } @@ -136,7 +141,7 @@ t.only('throw unlink errors', async t => { }, }, } - ) + )) as typeof import('../dist/esm/rimraf-move-remove.js') // nest to clean up the mess t.test('sync', t => { const path = t.testdir({ test: fixture }) + '/test' @@ -152,15 +157,15 @@ t.only('throw unlink errors', async t => { }) t.only('ignore ENOENT unlink errors', async t => { - const fs = require('../dist/cjs/src/fs.js') + const fs = await import('../dist/esm/fs.js') const threwAsync = false let threwSync = false - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - unlinkSync: path => { + unlinkSync: (path: string) => { fs.unlinkSync(path) if (threwSync) { return @@ -170,7 +175,7 @@ t.only('ignore ENOENT unlink errors', async t => { }, promises: { ...fs.promises, - unlink: async path => { + unlink: async (path: string) => { fs.unlinkSync(path) if (threwAsync) { return @@ -197,18 +202,18 @@ t.only('ignore ENOENT unlink errors', async t => { }) t.test('throw rmdir errors', async t => { - const fs = require('../dist/cjs/src/fs.js') - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const fs = await import('../dist/esm/fs.js') + const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - rmdirSync: path => { + rmdirSync: (_: string) => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, promises: { ...fs.promises, - rmdir: async path => { + rmdir: async (_: string) => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, }, @@ -231,24 +236,24 @@ t.test('throw rmdir errors', async t => { }) t.test('throw unexpected readdir errors', async t => { - const fs = require('../dist/cjs/src/fs.js') - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const fs = await import('../dist/esm/fs.js') + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - readdirSync: path => { + readdirSync: (_: string) => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, promises: { ...fs.promises, - readdir: async path => { + readdir: async (_: string) => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('sync', t => { // nest to clean up the mess const path = t.testdir({ test: fixture }) + '/test' @@ -265,15 +270,16 @@ t.test('throw unexpected readdir errors', async t => { }) t.test('refuse to delete the root dir', async t => { - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const path = await import('path') + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { path: { - ...require('path'), - dirname: path => path, + ...path, + dirname: (path: string) => path, }, } - ) + )) as typeof import('../dist/esm/rimraf-move-remove.js') const d = t.testdir({}) @@ -287,20 +293,21 @@ t.test('refuse to delete the root dir', async t => { }) t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { - const fs = require('../dist/cjs/src/fs.js') - const CHMODS = [] + const fs = await import('../dist/esm/fs.js') + const CHMODS: any[] = [] let threwAsync = false let threwSync = false - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - chmodSync: (...args) => { + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) + //@ts-ignore return fs.chmodSync(...args) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { return fs.unlinkSync(path) } @@ -309,15 +316,16 @@ t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { }, promises: { ...fs.promises, - unlink: async path => { + unlink: async (path: string) => { if (threwAsync) { return fs.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any[]) => { CHMODS.push(['chmod', ...args]) + //@ts-ignore return fs.promises.chmod(...args) }, }, @@ -345,23 +353,24 @@ t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { }) t.test('handle EPERMs, chmod returns ENOENT', async t => { - const fs = require('../dist/cjs/src/fs.js') - const CHMODS = [] + const fs = await import('../dist/esm/fs.js') + const CHMODS: any[] = [] let threwAsync = false let threwSync = false - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - chmodSync: (...args) => { + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) try { fs.unlinkSync(args[0]) } catch (_) {} + //@ts-ignore return fs.chmodSync(...args) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { return fs.unlinkSync(path) } @@ -370,18 +379,19 @@ t.test('handle EPERMs, chmod returns ENOENT', async t => { }, promises: { ...fs.promises, - unlink: async path => { + unlink: async (path: string) => { if (threwAsync) { return fs.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any) => { CHMODS.push(['chmod', ...args]) try { fs.unlinkSync(args[0]) } catch (_) {} + //@ts-ignore return fs.promises.chmod(...args) }, }, @@ -409,23 +419,23 @@ t.test('handle EPERMs, chmod returns ENOENT', async t => { }) t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { - const fs = require('../dist/cjs/src/fs.js') - const CHMODS = [] + const fs = await import('../dist/esm/fs.js') + const CHMODS: any[] = [] let threwAsync = false let threwSync = false - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - chmodSync: (...args) => { + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) try { fs.unlinkSync(args[0]) } catch (_) {} - throw new Error('cannot chmod', { code: 'FOO' }) + throw Object.assign(new Error('cannot chmod'), { code: 'FOO' }) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { return fs.unlinkSync(path) } @@ -434,24 +444,24 @@ t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { }, promises: { ...fs.promises, - unlink: async path => { + unlink: async (path: string) => { if (threwAsync) { return fs.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any[]) => { CHMODS.push(['chmod', ...args]) try { fs.unlinkSync(args[0]) } catch (_) {} - throw new Error('cannot chmod', { code: 'FOO' }) + throw Object.assign(new Error('cannot chmod'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-move-remove.js') t.afterEach(() => (CHMODS.length = 0)) @@ -473,15 +483,14 @@ t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { }) t.test('rimraffing root, do not actually rmdir root', async t => { - const fs = require('../dist/cjs/src/fs.js') - let ROOT = null - const { parse } = require('path') - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + const fs = await import('../dist/esm/fs.js') + let ROOT: undefined | string = undefined + const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( + '../dist/esm/rimraf-move-remove.js', { path: { - ...require('path'), - parse: path => { + ...PATH, + parse: (path: string) => { const p = parse(path) if (path === ROOT) { p.root = path @@ -490,7 +499,7 @@ t.test('rimraffing root, do not actually rmdir root', async t => { }, }, } - ) + )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('async', async t => { ROOT = t.testdir(fixture) await rimrafMoveRemove(ROOT, { preserveRoot: false }) @@ -509,9 +518,9 @@ t.test('rimraffing root, do not actually rmdir root', async t => { t.test( 'abort if the signal says to', { skip: typeof AbortController === 'undefined' }, - t => { - const { rimrafMoveRemove, rimrafMoveRemoveSync } = t.mock( - '../dist/cjs/src/rimraf-move-remove.js', + async t => { + const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( + '../dist/esm/rimraf-move-remove.js', {} ) t.test('sync', t => { @@ -528,7 +537,7 @@ t.test( const { signal } = ac const opt = { signal, - filter: (p, st) => { + filter: (p: string, st: Stats) => { if (basename(p) === 'g' && st.isFile()) { ac.abort(new Error('done')) } @@ -557,25 +566,19 @@ t.test( } ) -t.test('filter function', t => { - t.formatSnapshot = undefined - const { - rimrafMoveRemove, - rimrafMoveRemoveSync, - } = require('../dist/cjs/src/rimraf-move-remove.js') - +t.test('filter function', async t => { for (const f of ['i', 'j']) { t.test(`filter=${f}`, t => { t.test('sync', t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } rimrafMoveRemoveSync(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -601,14 +604,14 @@ t.test('filter function', t => { t.test('async', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } await rimrafMoveRemove(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -633,15 +636,15 @@ t.test('filter function', t => { t.test('async filter', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = async p => { + const saw: string[] = [] + const filter = async (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) await new Promise(setImmediate) return basename(p) !== f } await rimrafMoveRemove(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -670,10 +673,6 @@ t.test('filter function', t => { }) t.test('do not follow symlinks', t => { - const { - rimrafMoveRemove, - rimrafMoveRemoveSync, - } = require('../dist/cjs/src/rimraf-move-remove.js') const fixture = { x: { y: t.fixture('symlink', '../z'), diff --git a/test/rimraf-native.js b/test/rimraf-native.js deleted file mode 100644 index 2e505ebe..00000000 --- a/test/rimraf-native.js +++ /dev/null @@ -1,26 +0,0 @@ -const t = require('tap') - -const CALLS = [] -const fs = { - rmSync: (path, options) => { - CALLS.push(['rmSync', path, options]) - }, - promises: { - rm: async (path, options) => { - CALLS.push(['rm', path, options]) - }, - }, -} - -const { rimrafNative, rimrafNativeSync } = t.mock( - '../dist/cjs/src/rimraf-native.js', - { - '../dist/cjs/src/fs.js': fs, - } -) - -t.test('calls the right node function', async t => { - await rimrafNative('path', { x: 'y' }) - rimrafNativeSync('path', { a: 'b' }) - t.matchSnapshot(CALLS) -}) diff --git a/test/rimraf-native.ts b/test/rimraf-native.ts new file mode 100644 index 00000000..c5fc76f0 --- /dev/null +++ b/test/rimraf-native.ts @@ -0,0 +1,27 @@ +import t from 'tap' +import { RimrafAsyncOptions, RimrafSyncOptions } from '../src/index.js' + +const CALLS: any[] = [] +const fs = { + rmSync: (path: string, options: any) => { + CALLS.push(['rmSync', path, options]) + }, + promises: { + rm: async (path: string, options: any) => { + CALLS.push(['rm', path, options]) + }, + }, +} + +const { rimrafNative, rimrafNativeSync } = (await t.mockImport( + '../dist/esm/rimraf-native.js', + { + '../dist/esm/fs.js': fs, + } +)) as typeof import('../dist/esm/rimraf-native.js') + +t.test('calls the right node function', async t => { + await rimrafNative('path', { x: 'y' } as unknown as RimrafAsyncOptions) + rimrafNativeSync('path', { a: 'b' } as unknown as RimrafSyncOptions) + t.matchSnapshot(CALLS) +}) diff --git a/test/rimraf-posix.js b/test/rimraf-posix.ts similarity index 83% rename from test/rimraf-posix.js rename to test/rimraf-posix.ts index 416a552a..8cf6026b 100644 --- a/test/rimraf-posix.js +++ b/test/rimraf-posix.ts @@ -7,15 +7,13 @@ // process.exit(0) // } -const t = require('tap') -const { - rimrafPosix, - rimrafPosixSync, -} = require('../dist/cjs/src/rimraf-posix.js') -const { parse, relative, basename } = require('path') -const { statSync } = require('fs') +import { Dirent, Stats, statSync } from 'fs' +import * as PATH from 'path' +import { basename, parse, relative } from 'path' +import t from 'tap' +import { rimrafPosix, rimrafPosixSync } from '../dist/esm/rimraf-posix.js' -const fs = require('../dist/cjs/src/fs.js') +import * as fs from '../dist/esm/fs.js' const fixture = { a: 'a', @@ -61,104 +59,104 @@ t.test('actually delete some stuff', t => { }) t.test('throw unlink errors', async t => { - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - unlinkSync: path => { + unlinkSync: () => { throw Object.assign(new Error('cannot unlink'), { code: 'FOO' }) }, promises: { ...fs.promises, - unlink: async path => { + unlink: async () => { throw Object.assign(new Error('cannot unlink'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) t.rejects(rimrafPosix(path, {}), { code: 'FOO' }) }) t.test('throw rmdir errors', async t => { - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - rmdirSync: path => { + rmdirSync: () => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, promises: { ...fs.promises, - rmdir: async path => { + rmdir: async () => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) t.rejects(rimrafPosix(path, {}), { code: 'FOO' }) }) t.test('throw unexpected readdir errors', async t => { - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, - readdirSync: path => { + readdirSync: () => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, promises: { ...fs.promises, - readdir: async path => { + readdir: async () => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) t.rejects(rimrafPosix(path, {}), { code: 'FOO' }) }) t.test('ignore ENOENTs from unlink/rmdir', async t => { - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': { + '../dist/esm/fs.js': { ...fs, // simulate a case where two rimrafs are happening in parallel, // so the deletion happens AFTER the readdir, but before ours. - rmdirSync: path => { + rmdirSync: (path: string) => { fs.rmdirSync(path) fs.rmdirSync(path) }, - unlinkSync: path => { + unlinkSync: (path: string) => { fs.unlinkSync(path) fs.unlinkSync(path) }, promises: { ...fs.promises, - rmdir: async path => { + rmdir: async (path: string) => { fs.rmdirSync(path) return fs.promises.rmdir(path) }, - unlink: async path => { + unlink: async (path: string) => { fs.unlinkSync(path) return fs.promises.unlink(path) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') const { statSync } = fs t.test('sync', t => { const path = t.testdir(fixture) @@ -176,13 +174,13 @@ t.test('ignore ENOENTs from unlink/rmdir', async t => { }) t.test('rimraffing root, do not actually rmdir root', async t => { - let ROOT = null - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + let ROOT: undefined | string = undefined + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { path: { - ...require('path'), - parse: path => { + ...PATH, + parse: (path: string) => { const p = parse(path) if (path === ROOT) { p.root = path @@ -191,7 +189,7 @@ t.test('rimraffing root, do not actually rmdir root', async t => { }, }, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') t.test('async', async t => { ROOT = t.testdir(fixture) await rimrafPosix(ROOT, { preserveRoot: false }) @@ -211,10 +209,6 @@ t.test( 'abort on signal', { skip: typeof AbortController === 'undefined' }, t => { - const { - rimrafPosix, - rimrafPosixSync, - } = require('../dist/cjs/src/rimraf-posix.js') t.test('sync', t => { const d = t.testdir(fixture) const ac = new AbortController() @@ -229,7 +223,7 @@ t.test( const { signal } = ac const opt = { signal, - filter: (p, st) => { + filter: (p: string, st: Stats | Dirent) => { if (basename(p) === 'g' && st.isFile()) { ac.abort(new Error('done')) } @@ -260,17 +254,13 @@ t.test( t.test('filter function', t => { t.formatSnapshot = undefined - const { - rimrafPosix, - rimrafPosixSync, - } = require('../dist/cjs/src/rimraf-posix.js') for (const f of ['i', 'j']) { t.test(`filter=${f}`, t => { t.test('sync', t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } @@ -302,8 +292,8 @@ t.test('filter function', t => { t.test('async', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } @@ -334,8 +324,8 @@ t.test('filter function', t => { t.test('async filter', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = async p => { + const saw: string[] = [] + const filter = async (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) await new Promise(setImmediate) return basename(p) !== f diff --git a/test/rimraf-windows.js b/test/rimraf-windows.ts similarity index 72% rename from test/rimraf-windows.js rename to test/rimraf-windows.ts index a0b50389..70800faf 100644 --- a/test/rimraf-windows.js +++ b/test/rimraf-windows.ts @@ -1,7 +1,11 @@ -const t = require('tap') -const { parse, basename, relative } = require('path') -const { statSync } = require('fs') -t.formatSnapshot = calls => +import { Dirent, PathLike, Stats, statSync } from 'fs' +import * as PATH from 'path' +import { basename, parse, relative } from 'path' +import t from 'tap' +import * as FS from '../dist/esm/fs.js' +import { rimrafWindows, rimrafWindowsSync } from '../dist/esm/rimraf-windows.js' + +t.formatSnapshot = (calls: string[][]) => Array.isArray(calls) ? calls.map(args => args.map(arg => @@ -37,8 +41,7 @@ const fixture = { } t.test('actually delete some stuff', async t => { - const fs = require('../dist/cjs/src/fs.js') - const fsMock = { ...fs, promises: { ...fs.promises } } + const fsMock: Record = { ...FS, promises: { ...FS.promises } } // simulate annoying windows semantics, where an unlink or rmdir // may take an arbitrary amount of time. we only delay unlinks, @@ -46,44 +49,44 @@ t.test('actually delete some stuff', async t => { const { statSync, promises: { unlink }, - } = fs + } = FS - const danglers = [] - const unlinkLater = path => { - const p = new Promise(res => { + const danglers: Promise[] = [] + const unlinkLater = (path: string) => { + const p = new Promise(res => { setTimeout(() => unlink(path).then(res, res), 100) }) danglers.push(p) } - fsMock.unlinkSync = path => unlinkLater(path) - fsMock.promises.unlink = async path => unlinkLater(path) + fsMock.unlinkSync = (path: string) => unlinkLater(path) + fsMock.promises.unlink = async (path: string) => unlinkLater(path) // but actually do wait to clean them up, though t.teardown(async () => { await Promise.all(danglers) }) - const { rimrafPosix, rimrafPosixSync } = t.mock( - '../dist/cjs/src/rimraf-posix.js', + const { rimrafPosix, rimrafPosixSync } = (await t.mockImport( + '../dist/esm/rimraf-posix.js', { - '../dist/cjs/src/fs.js': fsMock, + '../dist/esm/fs.js': fsMock, } - ) + )) as typeof import('../dist/esm/rimraf-posix.js') - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', - { '../dist/cjs/src/fs.js': fsMock } - ) + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', + { '../dist/esm/fs.js': fsMock } + )) as typeof import('../dist/esm/rimraf-windows.js') t.test('posix does not work here', t => { t.test('sync', t => { const path = t.testdir(fixture) - t.throws(() => rimrafPosixSync(path)) + t.throws(() => rimrafPosixSync(path, {})) t.end() }) t.test('async', async t => { const path = t.testdir(fixture) - await t.rejects(() => rimrafPosix(path)) + await t.rejects(() => rimrafPosix(path, {})) t.end() }) t.end() @@ -110,28 +113,27 @@ t.test('actually delete some stuff', async t => { }) t.test('throw unlink errors', async t => { - const fs = require('../dist/cjs/src/fs.js') // only throw once here, or else it messes with tap's fixture cleanup // that's probably a bug in t.mock? let threwAsync = false let threwSync = false - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, - unlinkSync: path => { + '../dist/esm/fs.js': { + ...FS, + unlinkSync: (path: string) => { if (threwSync) { - return fs.unlinkSync(path) + return FS.unlinkSync(path) } threwSync = true throw Object.assign(new Error('cannot unlink'), { code: 'FOO' }) }, promises: { - ...fs.promises, - unlink: async path => { + ...FS.promises, + unlink: async (path: string) => { if (threwAsync) { - return fs.promises.unlink(path) + return FS.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'FOO' }) @@ -139,7 +141,7 @@ t.test('throw unlink errors', async t => { }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') // nest to clean up the mess t.test('sync', t => { const path = t.testdir({ test: fixture }) + '/test' @@ -155,36 +157,35 @@ t.test('throw unlink errors', async t => { }) t.test('ignore ENOENT unlink errors', async t => { - const fs = require('../dist/cjs/src/fs.js') const threwAsync = false let threwSync = false - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, - unlinkSync: path => { - fs.unlinkSync(path) + '../dist/esm/fs.js': { + ...FS, + unlinkSync: (path: string) => { + FS.unlinkSync(path) if (threwSync) { return } threwSync = true - fs.unlinkSync(path) + FS.unlinkSync(path) }, promises: { - ...fs.promises, - unlink: async path => { - fs.unlinkSync(path) + ...FS.promises, + unlink: async (path: string) => { + FS.unlinkSync(path) if (threwAsync) { return } threwSync = true - fs.unlinkSync(path) + FS.unlinkSync(path) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') // nest to clean up the mess t.test('sync', t => { const path = t.testdir({ test: fixture }) + '/test' @@ -200,24 +201,23 @@ t.test('ignore ENOENT unlink errors', async t => { }) t.test('throw rmdir errors', async t => { - const fs = require('../dist/cjs/src/fs.js') - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, + '../dist/esm/fs.js': { + ...FS, rmdirSync: () => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, promises: { - ...fs.promises, + ...FS.promises, rmdir: async () => { throw Object.assign(new Error('cannot rmdir'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.test('sync', t => { // nest it so that we clean up the mess const path = t.testdir({ test: fixture }) + '/test' @@ -234,24 +234,23 @@ t.test('throw rmdir errors', async t => { }) t.test('throw unexpected readdir errors', async t => { - const fs = require('../dist/cjs/src/fs.js') - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, + '../dist/esm/fs.js': { + ...FS, readdirSync: () => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, promises: { - ...fs.promises, + ...FS.promises, readdir: async () => { throw Object.assign(new Error('cannot readdir'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.test('sync', t => { // nest to clean up the mess const path = t.testdir({ test: fixture }) + '/test' @@ -268,43 +267,44 @@ t.test('throw unexpected readdir errors', async t => { }) t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { - const fs = require('../dist/cjs/src/fs.js') const CHMODS = [] let threwAsync = false let threwSync = false - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, - chmodSync: (...args) => { + '../dist/esm/fs.js': { + ...FS, + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) - return fs.chmodSync(...args) + //@ts-ignore + return FS.chmodSync(...args) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { - return fs.unlinkSync(path) + return FS.unlinkSync(path) } threwSync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, promises: { - ...fs.promises, - unlink: async path => { + ...FS.promises, + unlink: async (path: String) => { if (threwAsync) { - return fs.promises.unlink(path) + return FS.promises.unlink(path as PathLike) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any[]) => { CHMODS.push(['chmod', ...args]) - return fs.promises.chmod(...args) + //@ts-ignore + return FS.promises.chmod(...args) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -326,49 +326,50 @@ t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { }) t.test('handle EPERMs, chmod returns ENOENT', async t => { - const fs = require('../dist/cjs/src/fs.js') const CHMODS = [] let threwAsync = false let threwSync = false - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, - chmodSync: (...args) => { + '../dist/esm/fs.js': { + ...FS, + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) try { - fs.unlinkSync(args[0]) + FS.unlinkSync(args[0]) } catch (_) {} - return fs.chmodSync(...args) + //@ts-ignore + return FS.chmodSync(...args) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { - return fs.unlinkSync(path) + return FS.unlinkSync(path) } threwSync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, promises: { - ...fs.promises, - unlink: async path => { + ...FS.promises, + unlink: async (path: string) => { if (threwAsync) { - return fs.promises.unlink(path) + return FS.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any[]) => { CHMODS.push(['chmod', ...args]) try { - fs.unlinkSync(args[0]) + FS.unlinkSync(args[0]) } catch (_) {} - return fs.promises.chmod(...args) + //@ts-ignore + return FS.promises.chmod(...args) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -390,49 +391,48 @@ t.test('handle EPERMs, chmod returns ENOENT', async t => { }) t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { - const fs = require('../dist/cjs/src/fs.js') const CHMODS = [] let threwAsync = false let threwSync = false - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { - '../dist/cjs/src/fs.js': { - ...fs, - chmodSync: (...args) => { + '../dist/esm/fs.js': { + ...FS, + chmodSync: (...args: any[]) => { CHMODS.push(['chmodSync', ...args]) try { - fs.unlinkSync(args[0]) + FS.unlinkSync(args[0]) } catch (_) {} - throw new Error('cannot chmod', { code: 'FOO' }) + throw Object.assign(new Error('cannot chmod'), { code: 'FOO' }) }, - unlinkSync: path => { + unlinkSync: (path: string) => { if (threwSync) { - return fs.unlinkSync(path) + return FS.unlinkSync(path) } threwSync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, promises: { - ...fs.promises, - unlink: async path => { + ...FS.promises, + unlink: async (path: string) => { if (threwAsync) { - return fs.promises.unlink(path) + return FS.promises.unlink(path) } threwAsync = true throw Object.assign(new Error('cannot unlink'), { code: 'EPERM' }) }, - chmod: async (...args) => { + chmod: async (...args: any[]) => { CHMODS.push(['chmod', ...args]) try { - fs.unlinkSync(args[0]) + FS.unlinkSync(args[0]) } catch (_) {} - throw new Error('cannot chmod', { code: 'FOO' }) + throw Object.assign(new Error('cannot chmod'), { code: 'FOO' }) }, }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -454,14 +454,13 @@ t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { }) t.test('rimraffing root, do not actually rmdir root', async t => { - const fs = require('../dist/cjs/src/fs.js') - let ROOT = null - const { rimrafWindows, rimrafWindowsSync } = t.mock( - '../dist/cjs/src/rimraf-windows.js', + let ROOT: string | undefined = undefined + const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( + '../dist/esm/rimraf-windows.js', { path: { - ...require('path'), - parse: path => { + ...PATH, + parse: (path: string) => { const p = parse(path) if (path === ROOT) { p.root = path @@ -470,18 +469,18 @@ t.test('rimraffing root, do not actually rmdir root', async t => { }, }, } - ) + )) as typeof import('../dist/esm/rimraf-windows.js') t.test('async', async t => { ROOT = t.testdir(fixture) await rimrafWindows(ROOT, { preserveRoot: false }) - t.equal(fs.statSync(ROOT).isDirectory(), true, 'root still present') - t.same(fs.readdirSync(ROOT), [], 'entries all gone') + t.equal(FS.statSync(ROOT).isDirectory(), true, 'root still present') + t.same(FS.readdirSync(ROOT), [], 'entries all gone') }) t.test('sync', async t => { ROOT = t.testdir(fixture) rimrafWindowsSync(ROOT, { preserveRoot: false }) - t.equal(fs.statSync(ROOT).isDirectory(), true, 'root still present') - t.same(fs.readdirSync(ROOT), [], 'entries all gone') + t.equal(FS.statSync(ROOT).isDirectory(), true, 'root still present') + t.same(FS.readdirSync(ROOT), [], 'entries all gone') }) t.end() }) @@ -490,10 +489,6 @@ t.test( 'abort on signal', { skip: typeof AbortController === 'undefined' }, t => { - const { - rimrafWindows, - rimrafWindowsSync, - } = require('../dist/cjs/src/rimraf-windows.js') t.test('sync', t => { const d = t.testdir(fixture) const ac = new AbortController() @@ -508,7 +503,7 @@ t.test( const { signal } = ac const opt = { signal, - filter: (p, st) => { + filter: (p: string, st: Stats | Dirent) => { if (basename(p) === 'g' && st.isFile()) { ac.abort(new Error('done')) } @@ -538,24 +533,18 @@ t.test( ) t.test('filter function', t => { - t.formatSnapshot = undefined - const { - rimrafWindows, - rimrafWindowsSync, - } = require('../dist/cjs/src/rimraf-windows.js') - for (const f of ['i', 'j']) { t.test(`filter=${f}`, t => { t.test('sync', t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } rimrafWindowsSync(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -581,14 +570,14 @@ t.test('filter function', t => { t.test('async', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = p => { + const saw: string[] = [] + const filter = (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) return basename(p) !== f } await rimrafWindows(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -613,15 +602,15 @@ t.test('filter function', t => { t.test('async filter', async t => { const dir = t.testdir(fixture) - const saw = [] - const filter = async p => { + const saw: string[] = [] + const filter = async (p: string) => { saw.push(relative(process.cwd(), p).replace(/\\/g, '/')) await new Promise(setImmediate) return basename(p) !== f } await rimrafWindows(dir, { filter }) t.matchSnapshot( - saw.sort((a, b) => a.localeCompare(b, 'en')), + [saw.sort((a, b) => a.localeCompare(b, 'en'))], 'paths seen' ) statSync(dir) @@ -650,10 +639,6 @@ t.test('filter function', t => { }) t.test('do not follow symlinks', t => { - const { - rimrafWindows, - rimrafWindowsSync, - } = require('../dist/cjs/src/rimraf-windows.js') const fixture = { x: { y: t.fixture('symlink', '../z'), diff --git a/test/use-native.js b/test/use-native.js deleted file mode 100644 index aa3c362e..00000000 --- a/test/use-native.js +++ /dev/null @@ -1,60 +0,0 @@ -// node before 14.14 didn't native recursive fs.rm -if (/^v([0-8]\.|1[0-3]\.|14\.[0-9]\.|14\.1[1-3]\.)/.test(process.version)) { - console.log('TAP version 13') - console.log('1..0 # no native recursive fs.rm in this node version') - process.exit(0) -} - -const t = require('tap') -const { useNative, useNativeSync } = require('../dist/cjs/src/use-native.js') - -if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_PLATFORM__: 'darwin', - __TESTING_RIMRAF_NODE_VERSION__: 'v18.0.0', - __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '1', - }, - }) - - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_PLATFORM__: 'win32', - __TESTING_RIMRAF_NODE_VERSION__: 'v18.0.0', - __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', - }, - }) - - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_NODE_VERSION__: 'v8.9.10', - __TESTING_RIMRAF_PLATFORM__: 'darwin', - __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', - }, - }) - - t.spawn(process.execPath, [__filename], { - env: { - ...process.env, - __TESTING_RIMRAF_NODE_VERSION__: 'v14.13.12', - __TESTING_RIMRAF_PLATFORM__: 'darwin', - __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', - }, - }) -} else { - const expect = process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__ === '1' - if (expect) { - // always need manual if a signal is passed in - const signal = - typeof AbortController !== 'undefined' ? new AbortController().signal : {} - //@ts-ignore - t.equal(useNative({ signal }), false) - //@ts-ignore - t.equal(useNativeSync({ signal }), false) - } - t.equal(useNative(), expect) - t.equal(useNativeSync(), expect) -} diff --git a/test/use-native.ts b/test/use-native.ts new file mode 100644 index 00000000..80f6c7e1 --- /dev/null +++ b/test/use-native.ts @@ -0,0 +1,87 @@ +import t from 'tap' + +// node before 14.14 didn't native recursive fs.rm +if (/^v([0-8]\.|1[0-3]\.|14\.[0-9]\.|14\.1[1-3]\.)/.test(process.version)) { + t.plan(0, 'no native recursive fs.rm in this node version') + process.exit(0) +} + +import { fileURLToPath } from 'url' +import { useNative, useNativeSync } from '../dist/esm/use-native.js' + +const args = [...process.execArgv, fileURLToPath(import.meta.url)] + +if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { + t.spawn( + process.execPath, + args, + { + env: { + ...process.env, + __TESTING_RIMRAF_PLATFORM__: 'darwin', + __TESTING_RIMRAF_NODE_VERSION__: 'v18.0.0', + __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '1', + }, + }, + 'darwin v18' + ) + + t.spawn( + process.execPath, + args, + { + env: { + ...process.env, + __TESTING_RIMRAF_PLATFORM__: 'win32', + __TESTING_RIMRAF_NODE_VERSION__: 'v18.0.0', + __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', + }, + }, + 'win32 v18' + ) + + t.spawn( + process.execPath, + args, + { + env: { + ...process.env, + __TESTING_RIMRAF_NODE_VERSION__: 'v8.9.10', + __TESTING_RIMRAF_PLATFORM__: 'darwin', + __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', + }, + }, + 'darwin v8' + ) + + t.spawn( + process.execPath, + args, + { + env: { + ...process.env, + __TESTING_RIMRAF_NODE_VERSION__: 'v14.13.12', + __TESTING_RIMRAF_PLATFORM__: 'darwin', + __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', + }, + }, + 'darwin v14.13.12' + ) +} else { + const expect = process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__ === '1' + if (expect) { + // always need manual if a signal is passed in + const signal = + typeof AbortController !== 'undefined' ? new AbortController().signal : {} + //@ts-ignore + t.equal(useNative({ signal }), false) + //@ts-ignore + t.equal(useNativeSync({ signal }), false) + + // always need manual if a filter is provided + t.equal(useNative({ filter: () => true }), false) + t.equal(useNativeSync({ filter: () => true }), false) + } + t.equal(useNative(), expect) + t.equal(useNativeSync(), expect) +} diff --git a/tsconfig-base.json b/tsconfig-base.json deleted file mode 100644 index 897297bb..00000000 --- a/tsconfig-base.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "exclude": ["./test", "./tap-snapshots"], - "include": ["src/**/*.ts"], - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "declaration": true, - "declarationMap": true, - "inlineSources": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "isolatedModules": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "sourceMap": true, - "strict": true, - "target": "es2022" - } -} diff --git a/tsconfig-esm.json b/tsconfig-esm.json deleted file mode 100644 index bebee46b..00000000 --- a/tsconfig-esm.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig-base.json", - "exclude": ["./test", "./tap-snapshots", "src/bin.ts"], - "compilerOptions": { - "module": "esnext", - "outDir": "dist/mjs" - } -} diff --git a/tsconfig.json b/tsconfig.json index 13690021..7f39495d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,18 @@ { - "extends": "./tsconfig-base.json", "compilerOptions": { - "module": "commonjs", - "outDir": "dist/cjs", - "moduleResolution": "Node" + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": true, + "jsx": "react", + "module": "nodenext", + "moduleResolution": "nodenext", + "noUncheckedIndexedAccess": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "target": "es2022" } }