diff --git a/.prettierignore b/.prettierignore index 9fdb805a..d289a030 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,5 @@ +/.tap +/.tshy /node_modules /example /.github diff --git a/.tshy/build.json b/.tshy/build.json index c51b7f53..aea1a9e9 100644 --- a/.tshy/build.json +++ b/.tshy/build.json @@ -2,7 +2,6 @@ "extends": "../tsconfig.json", "compilerOptions": { "rootDir": "../src", - "target": "es2022", "module": "nodenext", "moduleResolution": "nodenext" } diff --git a/.tshy/commonjs.json b/.tshy/commonjs.json index e12ed38e..5ace94d0 100644 --- a/.tshy/commonjs.json +++ b/.tshy/commonjs.json @@ -9,6 +9,6 @@ "../src/**/*.mts" ], "compilerOptions": { - "outDir": "../.tshy-build-tmp/commonjs" + "outDir": "../.tshy-build/commonjs" } } diff --git a/.tshy/esm.json b/.tshy/esm.json index e8e23e1f..ff5264e6 100644 --- a/.tshy/esm.json +++ b/.tshy/esm.json @@ -7,6 +7,6 @@ ], "exclude": [], "compilerOptions": { - "outDir": "../.tshy-build-tmp/esm" + "outDir": "../.tshy-build/esm" } } diff --git a/README.md b/README.md index c65222c8..7ab111c0 100644 --- a/README.md +++ b/README.md @@ -88,9 +88,9 @@ Options: are truthy, returning a Promise from a sync filter is the same as just not filtering anything.) - The first argument to the filter is the path string. The + The first argument to the filter is the path string. The second argument is either a `Dirent` or `Stats` object for that - path. (The first path explored will be a `Stats`, the rest + path. (The first path explored will be a `Stats`, the rest will be `Dirent`.) If a filter method is provided, it will _only_ remove entries diff --git a/package-lock.json b/package-lock.json index ab6360d2..06eea7db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,13 +15,13 @@ "rimraf": "dist/esm/bin.mjs" }, "devDependencies": { - "@types/node": "^20.6.5", + "@types/node": "^20.12.11", "mkdirp": "^3.0.1", - "prettier": "^2.8.2", + "prettier": "^3.2.5", "tap": "^18.5.4", - "tshy": "^1.7.0", - "typedoc": "^0.25.1", - "typescript": "^5.2" + "tshy": "^1.14.0", + "typedoc": "^0.25.13", + "typescript": "^5.4.5" }, "engines": { "node": ">=14" @@ -96,9 +96,9 @@ } }, "node_modules/@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==", + "version": "10.9.5", + "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.5.tgz", + "integrity": "sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -154,9 +154,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -179,25 +179,25 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", - "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "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==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -207,15 +207,15 @@ } }, "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==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", + "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", "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", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -250,16 +250,16 @@ } }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -274,10 +274,28 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@npmcli/package-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.1.0.tgz", + "integrity": "sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "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==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -310,16 +328,25 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/@npmcli/redact": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", + "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/@npmcli/run-script": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", - "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", + "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", "which": "^4.0.0" }, "engines": { @@ -360,72 +387,98 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", - "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", + "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "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==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", + "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", - "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.1.tgz", + "integrity": "sha512-YZ71wKIOweC8ViUeZXboz0iPLqMkskxuoeN/D1CEpAyZvEepbX9oRMIoO6a/DxUqO1VEaqmcmmqzSiqtOsvSmw==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "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==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.3.tgz", + "integrity": "sha512-agQhHNkIddXFslkudjV88vTXiAMEyUtso3at6ZHUNJ1agZb7Ze6VW/PddHipdWBu1t+8OWLW5X5yZOPiOnaWJQ==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", + "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tapjs/after": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.14.tgz", - "integrity": "sha512-MlhPu0No9T29PIjMT/+lr1HA1mx1y6t8pSs1NHlZBnbQBUPAfBG/X91qJwLXSyFbF2dCOy2dy3YuINGIAy1nSw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.21.tgz", + "integrity": "sha512-bXvh2NBFbXeI5/l8+9yY3hK3gU7jIx32FbRg2vGk/gQysZH8Oe39BL+rSNluc84EMWwvkP1+yqvAnLcajUMTEw==", "dev": true, "dependencies": { - "is-actual-promise": "^1.0.0" + "is-actual-promise": "^1.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/after-each": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.14.tgz", - "integrity": "sha512-yj0oaW6saKiWtCmOzFIKuKsQNJWa2LCG3yloV+gyxQklpP0XtuMfIyGaXNuoDPMevF3XUuHkCxmgeJKRbiicZg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.21.tgz", + "integrity": "sha512-cEMnSdrcjlks7YQhDpA/UECCh5TsuLHXsy51IzC/ABaY20ggH03LsG7DokkyuKYQLsJ8yBtR4G8mGza/V0esKQ==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -434,18 +487,18 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/asserts": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.14.tgz", - "integrity": "sha512-mGYZdlcBUtJCsYNHX2BAluBq837wi7KId504hqMoidvipt6Cvd68h8xUNaQPjl3KCfwwMB+Hq55wtjBNF+r2iQ==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.21.tgz", + "integrity": "sha512-z3XEbE9sER0IQCUaBNMRE/rXA7zmUNqTl1OqfiV+wgJl8n1pI3WaiX1Po8n0qDChHVxa16A8OPG4qdFKFYo3xQ==", "dev": true, "dependencies": { - "@tapjs/stack": "1.2.7", - "is-actual-promise": "^1.0.0", - "tcompare": "6.4.4", + "@tapjs/stack": "1.2.8", + "is-actual-promise": "^1.0.1", + "tcompare": "6.4.6", "trivial-deferred": "^2.0.0" }, "engines": { @@ -455,28 +508,28 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/before": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.14.tgz", - "integrity": "sha512-GVd9peaFhQCC+bI4tbIIaA2pjsTkiGxvfzQi6A4aOsGUUIQm5SjzyOi2E4N0FDBRT8+zjfd9pjh1ODNGC3Xcgw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.21.tgz", + "integrity": "sha512-f92M7QpSoMKc8euDIjsxxHQ4DYrb9PDCKgs0/Xl9XafvBDtwr1swpMkMZofJBBqiOIF/FqfjPnE74z+osfRRmQ==", "dev": true, "dependencies": { - "is-actual-promise": "^1.0.0" + "is-actual-promise": "^1.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/before-each": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.14.tgz", - "integrity": "sha512-RWS1Ywims3Pk0/Z/jw1qqTcBE7qz+SqRhMGA9ktDXW8GayRGEJchjeMlgrAZ8YJ+EgdcKGQXsPQRR/Md4HlQZA==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.21.tgz", + "integrity": "sha512-sHcUlrCouDD9BJKIJ0o/IctqoAfJ9m/0TaWoulnkGE+FxRuUUoeyY61Asba3MOYVSCM8djVcjH9GkqWN0kdKYA==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -485,21 +538,21 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/config": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.10.tgz", - "integrity": "sha512-OZlAEzvqY/xgLtl4dg6vFsPIDULK+EiC1aQz8tGrJn2c5U+93RbLJUXn64H5bm6gPoVrimcBGtp9ItPc+QWd8Q==", + "version": "2.4.18", + "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.18.tgz", + "integrity": "sha512-dcP6Qcr6tS90z+Mq9DZ8VTOaDYO05Xyy347Cxjqmkq55HPVPa1FcyYhCeEpkkf3wp+YOqRL/WfhCRoylzfTmCw==", "dev": true, "dependencies": { - "@tapjs/core": "1.4.3", - "@tapjs/test": "1.3.14", + "@tapjs/core": "1.5.3", + "@tapjs/test": "1.4.3", "chalk": "^5.2.0", "jackspeak": "^2.3.6", "polite-json": "^4.0.1", - "tap-yaml": "2.2.1", + "tap-yaml": "2.2.2", "walk-up-path": "^3.0.1" }, "engines": { @@ -509,27 +562,27 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3", - "@tapjs/test": "1.3.14" + "@tapjs/core": "1.5.3", + "@tapjs/test": "1.4.3" } }, "node_modules/@tapjs/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.4.3.tgz", - "integrity": "sha512-5Fqz+D+dXS03p6TaGOJe//ZYCk/HwLLSnTUdALtcTsT3zMr1lc5TWxc8vEbArFVqv+aYY+wwP3RQPOBWLsUGoQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.5.3.tgz", + "integrity": "sha512-Od4utwC8/BXwJl6BAtXE/lxYOK+h8oI6ZjmW/gF2LOqE2B7spFA718ZU9dQnitKt4xqPeRU948LN9P9hUfZtmg==", "dev": true, "dependencies": { - "@tapjs/processinfo": "^3.1.5", - "@tapjs/stack": "1.2.7", - "@tapjs/test": "1.3.14", + "@tapjs/processinfo": "^3.1.7", + "@tapjs/stack": "1.2.8", + "@tapjs/test": "1.4.3", "async-hook-domain": "^4.0.1", - "diff": "^5.1.0", - "is-actual-promise": "^1.0.0", - "minipass": "^7.0.3", + "diff": "^5.2.0", + "is-actual-promise": "^1.0.1", + "minipass": "^7.0.4", "signal-exit": "4.1", - "tap-parser": "15.3.1", - "tap-yaml": "2.2.1", - "tcompare": "6.4.4", + "tap-parser": "15.3.2", + "tap-yaml": "2.2.2", + "tcompare": "6.4.6", "trivial-deferred": "^2.0.0" }, "engines": { @@ -537,12 +590,12 @@ } }, "node_modules/@tapjs/error-serdes": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.1.tgz", - "integrity": "sha512-/7eLEcrGo+Qz3eWrjkhDC+VSEOjabkkzr9eRADeU+OLFeZaik8L/GRk0SGhnp4YsQkv0jcNV00A42bEx2HIZcw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.2.tgz", + "integrity": "sha512-RW2aU50JR7SSAlvoTyuwouXETLM9lP+7oZ5Z+dyKhNp8mkbbz4mXKcgd9SDHY5qTh6zvVN7OFK7ev7dYWXbrWw==", "dev": true, "dependencies": { - "minipass": "^7.0.3" + "minipass": "^7.0.4" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -552,9 +605,9 @@ } }, "node_modules/@tapjs/filter": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.14.tgz", - "integrity": "sha512-rGwgNltQ6ZKGzoy/y8NxU/6B8xvtSZrzYZAhx6LJ1Ps1jI91jmm1JO6wjh5iN46QIkJLFvufUrsiH8crOoe3Ag==", + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.21.tgz", + "integrity": "sha512-cdcbbl/ZfdMKgUGHg2G8Y4XHVi3k0E5AatsnFKODXOsco5mUnHnG4YPbLZ8yOtqMdMBDzbU00nNOtjVn56GHRw==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -563,13 +616,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/fixture": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.14.tgz", - "integrity": "sha512-3TkiZhNaIdqwMTol5QqJzka+N7b7AlVHu6RVHZhfepB845IYPzq3gkaFTOR3hDOLgqTxVX2ce70ZlnTXzck8iw==", + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.21.tgz", + "integrity": "sha512-O1nBaYnsRActwV2AiglWIQgURhTNN4fEnSMw5DVJRb7Oxmr9R0y6oMcE5bDZMFj9yqqJATCqKjBkcJqGxitWew==", "dev": true, "dependencies": { "mkdirp": "^3.0.0", @@ -582,33 +635,33 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/intercept": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.14.tgz", - "integrity": "sha512-CPxxeQZa4pXdD+L6ZylX6fKi5d8V88NQykI0PSu2NqUA5CqsqQiUIZCoi7UN3HkKyqqhCpUtnLr5X66mPQfiCA==", + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.21.tgz", + "integrity": "sha512-KNHpbvwUb3gWxMiA53uq1CrPWK/TFeqXZ+ntrC1n8GQYINR13PwUKH4GDOn3sEjdwYrK+F2oJHtxLi6C7pbGzg==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.14", - "@tapjs/stack": "1.2.7" + "@tapjs/after": "1.1.21", + "@tapjs/stack": "1.2.8" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/mock": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.2.12.tgz", - "integrity": "sha512-cDegdfw9AyBk2FJ97PR725P3INHjh4ievGJArDWmObBu4S5geS12EscomOr8eu3TE/M0JVOV4XPJseVrEQV99w==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.3.3.tgz", + "integrity": "sha512-Yr/CvlRQKmyHEzJPa8SWFBhz0JR7swOAI4f6DbEgV7ZtQtloILkzOXAIvfju1/lgucB2diDVgF293eWsLVzfqg==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.14", - "@tapjs/stack": "1.2.7", + "@tapjs/after": "1.1.21", + "@tapjs/stack": "1.2.8", "resolve-import": "^1.4.5", "walk-up-path": "^3.0.1" }, @@ -619,18 +672,18 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/node-serialize": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.2.3.tgz", - "integrity": "sha512-4lHfppbVV8iU1KHqfEjAPEbUIJRPT5mMMRtMGydUBcFES+FZHoPTfL+QMlP6oV71DdkY7FaQmWMtG4hbhflkIQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.3.3.tgz", + "integrity": "sha512-1A7hGxufnZgSlcDDPOH4onJmPtVhjcL2h+X0tgARqoXThUlUBTPs1BXQIkNPZOMdMoI6pRn/n9pYUHBTHv0Rag==", "dev": true, "dependencies": { - "@tapjs/error-serdes": "1.2.1", - "@tapjs/stack": "1.2.7", - "tap-parser": "15.3.1" + "@tapjs/error-serdes": "1.2.2", + "@tapjs/stack": "1.2.8", + "tap-parser": "15.3.2" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -639,13 +692,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/processinfo": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.5.tgz", - "integrity": "sha512-KCx0Dbatmuja9soLFFK1asDwodz+16gwHL9QWiziz83b7LK4x5h9kiUbbhTi3I3wtKREeaN8caNA0Z2m6Yxsag==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.7.tgz", + "integrity": "sha512-SI5RJQ5HnUKEWnHSAF6hOm6XPdnjZ+CJzIaVHdFebed8iDAPTqb+IwMVu9yq9+VQ7FRsMMlgLL2SW4rss2iJbQ==", "dev": true, "dependencies": { "pirates": "^4.0.5", @@ -658,24 +711,24 @@ } }, "node_modules/@tapjs/reporter": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.11.tgz", - "integrity": "sha512-awEpwt0RNsW9k9BmsRp0mdu6HFiOOiUm1vtTWLkM2FNDooyzxHIKG9MY9WXG8IUMvPog+gFysgk1FWx6BqnO9w==", + "version": "1.3.19", + "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.19.tgz", + "integrity": "sha512-YqGnAgnyNjundTwn3/iKu2RDPw/wso0VLlPuUXECTzL6pTZ/Pnlh5aqZ4AQX6HD/ZFYKT/8Z7IEAT9PPxExxqg==", "dev": true, "dependencies": { - "@tapjs/config": "2.4.10", - "@tapjs/stack": "1.2.7", + "@tapjs/config": "2.4.18", + "@tapjs/stack": "1.2.8", "chalk": "^5.2.0", "ink": "^4.4.1", - "minipass": "^7.0.3", + "minipass": "^7.0.4", "ms": "^2.1.3", "patch-console": "^2.0.0", "prismjs-terminal": "^1.2.3", "react": "^18.2.0", "string-length": "^6.0.0", - "tap-parser": "15.3.1", - "tap-yaml": "2.2.1", - "tcompare": "6.4.4" + "tap-parser": "15.3.2", + "tap-yaml": "2.2.2", + "tcompare": "6.4.6" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -684,39 +737,39 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/run": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.4.11.tgz", - "integrity": "sha512-nMPVZKJ/m++OlPQUgKPpdwJUuZyqiRh/YgyfaptJOj2lwtABZG3zhKYnvPzX+Hp+WAFcBLpbmYDKGfYa5h+g8Q==", - "dev": true, - "dependencies": { - "@tapjs/after": "1.1.14", - "@tapjs/before": "1.1.14", - "@tapjs/config": "2.4.10", - "@tapjs/processinfo": "^3.1.5", - "@tapjs/reporter": "1.3.11", - "@tapjs/spawn": "1.1.14", - "@tapjs/stdin": "1.1.14", - "@tapjs/test": "1.3.14", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.5.3.tgz", + "integrity": "sha512-NYEfj3AjkrDM9lrGv9sacLGu8t4RbMkoSdLVX0Xp9EMgfkZEd3m2Rfu6g2NWqXKZ6az3gMZvFtegTMld/1fWOw==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.21", + "@tapjs/before": "1.1.21", + "@tapjs/config": "2.4.18", + "@tapjs/processinfo": "^3.1.7", + "@tapjs/reporter": "1.3.19", + "@tapjs/spawn": "1.1.21", + "@tapjs/stdin": "1.1.21", + "@tapjs/test": "1.4.3", "c8": "^8.0.1", "chalk": "^5.3.0", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "foreground-child": "^3.1.1", "glob": "^10.3.10", - "minipass": "^7.0.3", + "minipass": "^7.0.4", "mkdirp": "^3.0.1", "opener": "^1.5.2", - "pacote": "^17.0.3", + "pacote": "^17.0.6", "resolve-import": "^1.4.5", "rimraf": "^5.0.5", - "semver": "^7.5.4", + "semver": "^7.6.0", "signal-exit": "^4.1.0", - "tap-parser": "15.3.1", - "tap-yaml": "2.2.1", - "tcompare": "6.4.4", + "tap-parser": "15.3.2", + "tap-yaml": "2.2.2", + "tcompare": "6.4.6", "trivial-deferred": "^2.0.0", "which": "^4.0.0" }, @@ -730,7 +783,7 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/run/node_modules/isexe": { @@ -758,13 +811,13 @@ } }, "node_modules/@tapjs/snapshot": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.14.tgz", - "integrity": "sha512-2ZkEbWIokI2YgkKRJtgqxuuFrB2TthS1FnoAnTY2yGqhRDwCknWl/TN8MiPxS+jVBXK0vbVGKQpnrkGgwqB0bg==", + "version": "1.2.21", + "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.21.tgz", + "integrity": "sha512-dny3MyBrsmROcW1O1sdR6zMlLyvz1bD4tSAWwR87m5omnWu4CX8H1Is07KkdS5uLFcKH1N5R3zOdfuDIvgZJsw==", "dev": true, "dependencies": { - "is-actual-promise": "^1.0.0", - "tcompare": "6.4.4", + "is-actual-promise": "^1.0.1", + "tcompare": "6.4.6", "trivial-deferred": "^2.0.0" }, "engines": { @@ -774,25 +827,25 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/spawn": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.14.tgz", - "integrity": "sha512-HQbBbeALjFFPGCl0U57QC7+rNuvWLWMzECB5BrYEpSXqrTQV40GwZe4m/Az6TU5GK6t35k+giHNC1UbIp4Ayhg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.21.tgz", + "integrity": "sha512-mHTY4FHZjyp46CT1bYsouGsFQsJgr8LL4Aey5LudRClGeS+7jcX+EKeliw7I3z9reWjT3fgvpnIOxcMNa/q6cQ==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/stack": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.7.tgz", - "integrity": "sha512-7qUDWDmd+y7ZQ0vTrDTvFlWnJ+ND32NemS5HVuT1ZggHtBwJ62PQHIyCx/B5RopETBb6NvFPfUE21yTiex9Jkw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.8.tgz", + "integrity": "sha512-VC8h6U62ScerTKN+MYpRPiwH2bCL65S6v1wcj1hukE2hojLcRvVdET7S3ZtRfSj/eNWW/5OVfzTpHiGjEYD6Xg==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -802,47 +855,47 @@ } }, "node_modules/@tapjs/stdin": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.14.tgz", - "integrity": "sha512-RA9tNAM/fZ+KNVxiYZkWeOab9yzmRFtTqZ4K3dLhv340faq0rnZPSVhRIBhnRdnEYROCJy6bz3ZFSdjxRi9lsg==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.21.tgz", + "integrity": "sha512-RHGVFKkDCLHvpPXaL7oFAJkHaDWcY2LFSHOWxHeyUCMydJ9kClXE2xDyru2nej5IZlzTBnmPXBL1ZyemgoSIpQ==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/test": { - "version": "1.3.14", - "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.3.14.tgz", - "integrity": "sha512-6+WZfZCrTgqNoS74UMXUlhBPdT5gwZIgllkvwTVb6d1lk1kpijyf5k47MI3OPsZmu+9K7YlA20NOh60pkhxqYw==", - "dev": true, - "dependencies": { - "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.1", - "@tapjs/after": "1.1.14", - "@tapjs/after-each": "1.1.14", - "@tapjs/asserts": "1.1.14", - "@tapjs/before": "1.1.14", - "@tapjs/before-each": "1.1.14", - "@tapjs/filter": "1.2.14", - "@tapjs/fixture": "1.2.14", - "@tapjs/intercept": "1.2.14", - "@tapjs/mock": "1.2.12", - "@tapjs/node-serialize": "1.2.3", - "@tapjs/snapshot": "1.2.14", - "@tapjs/spawn": "1.1.14", - "@tapjs/stdin": "1.1.14", - "@tapjs/typescript": "1.3.3", - "@tapjs/worker": "1.1.14", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.4.3.tgz", + "integrity": "sha512-00T2epeCdaWISCs+87Dmot57JQeDCEPFSshCY5YhMuNjd4jpc9fzE6ic7t2r0OL9PnYAHeYdSvEppyKb35hRIQ==", + "dev": true, + "dependencies": { + "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5", + "@tapjs/after": "1.1.21", + "@tapjs/after-each": "1.1.21", + "@tapjs/asserts": "1.1.21", + "@tapjs/before": "1.1.21", + "@tapjs/before-each": "1.1.21", + "@tapjs/filter": "1.2.21", + "@tapjs/fixture": "1.2.21", + "@tapjs/intercept": "1.2.21", + "@tapjs/mock": "1.3.3", + "@tapjs/node-serialize": "1.3.3", + "@tapjs/snapshot": "1.2.21", + "@tapjs/spawn": "1.1.21", + "@tapjs/stdin": "1.1.21", + "@tapjs/typescript": "1.4.3", + "@tapjs/worker": "1.1.21", "glob": "^10.3.10", "jackspeak": "^2.3.6", "mkdirp": "^3.0.0", "resolve-import": "^1.4.5", "rimraf": "^5.0.5", "sync-content": "^1.0.1", - "tap-parser": "15.3.1", - "tshy": "^1.2.2", + "tap-parser": "15.3.2", + "tshy": "^1.12.0", "typescript": "5.2" }, "bin": { @@ -852,58 +905,71 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" + } + }, + "node_modules/@tapjs/test/node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, "node_modules/@tapjs/typescript": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.3.3.tgz", - "integrity": "sha512-2ibx0cWDMcp2hiOcudoH4LZx34rg7i/dC+eLb76J8SsROzHFAg7cAsjMjS4zsNMTPUs65oFo7hNVzblqAHPIGQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.3.tgz", + "integrity": "sha512-mrD0HAx48IPbo6fOlB/1QJHLA+s7NkzFh2b+7LqOja3/7T1aQ+ac1DGnhNk2X78srcYBxWGZ9gSN8CwGfpscMw==", "dev": true, "dependencies": { - "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.1" + "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tapjs/worker": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.14.tgz", - "integrity": "sha512-+iCHx7k3CpMNaAFaWhqPhEhsDukB5ZaonUIO7xckTjznXnATxFSJtwZspFyyuU+M83/iigZmdzDZVgB9xKDMVA==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.21.tgz", + "integrity": "sha512-Rahd9Ua4KEeCb4cPUXq51b7k3WwsMZbQDeMd9Zw1IZr0LiMx5DucroU1oUTq/jyuWOYHp8oMDOBmDf2EYjagdw==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.4.3" + "@tapjs/core": "1.5.3" } }, "node_modules/@tsconfig/node14": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz", - "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==", + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.2.tgz", + "integrity": "sha512-1vncsbfCZ3TBLPxesRYz02Rn7SNJfbLoDVkcZ7F/ixOV6nwxwgdhD1mdPcc5YQ413qBJ8CvMxXMFfJ7oawjo7Q==", "dev": true }, "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==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.3.tgz", + "integrity": "sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==", "dev": true }, "node_modules/@tsconfig/node18": { - "version": "18.2.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", - "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.4.tgz", + "integrity": "sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==", "dev": true }, "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==", + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", "dev": true }, "node_modules/@tufjs/canonical-json": { @@ -916,29 +982,32 @@ } }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/node": { - "version": "20.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.0.tgz", - "integrity": "sha512-zI22/pJW2wUZOVyguFaUL1HABdmSVxpXrzIqkjsHmyUjNhPoWM1CKfvVuXfetHhIok4RY573cqS0mZ1SJEnoTg==", - "dev": true + "version": "20.12.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", + "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/abbrev": { "version": "2.0.0", @@ -950,9 +1019,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -962,18 +1031,18 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" } }, "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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -1005,24 +1074,9 @@ } }, "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, - "dependencies": { - "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==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", "dev": true, "engines": { "node": ">=14.16" @@ -1105,12 +1159,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/brace-expansion": { @@ -1133,15 +1190,6 @@ "node": ">=8" } }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/c8": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", @@ -1245,9 +1293,9 @@ "dev": true }, "node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", + "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -1255,7 +1303,7 @@ "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -1280,16 +1328,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1302,6 +1344,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -1583,9 +1628,9 @@ "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -1627,9 +1672,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1779,15 +1824,15 @@ } }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.14.tgz", + "integrity": "sha512-4fkAqu93xe9Mk7le9v0y3VrPDqLKHarNi2s4Pv7f2yOvfhWfhc7hRPHC/JyqMqb8B/Dt/eGS4n7ykwf3fOsl8g==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -1827,9 +1872,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1839,9 +1884,9 @@ } }, "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==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -1863,9 +1908,9 @@ "dev": true }, "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==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -1876,9 +1921,9 @@ } }, "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==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -1902,9 +1947,9 @@ } }, "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==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -2005,11 +2050,18 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "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/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/is-actual-promise": { "version": "1.0.1", @@ -2133,9 +2185,9 @@ "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==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -2156,9 +2208,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -2191,19 +2243,25 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "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==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/jsonparse": { @@ -2249,9 +2307,9 @@ } }, "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==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "engines": { "node": "14 || >=16.14" } @@ -2284,9 +2342,9 @@ "dev": true }, "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==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", @@ -2298,6 +2356,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -2327,9 +2386,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2341,41 +2400,29 @@ } }, "node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "engines": { "node": ">=16 || 14 >=14.17" } }, "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, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "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==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", @@ -2539,9 +2586,9 @@ } }, "node_modules/node-gyp": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.0.tgz", - "integrity": "sha512-LkaKUbjyacJGRHiuhUeUblzZNxTF1/XNooyAl6aiaJ6ZpeurR4Mk9sjxncGNSI7pETqyqM+hLAER0788oSxt0A==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", + "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -2571,6 +2618,15 @@ "node": ">=16" } }, + "node_modules/node-gyp/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, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -2587,9 +2643,9 @@ } }, "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { "abbrev": "^2.0.0" @@ -2602,9 +2658,9 @@ } }, "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==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -2626,9 +2682,9 @@ } }, "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -2659,13 +2715,13 @@ } }, "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==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", + "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, @@ -2674,21 +2730,21 @@ } }, "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==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.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==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", + "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -2701,18 +2757,19 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "version": "16.2.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", + "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", "dev": true, "dependencies": { + "@npmcli/redact": "^1.1.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" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -2797,9 +2854,9 @@ } }, "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==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz", + "integrity": "sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -2813,11 +2870,11 @@ "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -2864,11 +2921,11 @@ } }, "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==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.0.tgz", + "integrity": "sha512-LNHTaVkzaYaLGlO+0u3rQTz7QrHTFOuKyba9JMTQutkmtNew8dw8wOD7mTU/5fCPZzCWpfW0XnQKzY61P0aTaw==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -2912,15 +2969,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -2953,9 +3010,9 @@ } }, "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==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2993,9 +3050,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" @@ -3005,17 +3062,17 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-element-to-jsx-string": { @@ -3040,25 +3097,25 @@ "dev": true }, "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==", + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", + "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "engines": { "node": ">=0.10.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.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==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz", + "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==", "dev": true, "dependencies": { "glob": "^10.2.2", @@ -3177,22 +3234,19 @@ "optional": true }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.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==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -3200,18 +3254,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3232,9 +3274,9 @@ } }, "node_modules/shiki": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", - "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -3255,15 +3297,17 @@ } }, "node_modules/sigstore": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", - "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", + "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.1.0", - "@sigstore/tuf": "^2.1.0" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3308,26 +3352,26 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "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==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -3346,9 +3390,9 @@ } }, "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==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -3362,15 +3406,21 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { "minipass": "^7.0.3" @@ -3528,29 +3578,29 @@ } }, "node_modules/tap": { - "version": "18.5.4", - "resolved": "https://registry.npmjs.org/tap/-/tap-18.5.4.tgz", - "integrity": "sha512-k4zVl72nivcxdUiGNnulU0eJj0V7l3Ad5ZPKG4iuq14zbI4f/TI7AmHMvkfB3Znu4B55769OpGBtQq683whN5Q==", - "dev": true, - "dependencies": { - "@tapjs/after": "1.1.14", - "@tapjs/after-each": "1.1.14", - "@tapjs/asserts": "1.1.14", - "@tapjs/before": "1.1.14", - "@tapjs/before-each": "1.1.14", - "@tapjs/core": "1.4.3", - "@tapjs/filter": "1.2.14", - "@tapjs/fixture": "1.2.14", - "@tapjs/intercept": "1.2.14", - "@tapjs/mock": "1.2.12", - "@tapjs/node-serialize": "1.2.3", - "@tapjs/run": "1.4.11", - "@tapjs/snapshot": "1.2.14", - "@tapjs/spawn": "1.1.14", - "@tapjs/stdin": "1.1.14", - "@tapjs/test": "1.3.14", - "@tapjs/typescript": "1.3.3", - "@tapjs/worker": "1.1.14", + "version": "18.7.3", + "resolved": "https://registry.npmjs.org/tap/-/tap-18.7.3.tgz", + "integrity": "sha512-CWkmrJn/vZhp9wk+R00mJRe5RSyHplpNWoYDU7D+oN7vUZFMN725Uxx6QUyxlm9Xea3jPmdkfkavhKKFVyI5GQ==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.21", + "@tapjs/after-each": "1.1.21", + "@tapjs/asserts": "1.1.21", + "@tapjs/before": "1.1.21", + "@tapjs/before-each": "1.1.21", + "@tapjs/core": "1.5.3", + "@tapjs/filter": "1.2.21", + "@tapjs/fixture": "1.2.21", + "@tapjs/intercept": "1.2.21", + "@tapjs/mock": "1.3.3", + "@tapjs/node-serialize": "1.3.3", + "@tapjs/run": "1.5.3", + "@tapjs/snapshot": "1.2.21", + "@tapjs/spawn": "1.1.21", + "@tapjs/stdin": "1.1.21", + "@tapjs/test": "1.4.3", + "@tapjs/typescript": "1.4.3", + "@tapjs/worker": "1.1.21", "resolve-import": "^1.4.5" }, "bin": { @@ -3564,13 +3614,13 @@ } }, "node_modules/tap-parser": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.1.tgz", - "integrity": "sha512-hwAtXX5TBGt2MJeYvASc7DjP48PUzA7P8RTbLxQcgKCEH7ICD5IsRco7l5YvkzjHlZbUbeI9wzO8B4hw2sKgnQ==", + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.2.tgz", + "integrity": "sha512-uvauHuQqAMwfeFVxNpFXhvnWLVL0sthnHk4TxRM3cUy6+dejO9fatoKR7YejbMu4+2/1nR6UQE9+eUcX3PUmsA==", "dev": true, "dependencies": { "events-to-array": "^2.0.3", - "tap-yaml": "2.2.1" + "tap-yaml": "2.2.2" }, "bin": { "tap-parser": "bin/cmd.cjs" @@ -3580,12 +3630,12 @@ } }, "node_modules/tap-yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.1.tgz", - "integrity": "sha512-ovZuUMLAIH59jnFHXKEGJ+WyDYl6Cuduwg9qpvnqkZOUA1nU84q02Sry1HT0KXcdv2uB91bEKKxnIybBgrb6oA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.2.tgz", + "integrity": "sha512-MWG4OpAKtNoNVjCz/BqlDJiwTM99tiHRhHPS4iGOe1ZS0CgM4jSFH92lthSFvvy4EdDjQZDV7uYqUFlU9JuNhw==", "dev": true, "dependencies": { - "yaml": "^2.3.0", + "yaml": "^2.4.1", "yaml-types": "^0.3.0" }, "engines": { @@ -3593,9 +3643,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -3655,12 +3705,12 @@ } }, "node_modules/tcompare": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.4.4.tgz", - "integrity": "sha512-mvv9apveoY+XFP2CO2xF3Mkz/v+itzV9ZlhcDY+chIpFGYeTEgiCYdFUPynPme82kNU7UweuxDBQ5J6FkVox/Q==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.4.6.tgz", + "integrity": "sha512-sxvgCgO2GAIWHibnK4zLvvi9GHd/ZlR9DOUJ4ufwvNtkdKE2I9MNwJUwzYvOmGrJXMcfhhw0CDBb+6j0ia+I7A==", "dev": true, "dependencies": { - "diff": "^5.1.0", + "diff": "^5.2.0", "react-element-to-jsx-string": "^15.0.0" }, "engines": { @@ -3745,19 +3795,21 @@ } }, "node_modules/tshy": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.7.0.tgz", - "integrity": "sha512-ioFoMasVNtcOGkJACDpmo+C6xZfRqamimeK0hL2uyS0l7DliiCwAKJj8/x0LVlvdGvCoqkhOHfKpEPjHeI9U8Q==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.14.0.tgz", + "integrity": "sha512-YiUujgi4Jb+t2I48LwSRzHkBpniH9WjjktNozn+nlsGmVemKSjDNY7EwBRPvPCr5zAC/3ITAYWH9Z7kUinGSrw==", "dev": true, "dependencies": { "chalk": "^5.3.0", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "foreground-child": "^3.1.1", + "minimatch": "^9.0.4", "mkdirp": "^3.0.1", - "resolve-import": "^1.4.4", + "polite-json": "^4.0.1", + "resolve-import": "^1.4.5", "rimraf": "^5.0.1", "sync-content": "^1.0.2", - "typescript": "5.2", + "typescript": "^5.4.5", "walk-up-path": "^3.0.1" }, "bin": { @@ -3774,14 +3826,14 @@ "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==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3800,15 +3852,15 @@ } }, "node_modules/typedoc": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.1.tgz", - "integrity": "sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==", + "version": "0.25.13", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", "dev": true, "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", "minimatch": "^9.0.3", - "shiki": "^0.14.1" + "shiki": "^0.14.7" }, "bin": { "typedoc": "bin/typedoc" @@ -3817,13 +3869,13 @@ "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -3833,6 +3885,12 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", @@ -3873,9 +3931,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -3887,9 +3945,9 @@ } }, "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3907,13 +3965,10 @@ } }, "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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -4056,9 +4111,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" @@ -4092,10 +4147,13 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } diff --git a/package.json b/package.json index 87e1a691..5b61ad0e 100644 --- a/package.json +++ b/package.json @@ -41,11 +41,12 @@ "presnap": "npm run prepare", "test": "tap", "snap": "tap", - "format": "prettier --write . --loglevel warn", + "format": "prettier --write . --log-level warn", "benchmark": "node benchmark/index.js", "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts" }, "prettier": { + "experimentalTernaries": true, "semi": false, "printWidth": 80, "tabWidth": 2, @@ -57,13 +58,13 @@ "endOfLine": "lf" }, "devDependencies": { - "@types/node": "^20.6.5", + "@types/node": "^20.12.11", "mkdirp": "^3.0.1", - "prettier": "^2.8.2", + "prettier": "^3.2.5", "tap": "^18.5.4", - "tshy": "^1.7.0", - "typedoc": "^0.25.1", - "typescript": "^5.2" + "tshy": "^1.14.0", + "typedoc": "^0.25.13", + "typescript": "^5.4.5" }, "funding": { "url": "https://github.com/sponsors/isaacs" diff --git a/src/bin.mts b/src/bin.mts index 5f563129..db47b660 100755 --- a/src/bin.mts +++ b/src/bin.mts @@ -6,7 +6,7 @@ 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')) + await readFile(pjDist, 'utf8').catch(() => readFile(pj, 'utf8')), ) as { version: string } const runHelpForUsage = () => @@ -61,7 +61,7 @@ const prompt = async (rl: Interface, q: string) => const interactiveRimraf = async ( impl: (path: string | string[], opt?: RimrafAsyncOptions) => Promise, paths: string[], - opt: RimrafAsyncOptions + opt: RimrafAsyncOptions, ) => { const existingFilter = opt.filter || (() => true) let allRemaining = false @@ -118,7 +118,7 @@ const interactiveRimraf = async ( } } return existingFilter(path, ent) - } + }, ) await impl(paths, opt) rl.close() @@ -139,7 +139,7 @@ const main = async (...args: string[]) => { let dashdash = false let impl: ( path: string | string[], - opt?: RimrafAsyncOptions + opt?: RimrafAsyncOptions, ) => Promise = rimraf let interactive = false @@ -268,6 +268,6 @@ if (process.env.__TESTING_RIMRAF_BIN__ !== '1') { er => { console.error(er) process.exit(1) - } + }, ) } diff --git a/src/default-tmp.ts b/src/default-tmp.ts index 014509af..6e7bb22e 100644 --- a/src/default-tmp.ts +++ b/src/default-tmp.ts @@ -25,7 +25,7 @@ const isDirSync = (path: string) => { const isDir = (path: string) => stat(path).then( st => st.isDirectory(), - () => false + () => false, ) const win32DefaultTmp = async (path: string) => { diff --git a/src/fs.ts b/src/fs.ts index fe2a52ad..12ff2077 100644 --- a/src/fs.ts +++ b/src/fs.ts @@ -25,7 +25,7 @@ export const readdirSync = (path: fs.PathLike): Dirent[] => const chmod = (path: fs.PathLike, mode: fs.Mode): Promise => new Promise((res, rej) => - fs.chmod(path, mode, (er, ...d: any[]) => (er ? rej(er) : res(...d))) + fs.chmod(path, mode, (er, ...d: any[]) => (er ? rej(er) : res(...d))), ) const mkdir = ( @@ -34,47 +34,49 @@ const mkdir = ( | fs.Mode | (fs.MakeDirectoryOptions & { recursive?: boolean | null }) | undefined - | null + | null, ): Promise => new Promise((res, rej) => - fs.mkdir(path, options, (er, made) => (er ? rej(er) : res(made))) + fs.mkdir(path, options, (er, made) => (er ? rej(er) : res(made))), ) const readdir = (path: fs.PathLike): Promise => new Promise((res, rej) => fs.readdir(path, { withFileTypes: true }, (er, data) => - er ? rej(er) : res(data) - ) + er ? rej(er) : res(data), + ), ) const rename = (oldPath: fs.PathLike, newPath: fs.PathLike): Promise => new Promise((res, rej) => - fs.rename(oldPath, newPath, (er, ...d: any[]) => (er ? rej(er) : res(...d))) + fs.rename(oldPath, newPath, (er, ...d: any[]) => + er ? rej(er) : res(...d), + ), ) const rm = (path: fs.PathLike, options: fs.RmOptions): Promise => new Promise((res, rej) => - fs.rm(path, options, (er, ...d: any[]) => (er ? rej(er) : res(...d))) + fs.rm(path, options, (er, ...d: any[]) => (er ? rej(er) : res(...d))), ) const rmdir = (path: fs.PathLike): Promise => new Promise((res, rej) => - fs.rmdir(path, (er, ...d: any[]) => (er ? rej(er) : res(...d))) + fs.rmdir(path, (er, ...d: any[]) => (er ? rej(er) : res(...d))), ) const stat = (path: fs.PathLike): Promise => new Promise((res, rej) => - fs.stat(path, (er, data) => (er ? rej(er) : res(data))) + fs.stat(path, (er, data) => (er ? rej(er) : res(data))), ) const lstat = (path: fs.PathLike): Promise => new Promise((res, rej) => - fs.lstat(path, (er, data) => (er ? rej(er) : res(data))) + fs.lstat(path, (er, data) => (er ? rej(er) : res(data))), ) const unlink = (path: fs.PathLike): Promise => new Promise((res, rej) => - fs.unlink(path, (er, ...d: any[]) => (er ? rej(er) : res(...d))) + fs.unlink(path, (er, ...d: any[]) => (er ? rej(er) : res(...d))), ) export const promises = { diff --git a/src/index.ts b/src/index.ts index 3a467902..f1ea02fc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,16 +16,16 @@ import { useNative, useNativeSync } from './use-native.js' export { assertRimrafOptions, isRimrafOptions, - RimrafAsyncOptions, - RimrafOptions, - RimrafSyncOptions, + type RimrafAsyncOptions, + type RimrafOptions, + type RimrafSyncOptions, } from './opt-arg.js' const wrap = (fn: (p: string, o: RimrafAsyncOptions) => Promise) => async ( path: string | string[], - opt?: RimrafAsyncOptions + opt?: RimrafAsyncOptions, ): Promise => { const options = optArg(opt) if (options.glob) { @@ -74,12 +74,14 @@ export const moveRemove = Object.assign(wrap(rimrafMoveRemove), { }) export const rimrafSync = wrapSync((path, opt) => - useNativeSync(opt) ? rimrafNativeSync(path, opt) : rimrafManualSync(path, opt) + useNativeSync(opt) ? + rimrafNativeSync(path, opt) + : rimrafManualSync(path, opt), ) export const sync = rimrafSync const rimraf_ = wrap((path, opt) => - useNative(opt) ? rimrafNative(path, opt) : rimrafManual(path, opt) + useNative(opt) ? rimrafNative(path, opt) : rimrafManual(path, opt), ) export const rimraf = Object.assign(rimraf_, { rimraf: rimraf_, diff --git a/src/opt-arg.ts b/src/opt-arg.ts index 8541a87b..77f1b99b 100644 --- a/src/opt-arg.ts +++ b/src/opt-arg.ts @@ -17,7 +17,7 @@ export const isRimrafOptions = (o: any): o is RimrafOptions => typeOrUndef(o.filter, 'function') export const assertRimrafOptions: (o: any) => void = ( - o: any + o: any, ): asserts o is RimrafOptions => { if (!isRimrafOptions(o)) { throw new Error('invalid rimraf options') @@ -45,7 +45,7 @@ export interface RimrafSyncOptions extends RimrafAsyncOptions { export type RimrafOptions = RimrafSyncOptions | RimrafAsyncOptions const optArgT = ( - opt: T + opt: T, ): | (T & { glob: GlobOptions & { withFileTypes: false } @@ -57,16 +57,16 @@ const optArgT = ( return options as T & { glob: undefined } } const globOpt = - glob === true - ? opt.signal - ? { signal: opt.signal } - : {} - : opt.signal - ? { - signal: opt.signal, - ...glob, - } - : glob + glob === true ? + opt.signal ? + { signal: opt.signal } + : {} + : opt.signal ? + { + signal: opt.signal, + ...glob, + } + : glob return { ...options, glob: { diff --git a/src/path-arg.ts b/src/path-arg.ts index 68ca4403..505c6d11 100644 --- a/src/path-arg.ts +++ b/src/path-arg.ts @@ -8,11 +8,9 @@ const pathArg = (path: string, opt: RimrafAsyncOptions = {}) => { if (type !== 'string') { const ctor = path && type === 'object' && path.constructor const received = - ctor && ctor.name - ? `an instance of ${ctor.name}` - : type === 'object' - ? inspect(path) - : `type ${type} ${path}` + ctor && ctor.name ? `an instance of ${ctor.name}` + : type === 'object' ? inspect(path) + : `type ${type} ${path}` const msg = 'The "path" argument must be of type string. ' + `Received ${received}` throw Object.assign(new TypeError(msg), { diff --git a/src/retry-busy.ts b/src/retry-busy.ts index 207ba9ba..f727797d 100644 --- a/src/retry-busy.ts +++ b/src/retry-busy.ts @@ -12,7 +12,7 @@ export const retryBusy = (fn: (path: string) => Promise) => { path: string, opt: RimrafAsyncOptions, backoff = 1, - total = 0 + total = 0, ) => { const mbo = opt.maxBackoff || MAXBACKOFF const rate = opt.backoff || RATE diff --git a/src/rimraf-move-remove.ts b/src/rimraf-move-remove.ts index e41fb3bf..daf29104 100644 --- a/src/rimraf-move-remove.ts +++ b/src/rimraf-move-remove.ts @@ -43,7 +43,7 @@ const unlinkFixEPERM = async (path: string) => return } throw er - } + }, ) } else if (er.code === 'ENOENT') { return @@ -73,7 +73,7 @@ const unlinkFixEPERMSync = (path: string) => { export const rimrafMoveRemove = async ( path: string, - opt: RimrafAsyncOptions + opt: RimrafAsyncOptions, ) => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -89,7 +89,7 @@ export const rimrafMoveRemove = async ( const rimrafMoveRemoveDir = async ( path: string, opt: RimrafAsyncOptions, - ent: Dirent | Stats + ent: Dirent | Stats, ): Promise => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -98,7 +98,7 @@ const rimrafMoveRemoveDir = async ( return rimrafMoveRemoveDir( path, { ...opt, tmp: await defaultTmp(path) }, - ent + ent, ) } if (path === opt.tmp && parse(path).root !== path) { @@ -128,7 +128,9 @@ const rimrafMoveRemoveDir = async ( const removedAll = ( await Promise.all( - entries.map(ent => rimrafMoveRemoveDir(resolve(path, ent.name), opt, ent)) + entries.map(ent => + rimrafMoveRemoveDir(resolve(path, ent.name), opt, ent), + ), ) ).reduce((a, b) => a && b, true) if (!removedAll) { @@ -151,7 +153,7 @@ const rimrafMoveRemoveDir = async ( const tmpUnlink = async ( path: string, tmp: string, - rm: (p: string) => Promise + rm: (p: string) => Promise, ) => { const tmpFile = resolve(tmp, uniqueFilename(path)) await rename(path, tmpFile) @@ -173,7 +175,7 @@ export const rimrafMoveRemoveSync = (path: string, opt: RimrafSyncOptions) => { const rimrafMoveRemoveDirSync = ( path: string, opt: RimrafSyncOptions, - ent: Dirent | Stats + ent: Dirent | Stats, ): boolean => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -182,7 +184,7 @@ const rimrafMoveRemoveDirSync = ( return rimrafMoveRemoveDirSync( path, { ...opt, tmp: defaultTmpSync(path) }, - ent + ent, ) } const tmp: string = opt.tmp @@ -233,7 +235,7 @@ const rimrafMoveRemoveDirSync = ( const tmpUnlinkSync = ( path: string, tmp: string, - rmSync: (p: string) => void + rmSync: (p: string) => void, ) => { const tmpFile = resolve(tmp, uniqueFilename(path)) renameSync(path, tmpFile) diff --git a/src/rimraf-native.ts b/src/rimraf-native.ts index 101675ec..b41051b5 100644 --- a/src/rimraf-native.ts +++ b/src/rimraf-native.ts @@ -4,7 +4,7 @@ const { rm } = promises export const rimrafNative = async ( path: string, - opt: RimrafAsyncOptions + opt: RimrafAsyncOptions, ): Promise => { await rm(path, { ...opt, @@ -16,7 +16,7 @@ export const rimrafNative = async ( export const rimrafNativeSync = ( path: string, - opt: RimrafSyncOptions + opt: RimrafSyncOptions, ): boolean => { rmSync(path, { ...opt, diff --git a/src/rimraf-posix.ts b/src/rimraf-posix.ts index 4e99c532..54f0d327 100644 --- a/src/rimraf-posix.ts +++ b/src/rimraf-posix.ts @@ -42,7 +42,7 @@ export const rimrafPosixSync = (path: string, opt: RimrafSyncOptions) => { const rimrafPosixDir = async ( path: string, opt: RimrafAsyncOptions, - ent: Dirent | Stats + ent: Dirent | Stats, ): Promise => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -70,7 +70,7 @@ const rimrafPosixDir = async ( const removedAll = ( await Promise.all( - entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)) + entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)), ) ).reduce((a, b) => a && b, true) @@ -96,7 +96,7 @@ const rimrafPosixDir = async ( const rimrafPosixDirSync = ( path: string, opt: RimrafSyncOptions, - ent: Dirent | Stats + ent: Dirent | Stats, ): boolean => { if (opt?.signal?.aborted) { throw opt.signal.reason diff --git a/src/rimraf-windows.ts b/src/rimraf-windows.ts index 150194a3..30624986 100644 --- a/src/rimraf-windows.ts +++ b/src/rimraf-windows.ts @@ -26,7 +26,7 @@ const rimrafWindowsDirRetrySync = retryBusySync(fixEPERMSync(rmdirSync)) const rimrafWindowsDirMoveRemoveFallback = async ( path: string, - opt: RimrafAsyncOptions + opt: RimrafAsyncOptions, ): Promise => { /* c8 ignore start */ if (opt?.signal?.aborted) { @@ -47,7 +47,7 @@ const rimrafWindowsDirMoveRemoveFallback = async ( const rimrafWindowsDirMoveRemoveFallbackSync = ( path: string, - opt: RimrafSyncOptions + opt: RimrafSyncOptions, ): boolean => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -97,7 +97,7 @@ const rimrafWindowsDir = async ( path: string, opt: RimrafAsyncOptions, ent: Dirent | Stats, - state = START + state = START, ): Promise => { if (opt?.signal?.aborted) { throw opt.signal.reason @@ -128,7 +128,9 @@ const rimrafWindowsDir = async ( const s = state === START ? CHILD : state const removedAll = ( await Promise.all( - entries.map(ent => rimrafWindowsDir(resolve(path, ent.name), opt, ent, s)) + entries.map(ent => + rimrafWindowsDir(resolve(path, ent.name), opt, ent, s), + ), ) ).reduce((a, b) => a && b, true) @@ -153,7 +155,7 @@ const rimrafWindowsDirSync = ( path: string, opt: RimrafSyncOptions, ent: Dirent | Stats, - state = START + state = START, ): boolean => { const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null if (!Array.isArray(entries)) { diff --git a/src/use-native.ts b/src/use-native.ts index 633521b0..18a96e2e 100644 --- a/src/use-native.ts +++ b/src/use-native.ts @@ -12,10 +12,10 @@ 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. export const useNative: (opt?: RimrafAsyncOptions) => boolean = - !hasNative || platform === 'win32' - ? () => false - : opt => !opt?.signal && !opt?.filter + !hasNative || platform === 'win32' ? + () => false + : opt => !opt?.signal && !opt?.filter export const useNativeSync: (opt?: RimrafOptions) => boolean = - !hasNative || platform === 'win32' - ? () => false - : opt => !opt?.signal && !opt?.filter + !hasNative || platform === 'win32' ? + () => false + : opt => !opt?.signal && !opt?.filter diff --git a/test/bin.ts b/test/bin.ts index 2e4769b7..fcfbbe3f 100644 --- a/test/bin.ts +++ b/test/bin.ts @@ -34,7 +34,7 @@ t.test('basic arg parsing stuff', async t => { CALLS.push(['windows', path, opt]), moveRemove: async (path: string, opt: RimrafOptions) => CALLS.push(['move-remove', path, opt]), - } + }, ) const { default: bin } = await t.mockImport('../dist/esm/bin.mjs', { @@ -281,7 +281,7 @@ t.test('actually delete something with it', async t => { }) const res = spawnSync(process.execPath, [binModule, path], { - encoding: 'utf8' + encoding: 'utf8', }) t.throws(() => statSync(path)) t.equal(res.status, 0) @@ -379,7 +379,7 @@ t.test('interactive deletes', t => { t.equal(signal, null, 'signal') t.matchSnapshot(leftovers(d), 'had any leftover') res() - } + }, ) }) }) diff --git a/test/default-tmp.ts b/test/default-tmp.ts index 35974e7b..66c8b637 100644 --- a/test/default-tmp.ts +++ b/test/default-tmp.ts @@ -8,7 +8,7 @@ t.test('posix platform', async t => { '../dist/esm/default-tmp.js', { '../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()) @@ -39,7 +39,7 @@ t.test('windows', async t => { stat: async (path: string) => tempDirCheck(path), }, }, - } + }, )) as typeof import('../dist/esm/default-tmp.js') const expect = { diff --git a/test/delete-many-files.ts b/test/delete-many-files.ts index 9e418e20..6e7648b2 100644 --- a/test/delete-many-files.ts +++ b/test/delete-many-files.ts @@ -33,12 +33,17 @@ const create = (path: string, depth = 0) => { import { manual } from '../dist/esm/index.js' const cases = { manual } -const base = t.testdir(Object.fromEntries( - Object.entries(cases).map(([name]) => [name, { - sync: {}, - async: {}, - }]) -)) +const base = t.testdir( + Object.fromEntries( + Object.entries(cases).map(([name]) => [ + name, + { + sync: {}, + async: {}, + }, + ]), + ), +) t.test('create all fixtures', t => { for (const name of Object.keys(cases)) { diff --git a/test/fix-eperm.ts b/test/fix-eperm.ts index 7859e064..9e4b0c3d 100644 --- a/test/fix-eperm.ts +++ b/test/fix-eperm.ts @@ -1,7 +1,10 @@ import t from 'tap' t.test('works if it works', async t => { - const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/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(async () => 1) await fixed('x').then(n => t.equal(n, 1)) const fixedSync = fixEPERMSync(() => 1) @@ -9,7 +12,10 @@ t.test('works if it works', async t => { }) t.test('throw non-EPERM just throws', async t => { - const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/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') }) @@ -22,7 +28,10 @@ t.test('throw non-EPERM just throws', async t => { t.test('throw ENOENT returns void', async t => { const er = Object.assign(new Error('no ents'), { code: 'ENOENT' }) - const { fixEPERM, fixEPERMSync } = await t.mockImport('../dist/esm/fix-eperm.js', {}) as typeof import('../dist/esm/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 }) @@ -55,12 +64,15 @@ t.test('chmod and try again', async t => { t.equal(mode, 0o666) } 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 { fixEPERM, fixEPERMSync } = (await t.mockImport( + '../dist/esm/fix-eperm.js', + { + '../dist/esm/fs.js': { + promises: { chmod }, + chmodSync, + }, }, - }) as typeof import('../dist/esm/fix-eperm.js') + )) 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)) @@ -92,13 +104,16 @@ t.test('chmod ENOENT is fine, abort', async t => { t.equal(mode, 0o666) throw Object.assign(new Error('no ent'), { code: 'ENOENT' }) } - 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 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, + }, }, - }) as typeof import('../dist/esm/fix-eperm.js') + )) 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)) @@ -124,19 +139,22 @@ t.test('chmod other than ENOENT is failure', async t => { } const asyncMethod = async (p: string) => method(p) const chmods = new Set() - const chmodSync = (p:string, mode:number) => { + 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: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 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, + }, }, - }) as typeof import('../dist/esm/fix-eperm.js') + )) as typeof import('../dist/esm/fix-eperm.js') const fixed = fixEPERM(asyncMethod) const fixedSync = fixEPERMSync(method) await t.rejects(fixed('async'), { code: 'EPERM' }) diff --git a/test/fs.ts b/test/fs.ts index f9f166e6..c196ebb7 100644 --- a/test/fs.ts +++ b/test/fs.ts @@ -26,7 +26,7 @@ const mockFSPass: Record any> = {} const mockFSFail: Record any> = {} for (const method of Object.keys( - fs.promises as Record 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 @@ -34,7 +34,7 @@ for (const method of Object.keys( t.type( (realFS as { [k: string]: any })[method], Function, - `real fs.${method} is a function` + `real fs.${method} is a function`, ) if (method !== 'readdir') { t.equal( @@ -42,7 +42,7 @@ for (const method of Object.keys( (realFS as unknown as { [k: string]: (...a: any[]) => any })[ `${method}Sync` ], - `has ${method}Sync` + `has ${method}Sync`, ) } } @@ -61,7 +61,7 @@ for (const method of Object.keys(fs)) { t.type( (fs.promises as { [k: string]: (...a: any[]) => any })[m], Function, - `fs.promises.${m} is a function` + `fs.promises.${m} is a function`, ) } @@ -70,7 +70,7 @@ t.test('passing resolves promise', async t => { fs: { ...realFS, ...mockFSPass }, })) as typeof import('../src/fs.js') for (const [m, fn] of Object.entries( - fs.promises as { [k: string]: (...a: any) => Promise } + fs.promises as { [k: string]: (...a: any) => Promise }, )) { t.same(await fn(), m, `got expected value for ${m}`) } @@ -81,7 +81,7 @@ t.test('failing rejects promise', async t => { fs: { ...realFS, ...mockFSFail }, })) as typeof import('../src/fs.js') for (const [m, fn] of Object.entries( - fs.promises as { [k: string]: (...a: any[]) => Promise } + fs.promises as { [k: string]: (...a: any[]) => Promise }, )) { t.rejects(fn(), { message: 'oops' }, `got expected value for ${m}`) } diff --git a/test/ignore-enoent.ts b/test/ignore-enoent.ts index 4548a56a..e2fea25b 100644 --- a/test/ignore-enoent.ts +++ b/test/ignore-enoent.ts @@ -15,11 +15,11 @@ t.resolves(ignoreENOENT(Promise.reject(enoent)), 'enoent is fine') t.rejects( ignoreENOENT(Promise.reject(eperm)), { code: 'EPERM' }, - 'eperm is not' + 'eperm is not', ) t.doesNotThrow(() => ignoreENOENTSync(throwEnoent), 'enoent is fine sync') t.throws( () => ignoreENOENTSync(throwEperm), { code: 'EPERM' }, - 'eperm is not fine sync' + 'eperm is not fine sync', ) diff --git a/test/index.ts b/test/index.ts index aedca787..fe4698ee 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,12 +1,12 @@ import { statSync } from 'fs' -import {resolve} from 'path' +import { resolve } from 'path' import t from 'tap' import { + rimraf, RimrafAsyncOptions, RimrafOptions, + rimrafSync, RimrafSyncOptions, - rimraf, - rimrafSync } from '../src/index.js' import * as OPTARG from '../dist/esm/opt-arg.js' @@ -69,7 +69,7 @@ t.test('mocky unit tests to select the correct function', async t => { process.env.__TESTING_RIMRAF_PLATFORM__ = 'posix' const { rimraf } = (await t.mockImport( '../dist/esm/index.js', - mocks + mocks, )) as typeof import('../dist/esm/index.js') t.afterEach(() => (CALLS.length = 0)) @@ -174,7 +174,7 @@ t.test('accept array of paths as first arg', async t => { t.equal(await rimraf(['a', 'b', 'c']), true) t.equal( await rimraf(['i', 'j', 'k'], { x: 'ya' } as unknown as RimrafOptions), - true + true, ) t.same(ASYNC_CALLS, [ [resolve('a'), {}], @@ -190,7 +190,7 @@ t.test('accept array of paths as first arg', async t => { rimrafSync(['m', 'n', 'o'], { cat: 'chai', } as unknown as RimrafSyncOptions), - true + true, ) t.same(SYNC_CALLS, [ [resolve('x'), {}], @@ -203,7 +203,6 @@ t.test('accept array of paths as first arg', async t => { }) t.test('deleting globs', async t => { - const fixture = { a: 'a', b: 'b', diff --git a/test/opt-arg.ts b/test/opt-arg.ts index 5c54d295..56ff3704 100644 --- a/test/opt-arg.ts +++ b/test/opt-arg.ts @@ -56,7 +56,7 @@ t.test('every kind of invalid option value', t => { maxBackoff, //@ts-expect-error tmp, - }) + }), ) } } @@ -87,7 +87,7 @@ t.test('test every allowed combination', t => { backoff, maxBackoff, tmp, - }) + }), ) } } @@ -138,7 +138,7 @@ t.test('glob option handling', t => { signal: { y: 1 }, withFileTypes: false, }, - } + }, ) t.end() }) diff --git a/test/path-arg.ts b/test/path-arg.ts index 4584c89f..24351655 100644 --- a/test/path-arg.ts +++ b/test/path-arg.ts @@ -14,7 +14,7 @@ if (!process.env.__TESTING_RIMRAF_PLATFORM__) { ...process.env, __TESTING_RIMRAF_PLATFORM__: fake, }, - } + }, ) } @@ -29,7 +29,7 @@ const { resolve } = path t.equal(pathArg('a/b/c'), resolve('a/b/c')) t.throws( () => pathArg('a\0b'), - Error('path must be a string without null bytes') + Error('path must be a string without null bytes'), ) if (platform === 'win32') { const badPaths = [ diff --git a/test/platform.ts b/test/platform.ts index b13aa383..0781c42b 100644 --- a/test/platform.ts +++ b/test/platform.ts @@ -8,7 +8,7 @@ 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' + 'not actual platform', ) t.end() }) diff --git a/test/readdir-or-error.ts b/test/readdir-or-error.ts index 9428424f..b2ebf184 100644 --- a/test/readdir-or-error.ts +++ b/test/readdir-or-error.ts @@ -36,7 +36,7 @@ for (const [c, expect] of cases) { t.same( resAsync.map(e => e.name).sort(), expect.sort(), - 'got async result' + 'got async result', ) t.same(resSync.map(e => e.name).sort(), expect.sort(), 'got sync result') } else { diff --git a/test/retry-busy.ts b/test/retry-busy.ts index 1c27aa93..0d6b1104 100644 --- a/test/retry-busy.ts +++ b/test/retry-busy.ts @@ -16,7 +16,7 @@ t.matchSnapshot( MAXRETRIES, codes, }, - 'default settings' + 'default settings', ) t.test('basic working operation when no errors happen', async t => { diff --git a/test/rimraf-manual.ts b/test/rimraf-manual.ts index 5d3aee0e..bd8e3a24 100644 --- a/test/rimraf-manual.ts +++ b/test/rimraf-manual.ts @@ -15,15 +15,15 @@ if (!process.env.__TESTING_RIMRAF_PLATFORM__) { ...process.env, __TESTING_RIMRAF_PLATFORM__: otherPlatform, }, - } + }, ) } const platform = process.env.__TESTING_RIMRAF_PLATFORM__ || process.platform const [expectManual, expectManualSync] = - platform === 'win32' - ? [rimrafWindows, rimrafWindowsSync] - : [rimrafPosix, rimrafPosixSync] + 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.ts b/test/rimraf-move-remove.ts index 9b556c71..ff317666 100644 --- a/test/rimraf-move-remove.ts +++ b/test/rimraf-move-remove.ts @@ -6,8 +6,8 @@ t.formatSnapshot = (calls: string[][]) => .split(process.cwd()) .join('{CWD}') .replace(/\\/g, '/') - .replace(/.*\/(\.[a-z]\.)[^/]*$/, '{tmpfile}') - ) + .replace(/.*\/(\.[a-z]\.)[^/]*$/, '{tmpfile}'), + ), ) import { Stats, statSync } from 'fs' @@ -69,12 +69,12 @@ t.only('actually delete some stuff', async t => { '../dist/esm/rimraf-posix.js', { '../dist/esm/fs.js': fsMock, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const { rimrafMoveRemove, rimrafMoveRemoveSync } = (await t.mockImport( '../dist/esm/rimraf-move-remove.js', - { '../dist/esm/fs.js': fsMock } + { '../dist/esm/fs.js': fsMock }, )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('posix does not work here', t => { @@ -97,7 +97,7 @@ t.only('actually delete some stuff', async t => { t.throws(() => statSync(path), { code: 'ENOENT' }, 'deleted') t.doesNotThrow( () => rimrafMoveRemoveSync(path, {}), - 'deleting a second time is OK' + 'deleting a second time is OK', ) t.end() }) @@ -140,7 +140,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 => { @@ -185,7 +185,7 @@ t.only('ignore ENOENT unlink errors', async t => { }, }, }, - } + }, ) // nest to clean up the mess t.test('sync', t => { @@ -218,7 +218,7 @@ t.test('throw rmdir errors', async t => { }, }, }, - } + }, ) t.test('sync', t => { // nest it so that we clean up the mess @@ -252,7 +252,7 @@ t.test('throw unexpected readdir errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('sync', t => { // nest to clean up the mess @@ -278,7 +278,7 @@ t.test('refuse to delete the root dir', async t => { ...path, dirname: (path: string) => path, }, - } + }, )) as typeof import('../dist/esm/rimraf-move-remove.js') const d = t.testdir({}) @@ -330,7 +330,7 @@ t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { }, }, }, - } + }, ) t.afterEach(() => (CHMODS.length = 0)) @@ -396,7 +396,7 @@ t.test('handle EPERMs, chmod returns ENOENT', async t => { }, }, }, - } + }, ) t.afterEach(() => (CHMODS.length = 0)) @@ -460,7 +460,7 @@ t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-move-remove.js') t.afterEach(() => (CHMODS.length = 0)) @@ -498,7 +498,7 @@ t.test('rimraffing root, do not actually rmdir root', async t => { return p }, }, - } + }, )) as typeof import('../dist/esm/rimraf-move-remove.js') t.test('async', async t => { ROOT = t.testdir(fixture) @@ -521,7 +521,7 @@ t.test( async t => { const { rimrafMoveRemove, rimrafMoveRemoveSync } = await t.mockImport( '../dist/esm/rimraf-move-remove.js', - {} + {}, ) t.test('sync', t => { const ac = new AbortController() @@ -563,7 +563,7 @@ t.test( await t.rejects(() => rimrafMoveRemove(d, { signal })) }) t.end() - } + }, ) t.test('filter function', async t => { @@ -579,7 +579,7 @@ t.test('filter function', async t => { rimrafMoveRemoveSync(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -612,7 +612,7 @@ t.test('filter function', async t => { await rimrafMoveRemove(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -645,7 +645,7 @@ t.test('filter function', async t => { await rimrafMoveRemove(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') diff --git a/test/rimraf-native.ts b/test/rimraf-native.ts index c5fc76f0..eb14fe23 100644 --- a/test/rimraf-native.ts +++ b/test/rimraf-native.ts @@ -17,7 +17,7 @@ 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 => { diff --git a/test/rimraf-posix.ts b/test/rimraf-posix.ts index 8cf6026b..7dc4465e 100644 --- a/test/rimraf-posix.ts +++ b/test/rimraf-posix.ts @@ -45,7 +45,7 @@ t.test('actually delete some stuff', t => { t.throws(() => statSync(path), { code: 'ENOENT' }, 'deleted') t.doesNotThrow( () => rimrafPosixSync(path, {}), - 'deleting a second time is OK' + 'deleting a second time is OK', ) t.end() }) @@ -74,7 +74,7 @@ t.test('throw unlink errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) @@ -97,7 +97,7 @@ t.test('throw rmdir errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) @@ -120,7 +120,7 @@ t.test('throw unexpected readdir errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const path = t.testdir(fixture) t.throws(() => rimrafPosixSync(path, {}), { code: 'FOO' }) @@ -155,7 +155,7 @@ t.test('ignore ENOENTs from unlink/rmdir', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const { statSync } = fs t.test('sync', t => { @@ -188,7 +188,7 @@ t.test('rimraffing root, do not actually rmdir root', async t => { return p }, }, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') t.test('async', async t => { ROOT = t.testdir(fixture) @@ -249,7 +249,7 @@ t.test( await t.rejects(() => rimrafPosix(d, { signal })) }) t.end() - } + }, ) t.test('filter function', t => { @@ -267,7 +267,7 @@ t.test('filter function', t => { rimrafPosixSync(dir, { filter }) t.matchSnapshot( saw.sort((a, b) => a.localeCompare(b, 'en')), - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -300,7 +300,7 @@ t.test('filter function', t => { await rimrafPosix(dir, { filter }) t.matchSnapshot( saw.sort((a, b) => a.localeCompare(b, 'en')), - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -333,7 +333,7 @@ t.test('filter function', t => { await rimrafPosix(dir, { filter }) t.matchSnapshot( saw.sort((a, b) => a.localeCompare(b, 'en')), - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') diff --git a/test/rimraf-windows.ts b/test/rimraf-windows.ts index 70800faf..b737930c 100644 --- a/test/rimraf-windows.ts +++ b/test/rimraf-windows.ts @@ -6,17 +6,17 @@ 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 => - String(arg) - .split(process.cwd()) - .join('{CWD}') - .replace(/\\/g, '/') - .replace(/.*\/(\.[a-z]\.)[^/]*$/, '{tmpfile}') - ) - ) - : calls + Array.isArray(calls) ? + calls.map(args => + args.map(arg => + String(arg) + .split(process.cwd()) + .join('{CWD}') + .replace(/\\/g, '/') + .replace(/.*\/(\.[a-z]\.)[^/]*$/, '{tmpfile}'), + ), + ) + : calls const fixture = { a: 'a', @@ -70,12 +70,12 @@ t.test('actually delete some stuff', async t => { '../dist/esm/rimraf-posix.js', { '../dist/esm/fs.js': fsMock, - } + }, )) as typeof import('../dist/esm/rimraf-posix.js') const { rimrafWindows, rimrafWindowsSync } = (await t.mockImport( '../dist/esm/rimraf-windows.js', - { '../dist/esm/fs.js': fsMock } + { '../dist/esm/fs.js': fsMock }, )) as typeof import('../dist/esm/rimraf-windows.js') t.test('posix does not work here', t => { @@ -98,7 +98,7 @@ t.test('actually delete some stuff', async t => { t.throws(() => statSync(path), { code: 'ENOENT' }, 'deleted') t.doesNotThrow( () => rimrafWindowsSync(path, {}), - 'deleting a second time is OK' + 'deleting a second time is OK', ) t.end() }) @@ -140,7 +140,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 => { @@ -184,7 +184,7 @@ t.test('ignore ENOENT unlink errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') // nest to clean up the mess t.test('sync', t => { @@ -216,7 +216,7 @@ t.test('throw rmdir errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.test('sync', t => { // nest it so that we clean up the mess @@ -249,7 +249,7 @@ t.test('throw unexpected readdir errors', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.test('sync', t => { // nest to clean up the mess @@ -303,7 +303,7 @@ t.test('handle EPERMs on unlink by trying to chmod 0o666', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -368,7 +368,7 @@ t.test('handle EPERMs, chmod returns ENOENT', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -431,7 +431,7 @@ t.test('handle EPERMs, chmod raises something other than ENOENT', async t => { }, }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.afterEach(() => (CHMODS.length = 0)) @@ -468,7 +468,7 @@ t.test('rimraffing root, do not actually rmdir root', async t => { return p }, }, - } + }, )) as typeof import('../dist/esm/rimraf-windows.js') t.test('async', async t => { ROOT = t.testdir(fixture) @@ -529,7 +529,7 @@ t.test( await t.rejects(() => rimrafWindows(d, { signal })) }) t.end() - } + }, ) t.test('filter function', t => { @@ -545,7 +545,7 @@ t.test('filter function', t => { rimrafWindowsSync(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -578,7 +578,7 @@ t.test('filter function', t => { await rimrafWindows(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') @@ -611,7 +611,7 @@ t.test('filter function', t => { await rimrafWindows(dir, { filter }) t.matchSnapshot( [saw.sort((a, b) => a.localeCompare(b, 'en'))], - 'paths seen' + 'paths seen', ) statSync(dir) statSync(dir + '/c') diff --git a/test/use-native.ts b/test/use-native.ts index 80f6c7e1..38b0a0af 100644 --- a/test/use-native.ts +++ b/test/use-native.ts @@ -23,7 +23,7 @@ if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '1', }, }, - 'darwin v18' + 'darwin v18', ) t.spawn( @@ -37,7 +37,7 @@ if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', }, }, - 'win32 v18' + 'win32 v18', ) t.spawn( @@ -51,7 +51,7 @@ if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', }, }, - 'darwin v8' + 'darwin v8', ) t.spawn( @@ -65,7 +65,7 @@ if (!process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__) { __TESTING_RIMRAF_EXPECT_USE_NATIVE__: '0', }, }, - 'darwin v14.13.12' + 'darwin v14.13.12', ) } else { const expect = process.env.__TESTING_RIMRAF_EXPECT_USE_NATIVE__ === '1'