From 65928e5324a7741375f29a57d6b404308c21f133 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sun, 5 Nov 2023 02:11:41 +0000 Subject: [PATCH 01/60] Bump major dependencies. --- package-lock.json | 1223 +++++++++++++++++++++++++-------------------- package.json | 12 +- 2 files changed, 695 insertions(+), 540 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11a0b690..0a22e4de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "make-fetch-happen": "^11.1.1", "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.2.0", + "pacote": "17.0.4", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", @@ -40,7 +40,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^6.0.2" + "update-notifier": "^7.0.0" }, "bin": { "ncu": "build/src/bin/cli.js", @@ -70,20 +70,19 @@ "@types/rimraf": "^3.0.2", "@types/semver": "^7.5.4", "@types/semver-utils": "^1.1.2", - "@types/sinon": "^10.0.20", + "@types/sinon": "^17.0.0", "@types/update-notifier": "^6.0.6", "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@typescript-eslint/parser": "^6.9.1", "c8": "^8.0.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", "eslint": "^8.53.0", - "eslint-config-prettier": "^8.10.0", + "eslint-config-prettier": "^9.0.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-fp": "^2.3.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsdoc": "^46.8.2", "eslint-plugin-n": "^16.2.0", @@ -95,7 +94,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "should": "^13.2.3", - "sinon": "^15.2.0", + "sinon": "^17.0.1", "strip-ansi": "^7.1.0", "ts-node": "^10.9.1", "typescript": "^5.1.3", @@ -782,6 +781,77 @@ "node": ">= 8" } }, + "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==", + "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" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@npmcli/fs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", @@ -794,35 +864,51 @@ } }, "node_modules/@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/installed-package-contents": { @@ -849,57 +935,73 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", "dependencies": { - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", "dependencies": { "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@pkgjs/parseargs": { @@ -949,34 +1051,98 @@ } }, "node_modules/@sigstore/bundle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.0.0.tgz", - "integrity": "sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" + "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz", - "integrity": "sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", "engines": { "node": "^14.17.0 || ^16.13.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==", + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sindresorhus/is": { @@ -1000,9 +1166,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" @@ -1101,23 +1267,23 @@ "dev": true }, "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@types/chai": { @@ -1370,9 +1536,9 @@ "dev": true }, "node_modules/@types/sinon": { - "version": "10.0.20", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", - "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.0.tgz", + "integrity": "sha512-oN4AeDMFCeNZrAffCjhLcwwVymRZL2c9mljUmhPnd0eiM06d4ELDg0Q0TSvnZXrCIFlSA859qIdcfu1HapswPQ==", "dev": true, "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -1438,25 +1604,83 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", + "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.9.1", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/typescript-estree": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", + "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", + "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", + "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { @@ -1464,6 +1688,23 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", + "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", @@ -1633,9 +1874,12 @@ } }, "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/acorn": { "version": "8.10.0", @@ -1809,11 +2053,6 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -1823,18 +2062,6 @@ "node": ">=14" } }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -2485,20 +2712,6 @@ "node": ">=10" } }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -2686,14 +2899,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2726,7 +2931,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/config-chain": { "version": "1.1.13", @@ -2760,11 +2966,6 @@ "url": "https://github.com/yeoman/configstore?sponsor=1" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -2797,18 +2998,6 @@ } } }, - "node_modules/create-eslint-index": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz", - "integrity": "sha512-nXvJjnfDytOOaPOonX0h0a1ggMoqrhdekGeZkD6hkcWYvlCWhU719tKFVh8eU04CnMwu3uwe1JjwuUF2C3k2qg==", - "dev": true, - "dependencies": { - "lodash.get": "^4.3.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -2983,11 +3172,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3275,23 +3459,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-ast-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", - "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.zip": "^4.2.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -3408,24 +3579,6 @@ "eslint": ">=8" } }, - "node_modules/eslint-plugin-fp": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-fp/-/eslint-plugin-fp-2.3.0.tgz", - "integrity": "sha512-3n2oHibwoIxAht9/+ZaTldhI6brXORgl8oNXqZd+d9xuAQt2SBJ2/aml0oQRMWvXrgsz2WG6wfC++NjzSG3prA==", - "dev": true, - "dependencies": { - "create-eslint-index": "^1.0.0", - "eslint-ast-utils": "^1.0.0", - "lodash": "^4.13.1", - "req-all": "^0.1.0" - }, - "engines": { - "node": ">=4.0.0" - }, - "peerDependencies": { - "eslint": ">=3" - } - }, "node_modules/eslint-plugin-import": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", @@ -4110,7 +4263,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -4161,61 +4315,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/gauge/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -4551,22 +4650,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -4744,6 +4827,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4752,7 +4836,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "4.1.1", @@ -4868,17 +4953,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -4932,6 +5006,20 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ci": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", + "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -5125,14 +5213,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "engines": { - "node": ">=12" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -5602,12 +5682,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5927,9 +6001,9 @@ } }, "node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -6280,9 +6354,9 @@ "dev": true }, "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, "dependencies": { "@sinonjs/commons": "^2.0.0", @@ -6301,120 +6375,165 @@ "type-detect": "4.0.8" } }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, "node_modules/node-gyp": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", - "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", "tar": "^6.1.2", - "which": "^2.0.2" + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/node-gyp/node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, - "node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/node-gyp/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==", "dependencies": { - "brace-expansion": "^1.1.7" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, "engines": { - "node": "*" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "glob": "^7.1.3" + "isexe": "^3.1.1" }, "bin": { - "rimraf": "bin.js" + "node-which": "bin/which.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "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==", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" } }, "node_modules/normalize-path": { @@ -6449,9 +6568,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", - "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dependencies": { "semver": "^7.1.1" }, @@ -6468,34 +6587,42 @@ } }, "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "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==", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "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==", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" } }, "node_modules/npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", + "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", "dependencies": { "ignore-walk": "^6.0.0" }, @@ -6504,42 +6631,85 @@ } }, "node_modules/npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "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==", "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/npm-registry-fetch/node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-run-all": { @@ -6700,20 +6870,6 @@ "which": "bin/which" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -6809,6 +6965,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -6898,26 +7055,26 @@ } }, "node_modules/pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", "dependencies": { - "@npmcli/git": "^4.0.0", + "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", + "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", + "sigstore": "^2.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -6925,15 +7082,37 @@ "pacote": "lib/bin.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pacote/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/pacote/node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" } }, "node_modules/parent-module": { @@ -6995,6 +7174,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -7283,17 +7463,17 @@ } }, "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", + "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==", "dependencies": { "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", + "normalize-package-data": "^6.0.0", "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/read-package-json-fast": { @@ -7377,19 +7557,6 @@ "semver": "bin/semver" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -7452,15 +7619,6 @@ "node": ">=8" } }, - "node_modules/req-all": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/req-all/-/req-all-0.1.0.tgz", - "integrity": "sha512-ZdvPr8uXy9ujX3KujwE2P1HWkMYgogIhqeAeyb47MqWjSfyxERSm0TNbN/IapCCmWDufXab04AYrRgObaJCJ6Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7637,6 +7795,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -7734,11 +7893,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -7841,33 +7995,30 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sigstore": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.8.0.tgz", - "integrity": "sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", "dependencies": { - "@sigstore/bundle": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/sinon": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", - "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.3.0", + "@sinonjs/fake-timers": "^11.2.2", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", - "nise": "^5.1.4", + "nise": "^5.1.5", "supports-color": "^7.2.0" }, "funding": { @@ -8022,14 +8173,6 @@ "node": ">=8" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -8352,6 +8495,18 @@ "node": ">=8.0" } }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -8456,16 +8611,67 @@ "dev": true }, "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", + "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==", "dependencies": { - "@tufjs/models": "1.0.4", + "@tufjs/models": "2.0.0", "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" + "make-fetch-happen": "^13.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/type-check": { @@ -8870,27 +9076,25 @@ } }, "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", + "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", + "boxen": "^7.1.1", + "chalk": "^5.3.0", "configstore": "^6.0.0", - "has-yarn": "^3.0.0", "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", + "is-in-ci": "^0.1.0", "is-installed-globally": "^0.4.0", "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", "latest-version": "^7.0.0", "pupa": "^3.1.0", - "semver": "^7.3.7", + "semver": "^7.5.4", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" @@ -8905,11 +9109,6 @@ "punycode": "^2.1.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -9024,51 +9223,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -9203,7 +9357,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "3.0.3", diff --git a/package.json b/package.json index 8e7f215b..b9563b68 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "make-fetch-happen": "^11.1.1", "minimatch": "^9.0.3", "p-map": "^4.0.0", - "pacote": "15.2.0", + "pacote": "17.0.4", "parse-github-url": "^1.0.2", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", @@ -88,7 +88,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^6.0.2" + "update-notifier": "^7.0.0" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.2.1", @@ -114,17 +114,17 @@ "@types/rimraf": "^3.0.2", "@types/semver": "^7.5.4", "@types/semver-utils": "^1.1.2", - "@types/sinon": "^10.0.20", + "@types/sinon": "^17.0.0", "@types/update-notifier": "^6.0.6", "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@typescript-eslint/parser": "^6.9.1", "c8": "^8.0.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", "eslint": "^8.53.0", - "eslint-config-prettier": "^8.10.0", + "eslint-config-prettier": "^9.0.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.29.0", @@ -138,7 +138,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "should": "^13.2.3", - "sinon": "^15.2.0", + "sinon": "^17.0.1", "strip-ansi": "^7.1.0", "ts-node": "^10.9.1", "typescript": "^5.1.3", From c39c48b266401e57eaccb2cd4a83b957953c5673 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sun, 5 Nov 2023 02:20:05 +0000 Subject: [PATCH 02/60] Upgrade @typescript-eslint/eslint-plugin. --- .eslintrc.js | 3 +- package-lock.json | 229 +++++++++++----------------------------------- package.json | 2 +- 3 files changed, 55 insertions(+), 179 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index fab9076e..df0ce73d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -28,7 +28,7 @@ module.exports = { '@typescript-eslint/array-type': [ 'error', { - 'array-type': 'array', + default: 'array', }, ], }, @@ -36,7 +36,6 @@ module.exports = { ], plugins: ['jsdoc'], rules: { - // jsdoc 'jsdoc/require-jsdoc': [ 'error', { diff --git a/package-lock.json b/package-lock.json index 0a22e4de..7f7c0cfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "@types/semver-utils": "^1.1.2", "@types/sinon": "^17.0.0", "@types/update-notifier": "^6.0.6", - "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", "c8": "^8.0.1", "chai": "^4.3.10", @@ -1570,32 +1570,33 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.1.tgz", + "integrity": "sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.9.1", + "@typescript-eslint/type-utils": "6.9.1", + "@typescript-eslint/utils": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1631,7 +1632,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", @@ -1648,31 +1649,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", - "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/type-utils": { "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", - "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.1.tgz", + "integrity": "sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/typescript-estree": "6.9.1", + "@typescript-eslint/utils": "6.9.1", "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, "engines": { @@ -1682,66 +1667,8 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", - "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.9.1", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1750,12 +1677,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", + "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -1763,21 +1690,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", + "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -1790,42 +1717,41 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.1.tgz", + "integrity": "sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.9.1", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/typescript-estree": "6.9.1", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", + "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.9.1", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3745,19 +3671,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -3986,15 +3899,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6333,12 +6237,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -8589,27 +8487,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tuf-js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", diff --git a/package.json b/package.json index b9563b68..0a6c1e6c 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "@types/semver-utils": "^1.1.2", "@types/sinon": "^17.0.0", "@types/update-notifier": "^6.0.6", - "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", "c8": "^8.0.1", "chai": "^4.3.10", From 8c7c8f6ae412d887f061fd9c942fe5ef69c066e3 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sun, 5 Nov 2023 03:24:16 +0000 Subject: [PATCH 03/60] Upgrade fp-and-or. --- package-lock.json | 10 +++++----- package.json | 2 +- src/lib/filterAndReject.ts | 22 +++++++++++----------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f7c0cfd..a067289f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "commander": "^11.1.0", "fast-memoize": "^2.5.2", "find-up": "5.0.0", - "fp-and-or": "^0.1.4", + "fp-and-or": "^1.0.2", "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", @@ -4138,11 +4138,11 @@ } }, "node_modules/fp-and-or": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/fp-and-or/-/fp-and-or-0.1.4.tgz", - "integrity": "sha512-+yRYRhpnFPWXSly/6V4Lw9IfOV26uu30kynGJ03PW+MnjOEQe45RZ141QcS0aJehYBYA50GfCDnsRbFJdhssRw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fp-and-or/-/fp-and-or-1.0.2.tgz", + "integrity": "sha512-jRuhDpN/8LaE2ghHYKuj11SqUcfus38Rhsd+m9EReVes4KQdLErmHoP5FAWUBg+kci56ucryVryKda7cCyHT6A==", "engines": { - "node": ">=10" + "node": "^16.10.0 || >=18.0.0" } }, "node_modules/fs-minipass": { diff --git a/package.json b/package.json index 0a6c1e6c..a1eb52c1 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "commander": "^11.1.0", "fast-memoize": "^2.5.2", "find-up": "5.0.0", - "fp-and-or": "^0.1.4", + "fp-and-or": "^1.0.2", "get-stdin": "^8.0.0", "globby": "^11.0.4", "hosted-git-info": "^5.1.0", diff --git a/src/lib/filterAndReject.ts b/src/lib/filterAndReject.ts index 52280d2f..7dec21da 100644 --- a/src/lib/filterAndReject.ts +++ b/src/lib/filterAndReject.ts @@ -2,7 +2,7 @@ import { and, or } from 'fp-and-or' import identity from 'lodash/identity' import negate from 'lodash/negate' import { minimatch } from 'minimatch' -import { SemVer, parseRange } from 'semver-utils' +import { parseRange } from 'semver-utils' import { FilterPattern } from '../types/FilterPattern' import { Maybe } from '../types/Maybe' import { VersionSpec } from '../types/VersionSpec' @@ -14,8 +14,8 @@ import { VersionSpec } from '../types/VersionSpec' * @param [filterPattern] * @returns */ -function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec: VersionSpec) => boolean { - let predicate: (name: string, versionSpec: VersionSpec) => boolean +function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec?: string) => boolean { + let predicate: (name: string, versionSpec?: string) => boolean // no filter if (!filterPattern) { @@ -48,7 +48,7 @@ function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec } // array else if (Array.isArray(filterPattern)) { - predicate = (dependencyName: string, versionSpec: string) => + predicate = (dependencyName: string, versionSpec?: string) => filterPattern.some(subpattern => composeFilter(subpattern)(dependencyName, versionSpec)) } // raw RegExp @@ -57,8 +57,8 @@ function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec } // function else if (typeof filterPattern === 'function') { - predicate = (dependencyName: string, versionSpec: string) => - filterPattern(dependencyName, parseRange(versionSpec ?? dependencyName)) + predicate = (dependencyName: string, versionSpec?: string) => + filterPattern(dependencyName, parseRange((versionSpec as string) ?? dependencyName)) } else { throw new TypeError('Invalid filter. Must be a RegExp, array, or comma-or-space-delimited list.') } @@ -82,16 +82,16 @@ function filterAndReject( ) { return and( // filter dep - (dependencyName: VersionSpec, version: SemVer[]) => - and(filter ? composeFilter(filter) : identity, reject ? negate(composeFilter(reject)) : identity)( + (dependencyName: VersionSpec, version: string) => + and(filter ? composeFilter(filter) : true, reject ? negate(composeFilter(reject)) : true)( dependencyName, version, ), // filter version - (dependencyName: VersionSpec, version: SemVer[]) => + (dependencyName: VersionSpec, version: string) => and( - filterVersion ? composeFilter(filterVersion) : identity, - rejectVersion ? negate(composeFilter(rejectVersion)) : identity, + filterVersion ? composeFilter(filterVersion) : true, + rejectVersion ? negate(composeFilter(rejectVersion)) : true, )(version), ) } From d772cc7f8111dbb9c89315dab1a661ff5b3956d6 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sun, 5 Nov 2023 03:46:30 +0000 Subject: [PATCH 04/60] Upgrade spawn-please. --- package-lock.json | 8 ++-- package.json | 2 +- src/index.ts | 42 ++++++++++--------- src/lib/doctor.ts | 11 ++--- src/package-managers/bun.ts | 8 +++- src/package-managers/npm.ts | 4 +- src/package-managers/pnpm.ts | 6 ++- src/package-managers/yarn.ts | 21 +++++++--- src/types/SpawnOptions.ts | 2 +- src/types/SpawnPleaseOptions.ts | 6 +++ test/interactive.test.ts | 72 +++++++++++++++++++++------------ test/peer.test.ts | 6 +-- 12 files changed, 120 insertions(+), 68 deletions(-) create mode 100644 src/types/SpawnPleaseOptions.ts diff --git a/package-lock.json b/package-lock.json index a067289f..54985a21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "semver": "^7.5.4", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", - "spawn-please": "^2.0.2", + "spawn-please": "^3.0.0", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", @@ -8008,9 +8008,9 @@ } }, "node_modules/spawn-please": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-2.0.2.tgz", - "integrity": "sha512-KM8coezO6ISQ89c1BzyWNtcn2V2kAVtwIXd3cN/V5a0xPYc1F/vydrRc01wsKFEQ/p+V1a4sw4z2yMITIXrgGw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-3.0.0.tgz", + "integrity": "sha512-XFHEGgEG9R/MCypDDQVWoSSQoGAz5LFYcGoFpdYvnqgYDumHvapPDj54C5Xv7tqTkzEC17AY7Iz90KgrDfj7Gg==", "dependencies": { "cross-spawn": "^7.0.3" }, diff --git a/package.json b/package.json index a1eb52c1..a134851f 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "semver": "^7.5.4", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", - "spawn-please": "^2.0.2", + "spawn-please": "^3.0.0", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", diff --git a/src/index.ts b/src/index.ts index cee04ca6..1e497c5e 100755 --- a/src/index.ts +++ b/src/index.ts @@ -145,26 +145,32 @@ const install = async ( const cwd = options.cwd || path.resolve(pkgFile, '..') let stdout = '' try { - await spawn(cmd, ['install'], { - cwd, - env: { - ...process.env, - ...(options.color !== false ? { FORCE_COLOR: true } : null), - // With spawn, pnpm install will fail with ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies. - // When pnpm install is run directly from the terminal, this error does not occur. - // When pnpm install is run from a simple spawn script, this error does not occur. - // The issue only seems to be when pnpm install is executed from npm-check-updates, but it's not clear what configuration or environmental factors are causing this. - // For now, turn off strict-peer-dependencies on pnpm auto-install. - // See: https://github.com/raineorshine/npm-check-updates/issues/1191 - ...(packageManager === 'pnpm' ? { npm_config_strict_peer_dependencies: false } : null), + await spawn( + cmd, + ['install'], + { + stdout: (data: string) => { + stdout += data + }, + stderr: (data: string) => { + console.error(chalk.red(data.toString())) + }, }, - stdout: (data: string) => { - stdout += data + { + cwd, + env: { + ...process.env, + ...(options.color !== false ? { FORCE_COLOR: true } : null), + // With spawn, pnpm install will fail with ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies. + // When pnpm install is run directly from the terminal, this error does not occur. + // When pnpm install is run from a simple spawn script, this error does not occur. + // The issue only seems to be when pnpm install is executed from npm-check-updates, but it's not clear what configuration or environmental factors are causing this. + // For now, turn off strict-peer-dependencies on pnpm auto-install. + // See: https://github.com/raineorshine/npm-check-updates/issues/1191 + ...(packageManager === 'pnpm' ? { npm_config_strict_peer_dependencies: false } : null), + }, }, - stderr: (data: string) => { - console.error(chalk.red(data.toString())) - }, - }) + ) print(options, stdout) print(options, 'Done') } catch (err: any) { diff --git a/src/lib/doctor.ts b/src/lib/doctor.ts index 5edaf211..d9217069 100644 --- a/src/lib/doctor.ts +++ b/src/lib/doctor.ts @@ -11,6 +11,7 @@ import { Options } from '../types/Options' import { PackageFile } from '../types/PackageFile' import { PackageInfo } from '../types/PackageInfo' import { SpawnOptions } from '../types/SpawnOptions' +import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import { VersionSpec } from '../types/VersionSpec' import chalk, { chalkInit } from './chalk' import loadPackageInfoFromFile from './loadPackageInfoFromFile' @@ -23,7 +24,7 @@ const npm = ( args: string[], options: Options, print?: boolean, - { spawnOptions }: { spawnOptions?: SpawnOptions } = {}, + { spawnOptions, spawnPleaseOptions }: { spawnOptions?: SpawnOptions; spawnPleaseOptions?: SpawnPleaseOptions } = {}, ): Promise => { if (print) { console.log(chalk.blue([options.packageManager, ...args].join(' '))) @@ -54,7 +55,7 @@ const npm = ( : options.packageManager === 'bun' ? spawnBun : spawnNpm - )(args, npmOptions, spawnOptionsMerged as any) + )(args, npmOptions, spawnPleaseOptions, spawnOptionsMerged) } /** Load and validate package file and tests. */ @@ -121,7 +122,7 @@ const doctor = async (run: Run, options: Options): Promise => { /** Run the tests using "npm run test" or a custom script given by --doctorTest. */ const runTests = async (): Promise => { - const spawnOptions = { + const spawnPleaseOptions = { stderr: (data: string): void => { console.error(chalk.red(data.toString())) }, @@ -141,7 +142,7 @@ const doctor = async (run: Run, options: Options): Promise => { } const [testCommand, ...testArgs] = groups console.log(chalk.blue(options.doctorTest)) - await spawn(testCommand, testArgs, spawnOptions) + await spawn(testCommand, testArgs, spawnPleaseOptions) } else { await npm( ['run', 'test'], @@ -149,7 +150,7 @@ const doctor = async (run: Run, options: Options): Promise => { packageManager: options.packageManager, }, true, - { spawnOptions }, + { spawnPleaseOptions }, ) } } diff --git a/src/package-managers/bun.ts b/src/package-managers/bun.ts index b3648a9f..e2664749 100644 --- a/src/package-managers/bun.ts +++ b/src/package-managers/bun.ts @@ -5,12 +5,14 @@ import keyValueBy from '../lib/keyValueBy' import programError from '../lib/programError' import { Index } from '../types/IndexType' import { NpmOptions } from '../types/NpmOptions' +import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import * as npm from './npm' /** Spawn bun. */ async function spawnBun( args: string | string[], npmOptions: NpmOptions = {}, + spawnPleaseOptions: SpawnPleaseOptions = {}, spawnOptions: Index = {}, ): Promise { // Bun not yet supported on Windows. @@ -27,7 +29,7 @@ async function spawnBun( ...(npmOptions.global ? ['--global'] : []), ] - return spawn('bun', fullArgs, spawnOptions) + return spawn('bun', fullArgs, spawnPleaseOptions, spawnOptions) } /** Returns the global directory of bun. */ @@ -49,6 +51,9 @@ export const list = async (options: Options = {}): Promise = {}, ): Promise { const cmd = process.platform === 'win32' ? 'npm.cmd' : 'npm' @@ -511,7 +513,7 @@ async function spawnNpm( ...(npmOptions.prefix ? [`--prefix=${npmOptions.prefix}`] : []), '--json', ] - return spawn(cmd, fullArgs, spawnOptions) + return spawn(cmd, fullArgs, spawnPleaseOptions, spawnOptions) } /** diff --git a/src/package-managers/pnpm.ts b/src/package-managers/pnpm.ts index f6e1d87f..52974e44 100644 --- a/src/package-managers/pnpm.ts +++ b/src/package-managers/pnpm.ts @@ -12,6 +12,7 @@ import { NpmConfig } from '../types/NpmConfig' import { NpmOptions } from '../types/NpmOptions' import { Options } from '../types/Options' import { SpawnOptions } from '../types/SpawnOptions' +import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import { Version } from '../types/Version' import { normalizeNpmConfig, @@ -71,6 +72,7 @@ const spawnPnpm = async ( args: string | string[], npmOptions: NpmOptions = {}, spawnOptions?: SpawnOptions, + spawnPleaseOptions?: SpawnPleaseOptions, ): Promise => { const cmd = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm' @@ -80,7 +82,9 @@ const spawnPnpm = async ( ...(npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : []), ] - return spawn(cmd, fullArgs, spawnOptions) + const { stdout } = await spawn(cmd, fullArgs, spawnPleaseOptions, spawnOptions) + + return stdout } /** Fetches the list of all installed packages. */ diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index 443b26b1..6483ed2b 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -16,6 +16,7 @@ import { NpmConfig } from '../types/NpmConfig' import { NpmOptions } from '../types/NpmOptions' import { Options } from '../types/Options' import { SpawnOptions } from '../types/SpawnOptions' +import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import { VersionSpec } from '../types/VersionSpec' import { distTag as npmDistTag, @@ -197,7 +198,8 @@ function parseJsonLines(result: string): Promise<{ dependencies: Index { const cmd = process.platform === 'win32' ? 'yarn.cmd' : 'yarn' @@ -210,7 +212,9 @@ async function spawnYarn( '--no-progress', ] - return spawn(cmd, fullArgs, spawnOptions) + const { stdout } = await spawn(cmd, fullArgs, spawnPleaseOptions, spawnOptions) + + return stdout } /** @@ -260,10 +264,15 @@ export async function defaultPrefix(options: Options): Promise { * @returns */ export const list = async (options: Options = {}, spawnOptions?: SpawnOptions): Promise> => { - const jsonLines: string = await spawnYarn('list', options as Index, { - ...(options.cwd ? { cwd: options.cwd } : {}), - ...spawnOptions, - }) + const jsonLines: string = await spawnYarn( + 'list', + options as Index, + {}, + { + ...(options.cwd ? { cwd: options.cwd } : {}), + ...spawnOptions, + }, + ) const json: { dependencies: Index } = await parseJsonLines(jsonLines) const keyValues: Index = keyValueBy( json.dependencies, diff --git a/src/types/SpawnOptions.ts b/src/types/SpawnOptions.ts index 01681aa5..fff99f8c 100644 --- a/src/types/SpawnOptions.ts +++ b/src/types/SpawnOptions.ts @@ -2,6 +2,6 @@ import { Index } from './IndexType' /** Options to the spawn node built-in. */ export interface SpawnOptions { + cwd?: string env?: Index - stderr?: (s: string) => void } diff --git a/src/types/SpawnPleaseOptions.ts b/src/types/SpawnPleaseOptions.ts new file mode 100644 index 00000000..7f462e3c --- /dev/null +++ b/src/types/SpawnPleaseOptions.ts @@ -0,0 +1,6 @@ +export interface SpawnPleaseOptions { + rejectOnError?: boolean + stdin?: string + stdout?: (s: string) => void + stderr?: (s: string) => void +} diff --git a/test/interactive.test.ts b/test/interactive.test.ts index 5e9355e0..60ea12ae 100644 --- a/test/interactive.test.ts +++ b/test/interactive.test.ts @@ -37,13 +37,18 @@ describe('--interactive', () => { 'utf-8', ) try { - const stdout = await spawn('node', [bin, '--interactive'], { - cwd: tempDir, - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + const { stdout } = await spawn( + 'node', + [bin, '--interactive'], + {}, + { + cwd: tempDir, + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + }, }, - }) + ) should.equal(/^Upgrading/m.test(stdout), true) @@ -74,13 +79,18 @@ describe('--interactive', () => { 'utf-8', ) try { - await spawn('node', [bin, '--interactive', '--format', 'group'], { - cwd: tempDir, - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + await spawn( + 'node', + [bin, '--interactive', '--format', 'group'], + {}, + { + cwd: tempDir, + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + }, }, - }) + ) const upgradedPkg = JSON.parse(await fs.readFile(pkgFile, 'utf-8')) upgradedPkg.dependencies.should.deep.equal({ @@ -114,13 +124,18 @@ describe('--interactive', () => { const configFile = path.join(tempDir, '.ncurc.js') await fs.writeFile(configFile, `module.exports = { groupFunction: () => 'minor' }`, 'utf-8') try { - await spawn('node', [bin, '--interactive', '--format', 'group', '--configFilePath', tempDir], { - cwd: tempDir, - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + await spawn( + 'node', + [bin, '--interactive', '--format', 'group', '--configFilePath', tempDir], + {}, + { + cwd: tempDir, + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2', 'ncu-test-return-version'], true]), + }, }, - }) + ) const upgradedPkg = JSON.parse(await fs.readFile(pkgFile, 'utf-8')) upgradedPkg.dependencies.should.deep.equal({ @@ -150,16 +165,21 @@ describe('--interactive', () => { 'utf-8', ) try { - await spawn('npm', ['install'], { cwd: tempDir }) - const output = await spawn('node', [bin, '--interactive', '--format', 'repo'], { - cwd: tempDir, - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['modern-diacritics'], true]), + await spawn('npm', ['install'], {}, { cwd: tempDir }) + const { stdout } = await spawn( + 'node', + [bin, '--interactive', '--format', 'repo'], + {}, + { + cwd: tempDir, + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['modern-diacritics'], true]), + }, }, - }) + ) - output.should.include('https://github.com/Mitsunee/modern-diacritics') + stdout.should.include('https://github.com/Mitsunee/modern-diacritics') } finally { await fs.rm(tempDir, { recursive: true, force: true }) } diff --git a/test/peer.test.ts b/test/peer.test.ts index 0bdc6c3c..0392d589 100644 --- a/test/peer.test.ts +++ b/test/peer.test.ts @@ -10,7 +10,7 @@ describe('peer dependencies', function () { it('peer dependencies of installed packages are ignored by default', async () => { const cwd = path.join(__dirname, 'test-data/peer/') try { - await spawnNpm('install', {}, { cwd }) + await spawnNpm('install', {}, {}, { cwd }) const upgrades = await ncu({ cwd }) upgrades!.should.deep.equal({ 'ncu-test-return-version': '2.0.0', @@ -24,7 +24,7 @@ describe('peer dependencies', function () { it('peer dependencies of installed packages are checked when using option peer', async () => { const cwd = path.join(__dirname, 'test-data/peer/') try { - await spawnNpm('install', {}, { cwd }) + await spawnNpm('install', {}, {}, { cwd }) const upgrades = await ncu({ cwd, peer: true }) upgrades!.should.deep.equal({ 'ncu-test-return-version': '1.1.0', @@ -38,7 +38,7 @@ describe('peer dependencies', function () { it('peer dependencies of installed packages are checked iteratively when using option peer', async () => { const cwd = path.join(__dirname, 'test-data/peer-update/') try { - await spawnNpm('install', {}, { cwd }) + await spawnNpm('install', {}, {}, { cwd }) const upgrades = await ncu({ cwd, peer: true }) upgrades!.should.deep.equal({ 'ncu-test-return-version': '1.1.0', From ccb3e0cbae6291bf67e3c10a567ff77f43031197 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Dec 2023 17:07:18 +0000 Subject: [PATCH 05/60] Fix --target semver with yarn and pnpm. --- src/package-managers/pnpm.ts | 3 ++- src/package-managers/yarn.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/package-managers/pnpm.ts b/src/package-managers/pnpm.ts index c76d8339..536cfab1 100644 --- a/src/package-managers/pnpm.ts +++ b/src/package-managers/pnpm.ts @@ -22,6 +22,7 @@ import { minor as npmMinor, newest as npmNewest, patch as npmPatch, + semver as npmSemver, } from './npm' // return type of pnpm ls --json @@ -109,7 +110,7 @@ export const latest = withNpmWorkspaceConfig(npmLatest) export const minor = withNpmWorkspaceConfig(npmMinor) export const newest = withNpmWorkspaceConfig(npmNewest) export const patch = withNpmWorkspaceConfig(npmPatch) -export const semver = withNpmWorkspaceConfig(npmPatch) +export const semver = withNpmWorkspaceConfig(npmSemver) export { defaultPrefix, getPeerDependencies, packageAuthorChanged } from './npm' diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index 6c943a87..b2133667 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -24,6 +24,7 @@ import { minor as npmMinor, newest as npmNewest, patch as npmPatch, + semver as npmSemver, } from './npm' interface ParsedDep { @@ -287,6 +288,6 @@ export const latest = withNpmConfigFromYarn(npmLatest) export const minor = withNpmConfigFromYarn(npmMinor) export const newest = withNpmConfigFromYarn(npmNewest) export const patch = withNpmConfigFromYarn(npmPatch) -export const semver = withNpmConfigFromYarn(npmPatch) +export const semver = withNpmConfigFromYarn(npmSemver) export default spawnYarn From 7b72f2e501acbe83cbefe682da6e84847d57646f Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Dec 2023 17:08:24 +0000 Subject: [PATCH 06/60] 16.14.12 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59dbef58..f413ddac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "16.14.11", + "version": "16.14.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "16.14.11", + "version": "16.14.12", "license": "Apache-2.0", "dependencies": { "chalk": "^5.3.0", diff --git a/package.json b/package.json index 44f01b9f..1a21b40e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "16.14.11", + "version": "16.14.12", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From e966c2ff96333aafee74f7907da630f88a54af73 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:25:02 +0000 Subject: [PATCH 07/60] Remove husky. --- {.husky => .hooks}/post-commit | 6 ++---- .hooks/pre-push | 9 +++++++++ .husky/.gitignore | 1 - .husky/pre-push | 5 ----- package-lock.json | 16 ---------------- package.json | 3 +-- src/scripts/install-hooks | 8 ++++++++ 7 files changed, 20 insertions(+), 28 deletions(-) rename {.husky => .hooks}/post-commit (91%) create mode 100755 .hooks/pre-push delete mode 100644 .husky/.gitignore delete mode 100755 .husky/pre-push create mode 100755 src/scripts/install-hooks diff --git a/.husky/post-commit b/.hooks/post-commit similarity index 91% rename from .husky/post-commit rename to .hooks/post-commit index 2a256927..05dd85fc 100755 --- a/.husky/post-commit +++ b/.hooks/post-commit @@ -1,6 +1,4 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - +#!/bin/bash SHORT_SHA=$(git rev-parse HEAD) LINT_LOG="$TMPDIR"/lint."$SHORT_SHA".log @@ -42,4 +40,4 @@ fi # first error shown. # We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by # stray output. -npm run lint:src | strip &> "$LINT_LOG" || notify "Lint Error" & +npm run lint:src | strip &>"$LINT_LOG" || notify "Lint Error" & diff --git a/.hooks/pre-push b/.hooks/pre-push new file mode 100755 index 00000000..af781112 --- /dev/null +++ b/.hooks/pre-push @@ -0,0 +1,9 @@ +#!/bin/bash +fail=0 + +npm run lint || fail=1 +npm run prettier -- --check || fail=1 + +if [ "$fail" -ne 0 ]; then + exit 1 +fi diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index c9cdc63b..00000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ \ No newline at end of file diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index 90f2982b..00000000 --- a/.husky/pre-push +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run lint -npm run prettier -- --check \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f413ddac..459452e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -88,7 +88,6 @@ "eslint-plugin-jsdoc": "^41.1.2", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "husky": "^8.0.3", "lockfile-lint": "^4.10.6", "markdownlint-cli": "0.34.0", "mocha": "^10.2.0", @@ -4407,21 +4406,6 @@ "ms": "^2.0.0" } }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", diff --git a/package.json b/package.json index 1a21b40e..9e952a77 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "lint:lockfile": "lockfile-lint", "lint:markdown": "markdownlint \"**/*.md\" --ignore node_modules --ignore build --config .markdownlint.js", "lint:src": "eslint --cache --cache-location node_modules/.cache/.eslintcache --ignore-path .gitignore --report-unused-disable-directives .", - "prepare": "husky install && bash test/bun-setup.sh", + "prepare": "src/scripts/install-hooks && bash test/bun-setup.sh", "prepublishOnly": "npm run build", "prettier": "prettier .", "test": "mocha test test/package-managers/*", @@ -131,7 +131,6 @@ "eslint-plugin-jsdoc": "^41.1.2", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "husky": "^8.0.3", "lockfile-lint": "^4.10.6", "markdownlint-cli": "0.34.0", "mocha": "^10.2.0", diff --git a/src/scripts/install-hooks b/src/scripts/install-hooks new file mode 100755 index 00000000..ed372096 --- /dev/null +++ b/src/scripts/install-hooks @@ -0,0 +1,8 @@ +#!/bin/bash + +# Use a simple bash script to install git hooks. +# husky was slow and did not play nice with nvm. +# lefthook suppressed the post-commit notification for some reason. + +# change the git hook directory from .git/hooks to .hooks +git config core.hooksPath .hooks From 2854ed2777857ee183aaaa4d9b80ff7a60e1ac30 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:27:33 +0000 Subject: [PATCH 08/60] post-commit: Remove git commit from notification title. --- .hooks/post-commit | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.hooks/post-commit b/.hooks/post-commit index 05dd85fc..9d784771 100755 --- a/.hooks/post-commit +++ b/.hooks/post-commit @@ -11,18 +11,14 @@ strip() { notify() { # if osascript is not supported, do nothing if [ -f /usr/bin/osascript ]; then - # get ' ' - COMMIT_INFO=$(git log --oneline -n 1 --format="%h %s") - # read back in the lint errors - # TODO: update for each tye of error ERRORS=$(cat "$LINT_LOG" | sed 1,4d) # Trigger apple- or OSA-script on supported platforms - /usr/bin/osascript -e "display notification \"$ERRORS\" with title \"ncu: $COMMIT_INFO: $*\"" + /usr/bin/osascript -e "display notification \"$ERRORS\" with title \"$*\"" fi - # always clean up the lint output, and do not clag-up TMPDIR + # clean up rm "$LINT_LOG" } @@ -35,9 +31,7 @@ if [ -z "$branch" ]; then exit 0 fi -# Lint asynchrously, not blocking the terminal and piping all output to a file. -# IFF lint fails trigger a pop-up (on supported platforms) with at least the -# first error shown. -# We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by -# stray output. +# Lint in the background, not blocking the terminal and piping all output to a file. +# If the lint fails, trigger a notification (on supported platforms) with at least the first error shown. +# We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by stray output. npm run lint:src | strip &>"$LINT_LOG" || notify "Lint Error" & From f74974f125876f2d09ea7d53c3b312a0665bc524 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:55:02 +0000 Subject: [PATCH 09/60] Downgrade update-notifier due to node v18 requirement. --- .ncurc.js | 2 ++ package-lock.json | 85 +++++++++++++++++++++++++++++++---------------- package.json | 2 +- 3 files changed, 59 insertions(+), 30 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index fbe75287..1b47e3bf 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -23,5 +23,7 @@ module.exports = { // v0.60.0 breaks cli option description output // https://github.com/YousefED/typescript-json-schema/issues/568 'typescript-json-schema', + // node >= 18 + 'update-notifier', ], } diff --git a/package-lock.json b/package-lock.json index 1ecc0a90..371e3015 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "update-notifier": "^6.0.2" }, "bin": { "ncu": "build/src/bin/cli.js", @@ -1799,7 +1799,6 @@ "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0.tgz", "integrity": "sha512-jVZa3njBv6tcOUw34nlUdUM/40wwtm/gnVF8rtk0tA6vNcokqYI8CFU1BZjlpFwUSZaXxYkrtuPE/f2MMFlTxQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" @@ -1813,7 +1812,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -1823,7 +1821,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2693,6 +2690,20 @@ "node": ">=10" } }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3979,7 +3990,6 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4739,6 +4749,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -5015,6 +5036,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -5072,20 +5104,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-in-ci": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", - "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", - "bin": { - "is-in-ci": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -5296,6 +5314,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "engines": { + "node": ">=12" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -8279,8 +8305,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/ssri": { "version": "10.0.4", @@ -9197,25 +9222,27 @@ } }, "node_modules/update-notifier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", - "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dependencies": { - "boxen": "^7.1.1", - "chalk": "^5.3.0", + "boxen": "^7.0.0", + "chalk": "^5.0.1", "configstore": "^6.0.0", + "has-yarn": "^3.0.0", "import-lazy": "^4.0.0", - "is-in-ci": "^0.1.0", + "is-ci": "^3.0.1", "is-installed-globally": "^0.4.0", "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", "latest-version": "^7.0.0", "pupa": "^3.1.0", - "semver": "^7.5.4", + "semver": "^7.3.7", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=18" + "node": ">=14.16" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" diff --git a/package.json b/package.json index 02fe3544..6088f337 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "update-notifier": "^6.0.2" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.2.1", From d4a56fd24a0c99d4264881f100cb4e40d7cc08e1 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:56:08 +0000 Subject: [PATCH 10/60] Override @yarnpkg/parsers which requires node v18. And lockfile-lint's engine does not reflect the dependency's engine. --- package-lock.json | 82 +++++++++++++++++++++++------------------------ package.json | 3 ++ 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index 371e3015..55934d38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1794,41 +1794,6 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0.tgz", - "integrity": "sha512-jVZa3njBv6tcOUw34nlUdUM/40wwtm/gnVF8rtk0tA6vNcokqYI8CFU1BZjlpFwUSZaXxYkrtuPE/f2MMFlTxQ==", - "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -5674,6 +5639,47 @@ "node": ">=16.0.0" } }, + "node_modules/lockfile-lint-api/node_modules/@yarnpkg/parsers": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", + "integrity": "sha512-48GtaB/WqUQSLSmlk7Evawx+r0rht6Pe91TXdjFQquC7ZV5RUbwA5pm6wnoWXiwE3tEzvGj6e/0/YLBrlBaqfg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/lockfile-lint-api/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/lockfile-lint-api/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/lockfile-lint-api/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/lockfile-lint/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -8769,12 +8775,6 @@ "json5": "lib/cli.js" } }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/tuf-js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", diff --git a/package.json b/package.json index 6088f337..b1a8645c 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,9 @@ "bugs": { "url": "https://github.com/raineorshine/npm-check-updates/issues" }, + "overrides": { + "@yarnpkg/parsers": "2.6.0" + }, "dependencies": { "chalk": "^5.3.0", "cli-table3": "^0.6.3", From 6bac31a546910b8c37effa025e6c1dcab9b4334d Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:25:02 +0000 Subject: [PATCH 11/60] Remove husky. --- {.husky => .hooks}/post-commit | 6 ++---- .hooks/pre-push | 9 +++++++++ .husky/.gitignore | 1 - .husky/pre-push | 5 ----- .npmrc | 1 + package-lock.json | 16 ---------------- package.json | 3 +-- src/scripts/install-hooks | 8 ++++++++ 8 files changed, 21 insertions(+), 28 deletions(-) rename {.husky => .hooks}/post-commit (91%) create mode 100755 .hooks/pre-push delete mode 100644 .husky/.gitignore delete mode 100755 .husky/pre-push create mode 100644 .npmrc create mode 100755 src/scripts/install-hooks diff --git a/.husky/post-commit b/.hooks/post-commit similarity index 91% rename from .husky/post-commit rename to .hooks/post-commit index 2a256927..05dd85fc 100755 --- a/.husky/post-commit +++ b/.hooks/post-commit @@ -1,6 +1,4 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - +#!/bin/bash SHORT_SHA=$(git rev-parse HEAD) LINT_LOG="$TMPDIR"/lint."$SHORT_SHA".log @@ -42,4 +40,4 @@ fi # first error shown. # We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by # stray output. -npm run lint:src | strip &> "$LINT_LOG" || notify "Lint Error" & +npm run lint:src | strip &>"$LINT_LOG" || notify "Lint Error" & diff --git a/.hooks/pre-push b/.hooks/pre-push new file mode 100755 index 00000000..af781112 --- /dev/null +++ b/.hooks/pre-push @@ -0,0 +1,9 @@ +#!/bin/bash +fail=0 + +npm run lint || fail=1 +npm run prettier -- --check || fail=1 + +if [ "$fail" -ne 0 ]; then + exit 1 +fi diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index c9cdc63b..00000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ \ No newline at end of file diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index 90f2982b..00000000 --- a/.husky/pre-push +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run lint -npm run prettier -- --check \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..af31c2ab --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +script-shell = bash \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f413ddac..459452e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -88,7 +88,6 @@ "eslint-plugin-jsdoc": "^41.1.2", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "husky": "^8.0.3", "lockfile-lint": "^4.10.6", "markdownlint-cli": "0.34.0", "mocha": "^10.2.0", @@ -4407,21 +4406,6 @@ "ms": "^2.0.0" } }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", diff --git a/package.json b/package.json index 1a21b40e..a81d2392 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "lint:lockfile": "lockfile-lint", "lint:markdown": "markdownlint \"**/*.md\" --ignore node_modules --ignore build --config .markdownlint.js", "lint:src": "eslint --cache --cache-location node_modules/.cache/.eslintcache --ignore-path .gitignore --report-unused-disable-directives .", - "prepare": "husky install && bash test/bun-setup.sh", + "prepare": "src/scripts/install-hooks && test/bun-setup.sh", "prepublishOnly": "npm run build", "prettier": "prettier .", "test": "mocha test test/package-managers/*", @@ -131,7 +131,6 @@ "eslint-plugin-jsdoc": "^41.1.2", "eslint-plugin-n": "^15.7.0", "eslint-plugin-promise": "^6.1.1", - "husky": "^8.0.3", "lockfile-lint": "^4.10.6", "markdownlint-cli": "0.34.0", "mocha": "^10.2.0", diff --git a/src/scripts/install-hooks b/src/scripts/install-hooks new file mode 100755 index 00000000..ed372096 --- /dev/null +++ b/src/scripts/install-hooks @@ -0,0 +1,8 @@ +#!/bin/bash + +# Use a simple bash script to install git hooks. +# husky was slow and did not play nice with nvm. +# lefthook suppressed the post-commit notification for some reason. + +# change the git hook directory from .git/hooks to .hooks +git config core.hooksPath .hooks From 4ab2c9d19aafe43e6bdaa871298c7f6ee124fb3c Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 18 Dec 2023 01:27:33 +0000 Subject: [PATCH 12/60] post-commit: Remove git commit from notification title. --- .hooks/post-commit | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.hooks/post-commit b/.hooks/post-commit index 05dd85fc..9d784771 100755 --- a/.hooks/post-commit +++ b/.hooks/post-commit @@ -11,18 +11,14 @@ strip() { notify() { # if osascript is not supported, do nothing if [ -f /usr/bin/osascript ]; then - # get ' ' - COMMIT_INFO=$(git log --oneline -n 1 --format="%h %s") - # read back in the lint errors - # TODO: update for each tye of error ERRORS=$(cat "$LINT_LOG" | sed 1,4d) # Trigger apple- or OSA-script on supported platforms - /usr/bin/osascript -e "display notification \"$ERRORS\" with title \"ncu: $COMMIT_INFO: $*\"" + /usr/bin/osascript -e "display notification \"$ERRORS\" with title \"$*\"" fi - # always clean up the lint output, and do not clag-up TMPDIR + # clean up rm "$LINT_LOG" } @@ -35,9 +31,7 @@ if [ -z "$branch" ]; then exit 0 fi -# Lint asynchrously, not blocking the terminal and piping all output to a file. -# IFF lint fails trigger a pop-up (on supported platforms) with at least the -# first error shown. -# We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by -# stray output. +# Lint in the background, not blocking the terminal and piping all output to a file. +# If the lint fails, trigger a notification (on supported platforms) with at least the first error shown. +# We pipe output so that the terminal (tmux, vim, emacs etc.) isn't borked by stray output. npm run lint:src | strip &>"$LINT_LOG" || notify "Lint Error" & From 94a91285b74f34410cd796dca5b715a09b20feaf Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 25 Jan 2024 18:36:14 +0000 Subject: [PATCH 13/60] refactor: pnpm and yarn --- src/package-managers/pnpm.ts | 30 ++++++++++-------------------- src/package-managers/yarn.ts | 24 ++++++++---------------- 2 files changed, 18 insertions(+), 36 deletions(-) diff --git a/src/package-managers/pnpm.ts b/src/package-managers/pnpm.ts index 536cfab1..e40f31f2 100644 --- a/src/package-managers/pnpm.ts +++ b/src/package-managers/pnpm.ts @@ -13,17 +13,7 @@ import { NpmOptions } from '../types/NpmOptions' import { Options } from '../types/Options' import { SpawnOptions } from '../types/SpawnOptions' import { Version } from '../types/Version' -import { - normalizeNpmConfig, - distTag as npmDistTag, - greatest as npmGreatest, - latest as npmLatest, - list as npmList, - minor as npmMinor, - newest as npmNewest, - patch as npmPatch, - semver as npmSemver, -} from './npm' +import * as npm from './npm' // return type of pnpm ls --json type PnpmList = { @@ -53,7 +43,7 @@ const npmConfigFromPnpmWorkspace = memoize(async (options: Options): Promise> => { // use npm for local ls for completeness // this should never happen since list is only called in runGlobal -> getInstalledPackages - if (!options.global) return npmList(options) + if (!options.global) return npm.list(options) const cmd = process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm' const result = JSON.parse(await spawn(cmd, ['ls', '-g', '--json'])) as PnpmList @@ -104,13 +94,13 @@ const withNpmWorkspaceConfig = async (packageName, currentVersion, options = {}) => getVersion(packageName, currentVersion, options, {}, await npmConfigFromPnpmWorkspace(options)) -export const distTag = withNpmWorkspaceConfig(npmDistTag) -export const greatest = withNpmWorkspaceConfig(npmGreatest) -export const latest = withNpmWorkspaceConfig(npmLatest) -export const minor = withNpmWorkspaceConfig(npmMinor) -export const newest = withNpmWorkspaceConfig(npmNewest) -export const patch = withNpmWorkspaceConfig(npmPatch) -export const semver = withNpmWorkspaceConfig(npmSemver) +export const distTag = withNpmWorkspaceConfig(npm.distTag) +export const greatest = withNpmWorkspaceConfig(npm.greatest) +export const latest = withNpmWorkspaceConfig(npm.latest) +export const minor = withNpmWorkspaceConfig(npm.minor) +export const newest = withNpmWorkspaceConfig(npm.newest) +export const patch = withNpmWorkspaceConfig(npm.patch) +export const semver = withNpmWorkspaceConfig(npm.semver) export { defaultPrefix, getPeerDependencies, packageAuthorChanged } from './npm' diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index b2133667..e723bb6d 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -17,15 +17,7 @@ import { NpmOptions } from '../types/NpmOptions' import { Options } from '../types/Options' import { SpawnOptions } from '../types/SpawnOptions' import { VersionSpec } from '../types/VersionSpec' -import { - distTag as npmDistTag, - greatest as npmGreatest, - latest as npmLatest, - minor as npmMinor, - newest as npmNewest, - patch as npmPatch, - semver as npmSemver, -} from './npm' +import * as npm from './npm' interface ParsedDep { version: string @@ -282,12 +274,12 @@ const withNpmConfigFromYarn = async (packageName, currentVersion, options = {}) => getVersion(packageName, currentVersion, options, await npmConfigFromYarn(options)) -export const distTag = withNpmConfigFromYarn(npmDistTag) -export const greatest = withNpmConfigFromYarn(npmGreatest) -export const latest = withNpmConfigFromYarn(npmLatest) -export const minor = withNpmConfigFromYarn(npmMinor) -export const newest = withNpmConfigFromYarn(npmNewest) -export const patch = withNpmConfigFromYarn(npmPatch) -export const semver = withNpmConfigFromYarn(npmSemver) +export const distTag = withNpmConfigFromYarn(npm.distTag) +export const greatest = withNpmConfigFromYarn(npm.greatest) +export const latest = withNpmConfigFromYarn(npm.latest) +export const minor = withNpmConfigFromYarn(npm.minor) +export const newest = withNpmConfigFromYarn(npm.newest) +export const patch = withNpmConfigFromYarn(npm.patch) +export const semver = withNpmConfigFromYarn(npm.semver) export default spawnYarn From bde687855fdeae4c3c60f8fa15a1514a040cbc08 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 25 Jan 2024 21:49:53 +0000 Subject: [PATCH 14/60] spawnYarn: args must go after yarn options (#1362). --- src/package-managers/bun.ts | 4 +--- src/package-managers/npm.ts | 11 ++++++----- src/package-managers/yarn.ts | 4 +++- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/package-managers/bun.ts b/src/package-managers/bun.ts index 022ab414..c759e9fa 100644 --- a/src/package-managers/bun.ts +++ b/src/package-managers/bun.ts @@ -19,12 +19,10 @@ async function spawnBun( programError(npmOptions, 'Bun not yet supported on Windows') } - args = Array.isArray(args) ? args : [args] - const fullArgs = [ - ...args, ...(npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : []), ...(npmOptions.location === 'global' ? ['--global'] : []), + ...(Array.isArray(args) ? args : [args]), ] return spawn('bun', fullArgs, spawnOptions) diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index 64ee279c..af943b13 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -549,17 +549,18 @@ async function spawnNpm( const cmd = process.platform === 'win32' ? 'npm.cmd' : 'npm' args = Array.isArray(args) ? args : [args] - const fullArgs = args.concat( - npmOptions.location + const fullArgs = [ + ...(npmOptions.location ? (await isGlobalDeprecated()) ? `--location=${npmOptions.location}` : npmOptions.location === 'global' ? '--global' : '' - : [], - npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : [], + : []), + ...(npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : []), '--json', - ) + ...(Array.isArray(args) ? args : [args]), + ] return spawn(cmd, fullArgs, spawnOptions) } diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index e723bb6d..95dfc8dc 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -196,11 +196,13 @@ async function spawnYarn( const fullArgs = [ ...(yarnOptions.location === 'global' ? 'global' : []), - ...(Array.isArray(args) ? args : [args]), '--depth=0', ...(yarnOptions.prefix ? `--prefix=${yarnOptions.prefix}` : []), '--json', '--no-progress', + // args must go after yarn options, otherwise they are passed through to npm scripts + // https://github.com/raineorshine/npm-check-updates/issues/1362 + ...(Array.isArray(args) ? args : [args]), ] return spawn(cmd, fullArgs, spawnOptions) From 7c88f2dc2ae2a909a26d3af6eb0e21ef38d26450 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 25 Jan 2024 22:10:26 +0000 Subject: [PATCH 15/60] 16.14.13 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 459452e5..8c0b4210 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "16.14.12", + "version": "16.14.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "16.14.12", + "version": "16.14.13", "license": "Apache-2.0", "dependencies": { "chalk": "^5.3.0", diff --git a/package.json b/package.json index a81d2392..ec785222 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "16.14.12", + "version": "16.14.13", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From a86905bc68ce60e8351cb04424a364e81c37d6be Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 26 Jan 2024 17:05:18 +0000 Subject: [PATCH 16/60] global: Program error on getInstalledPackages error. --- src/lib/runGlobal.ts | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/lib/runGlobal.ts b/src/lib/runGlobal.ts index 47011f8c..3d4c91a5 100644 --- a/src/lib/runGlobal.ts +++ b/src/lib/runGlobal.ts @@ -5,6 +5,7 @@ import { Options } from '../types/Options' import chalk from './chalk' import getInstalledPackages from './getInstalledPackages' import { keyValueBy } from './keyValueBy' +import programError from './programError' import upgradePackageDefinitions from './upgradePackageDefinitions' /** Checks global dependencies for upgrades. */ @@ -13,19 +14,24 @@ async function runGlobal(options: Options): Promise | void> { printSorted(options, options, 'verbose') print(options, '\nGetting installed packages', 'verbose') - const globalPackages = await getInstalledPackages( - pick(options, [ - 'cli', - 'cwd', - 'filter', - 'filterVersion', - 'global', - 'packageManager', - 'prefix', - 'reject', - 'rejectVersion', - ]), - ) + let globalPackages: Index = {} + try { + globalPackages = await getInstalledPackages( + pick(options, [ + 'cli', + 'cwd', + 'filter', + 'filterVersion', + 'global', + 'packageManager', + 'prefix', + 'reject', + 'rejectVersion', + ]), + ) + } catch (e: any) { + programError(options, e.message) + } print(options, 'globalPackages:', 'verbose') print(options, globalPackages, 'verbose') From cd705ecb1e385038d697f15d25cd67af8aed2a74 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 26 Jan 2024 17:15:03 +0000 Subject: [PATCH 17/60] global: Fix package manager args destructuring (#1365). --- src/package-managers/bun.ts | 2 +- src/package-managers/npm.ts | 10 +++++----- src/package-managers/yarn.ts | 4 ++-- test/global.test.ts | 9 ++++++--- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/package-managers/bun.ts b/src/package-managers/bun.ts index c759e9fa..31ad0b3b 100644 --- a/src/package-managers/bun.ts +++ b/src/package-managers/bun.ts @@ -20,7 +20,7 @@ async function spawnBun( } const fullArgs = [ - ...(npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : []), + ...(npmOptions.prefix ? [`--prefix=${npmOptions.prefix}`] : []), ...(npmOptions.location === 'global' ? ['--global'] : []), ...(Array.isArray(args) ? args : [args]), ] diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index af943b13..73506331 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -547,20 +547,20 @@ async function spawnNpm( spawnOptions: Index = {}, ): Promise { const cmd = process.platform === 'win32' ? 'npm.cmd' : 'npm' - args = Array.isArray(args) ? args : [args] const fullArgs = [ ...(npmOptions.location ? (await isGlobalDeprecated()) - ? `--location=${npmOptions.location}` + ? [`--location=${npmOptions.location}`] : npmOptions.location === 'global' - ? '--global' - : '' + ? ['--global'] + : [] : []), - ...(npmOptions.prefix ? `--prefix=${npmOptions.prefix}` : []), + ...(npmOptions.prefix ? [`--prefix=${npmOptions.prefix}`] : []), '--json', ...(Array.isArray(args) ? args : [args]), ] + return spawn(cmd, fullArgs, spawnOptions) } diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index 95dfc8dc..3660d258 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -195,9 +195,9 @@ async function spawnYarn( const cmd = process.platform === 'win32' ? 'yarn.cmd' : 'yarn' const fullArgs = [ - ...(yarnOptions.location === 'global' ? 'global' : []), + ...(yarnOptions.location === 'global' ? ['global'] : []), + ...(yarnOptions.prefix ? [`--prefix=${yarnOptions.prefix}`] : []), '--depth=0', - ...(yarnOptions.prefix ? `--prefix=${yarnOptions.prefix}` : []), '--json', '--no-progress', // args must go after yarn options, otherwise they are passed through to npm scripts diff --git a/test/global.test.ts b/test/global.test.ts index 64a62e04..38cca4bf 100644 --- a/test/global.test.ts +++ b/test/global.test.ts @@ -1,3 +1,4 @@ +import { expect } from 'chai' import path from 'path' import spawn from 'spawn-please' import chaiSetup from './helpers/chaiSetup' @@ -8,9 +9,11 @@ const bin = path.join(__dirname, '../build/src/bin/cli.js') describe('global', () => { // TODO: Hangs on Windows - const itMaySkip = process.platform === 'win32' ? it.skip : it - itMaySkip('global should run', async () => { + const itSkipWindows = process.platform === 'win32' ? it.skip : it + itSkipWindows('global should run', async () => { // to speed up the test, only check npm (which is always installed globally) - await spawn('node', [bin, '--global', 'npm']) + const stdout = await spawn('node', [bin, '--jsonAll', '--global', 'npm']) + const json = JSON.parse(stdout) + expect(json).to.have.property('npm') }) }) From 9803875cf2502dbd296e5c0c8b2f80bc1c7dcf0f Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 26 Jan 2024 17:16:38 +0000 Subject: [PATCH 18/60] 16.14.14 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c0b4210..593e71dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "16.14.13", + "version": "16.14.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "16.14.13", + "version": "16.14.14", "license": "Apache-2.0", "dependencies": { "chalk": "^5.3.0", diff --git a/package.json b/package.json index ec785222..d553f925 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "16.14.13", + "version": "16.14.14", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From de4f4b4f55fefb818e4b3bc5f8d9b444d9022056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro?= Date: Sat, 10 Feb 2024 14:02:27 +0100 Subject: [PATCH 19/60] Support `semver` target with `gitTags` package manager (#1368) --- src/package-managers/gitTags.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/package-managers/gitTags.ts b/src/package-managers/gitTags.ts index a3dd8767..c0ad3d84 100644 --- a/src/package-managers/gitTags.ts +++ b/src/package-managers/gitTags.ts @@ -1,7 +1,7 @@ /** Fetches package metadata from Github tags. */ import parseGithubUrl from 'parse-github-url' import remoteGitTags from 'remote-git-tags' -import semver from 'semver' +import { valid } from 'semver' import { print } from '../lib/logging' import * as versionUtil from '../lib/version-util' import { GetVersion } from '../types/GetVersion' @@ -42,7 +42,7 @@ const getSortedVersions = async (name: string, declaration: VersionSpec, options .map(versionUtil.fixPseudoVersion) // do not pass semver.valid reference directly since the mapping index will be interpreted as the loose option // https://github.com/npm/node-semver#functions - .filter(tag => semver.valid(tag)) + .filter(tag => valid(tag)) .sort(versionUtil.compareVersions) return tags @@ -85,6 +85,12 @@ export const greatestLevel = export const minor = greatestLevel('minor') export const patch = greatestLevel('patch') +/** semver is not possible on a remote Git URL, do nothing. */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const semver: GetVersion = async (_name: string, _declaration: VersionSpec, _options?: Options) => { + return { version: null } +} + // use greatest for newest rather than leaving newest undefined // this allows a mix of npm and github urls to be used in a package file without causing an "Unsupported target" error export const newest = greatest From 80a9af383ed5f372bf0884b6a215c88a8aef0050 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 10 Feb 2024 13:00:13 +0000 Subject: [PATCH 20/60] comment --- src/package-managers/gitTags.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/package-managers/gitTags.ts b/src/package-managers/gitTags.ts index c0ad3d84..4cf8e98f 100644 --- a/src/package-managers/gitTags.ts +++ b/src/package-managers/gitTags.ts @@ -85,7 +85,8 @@ export const greatestLevel = export const minor = greatestLevel('minor') export const patch = greatestLevel('patch') -/** semver is not possible on a remote Git URL, do nothing. */ +/** All git tags are exact versions, so --target semver should never upgrade git tags. */ +// https://github.com/raineorshine/npm-check-updates/pull/1368 // eslint-disable-next-line @typescript-eslint/no-unused-vars export const semver: GetVersion = async (_name: string, _declaration: VersionSpec, _options?: Options) => { return { version: null } From 29f0e5191aac085d1fcc0016f9bb7721c8263828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro?= Date: Sat, 10 Feb 2024 14:02:27 +0100 Subject: [PATCH 21/60] Support `semver` target with `gitTags` package manager (#1368) --- src/package-managers/gitTags.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/package-managers/gitTags.ts b/src/package-managers/gitTags.ts index 2e036fa5..1fb60673 100644 --- a/src/package-managers/gitTags.ts +++ b/src/package-managers/gitTags.ts @@ -1,7 +1,7 @@ /** Fetches package metadata from Github tags. */ import parseGithubUrl from 'parse-github-url' import remoteGitTags from 'remote-git-tags' -import semver from 'semver' +import { valid } from 'semver' import { print } from '../lib/logging' import * as versionUtil from '../lib/version-util' import { GetVersion } from '../types/GetVersion' @@ -43,7 +43,7 @@ const getSortedVersions = async (name: string, declaration: VersionSpec, options .map(versionUtil.fixPseudoVersion) // do not pass semver.valid reference directly since the mapping index will be interpreted as the loose option // https://github.com/npm/node-semver#functions - .filter(tag => semver.valid(tag)) + .filter(tag => valid(tag)) .sort(versionUtil.compareVersions) return tags @@ -86,6 +86,12 @@ export const greatestLevel = export const minor = greatestLevel('minor') export const patch = greatestLevel('patch') +/** semver is not possible on a remote Git URL, do nothing. */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const semver: GetVersion = async (_name: string, _declaration: VersionSpec, _options?: Options) => { + return { version: null } +} + // use greatest for newest rather than leaving newest undefined // this allows a mix of npm and github urls to be used in a package file without causing an "Unsupported target" error export const newest = greatest From fae7f11f1f0991419602abdff9f79b17f39cd0dc Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 10 Feb 2024 13:00:13 +0000 Subject: [PATCH 22/60] comment --- src/package-managers/gitTags.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/package-managers/gitTags.ts b/src/package-managers/gitTags.ts index 1fb60673..e3424f04 100644 --- a/src/package-managers/gitTags.ts +++ b/src/package-managers/gitTags.ts @@ -86,7 +86,8 @@ export const greatestLevel = export const minor = greatestLevel('minor') export const patch = greatestLevel('patch') -/** semver is not possible on a remote Git URL, do nothing. */ +/** All git tags are exact versions, so --target semver should never upgrade git tags. */ +// https://github.com/raineorshine/npm-check-updates/pull/1368 // eslint-disable-next-line @typescript-eslint/no-unused-vars export const semver: GetVersion = async (_name: string, _declaration: VersionSpec, _options?: Options) => { return { version: null } From ffeeee4355ddd5bad8b5837c93981a404eb369bc Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 10 Feb 2024 13:04:38 +0000 Subject: [PATCH 23/60] 16.14.15 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 593e71dc..357b0850 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "16.14.14", + "version": "16.14.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "16.14.14", + "version": "16.14.15", "license": "Apache-2.0", "dependencies": { "chalk": "^5.3.0", diff --git a/package.json b/package.json index d553f925..8aa9a58b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "16.14.14", + "version": "16.14.15", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From 26b53a14b7865ac21306811ad7b97303d92b46e2 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 24 Feb 2024 17:09:32 +0000 Subject: [PATCH 24/60] README --- README.md | 10 +++++++--- src/cli-options.ts | 25 +++++++++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e7fadb31..c7e90de3 100644 --- a/README.md +++ b/README.md @@ -444,7 +444,9 @@ Usage: ncu --filter [p] ncu -f [p] -Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. +Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. Only included packages will be checked with `--peer`. + +`--filter` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_. The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. @@ -467,7 +469,7 @@ filterFunction: (name, semver) => { Filters out upgrades based on a user provided function. -`filterResults` runs _after_ new versions are fetched, in contrast to `filter` and `filterVersion`, which run _before_. This allows you to filter out upgrades with `filterResults` based on how the version has changed (e.g. a major version change). +`filterResults` runs _after_ new versions are fetched, in contrast to `filter`, `reject`, `filterVersion`, and `rejectVersion`, which run _before_. This allows you to filter out upgrades with `filterResults` based on how the version has changed (e.g. a major version change). Only available in .ncurc.js or when importing npm-check-updates as a module. @@ -675,7 +677,9 @@ Usage: ncu --reject [p] ncu -x [p] -The inverse of `--filter`. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. +The inverse of `--filter`. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. This will also exclude them from the `--peer` check. + +`--reject` runs _before_ new versions are fetched, in contrast to `--filterResults` which runs _after_. The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. diff --git a/src/cli-options.ts b/src/cli-options.ts index a91942eb..e71abc02 100755 --- a/src/cli-options.ts +++ b/src/cli-options.ts @@ -124,7 +124,9 @@ const extendedHelpFilterResults: ExtendedHelp = ({ markdown }) => { ${codeInline('filterResults')} runs _after_ new versions are fetched, in contrast to ${codeInline( 'filter', - )} and ${codeInline('filterVersion')}, which run _before_. This allows you to filter out upgrades with ${codeInline( + )}, ${codeInline('reject')}, ${codeInline('filterVersion')}, and ${codeInline( + 'rejectVersion', + )}, which run _before_. This allows you to filter out upgrades with ${codeInline( 'filterResults', )} based on how the version has changed (e.g. a major version change). @@ -201,7 +203,16 @@ const extendedHelpInstall: ExtendedHelp = ({ markdown }) => { /** Extended help for the --filter option. */ const extendedHelpFilterFunction: ExtendedHelp = ({ markdown }) => { - return `Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. + /** If markdown, surround inline code with backticks. */ + const codeInline = (code: string) => (markdown ? `\`${code}\`` : code) + + return `Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. Only included packages will be checked with ${codeInline( + '--peer', + )}. + +${codeInline('--filter')} runs _before_ new versions are fetched, in contrast to ${codeInline( + '--filterResults', + )} which runs _after_. The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. @@ -258,7 +269,13 @@ const extendedHelpRejectFunction: ExtendedHelp = ({ markdown }) => { return `The inverse of ${codeInline( '--filter', - )}. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. + )}. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. This will also exclude them from the ${codeInline( + '--peer', + )} check. + +${codeInline('--reject')} runs _before_ new versions are fetched, in contrast to ${codeInline( + '--filterResults', + )} which runs _after_. The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. @@ -299,7 +316,7 @@ ${codeBlock( (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring) @returns True if the package should be excluded, false if it should be included. */`)} -${chalk.green('filterVersionFunction')}: (name, semver) ${chalk.cyan('=>')} { +${chalk.green('rejectVersionFunction')}: (name, semver) ${chalk.cyan('=>')} { ${chalk.red('if')} (name.startsWith(${chalk.yellow(`'@myorg/'`)}) ${chalk.red( '&&', )} parseInt(semver[0]?.major) ${chalk.cyan('>')} ${chalk.cyan(`5`)}) { From 48bd306b623c275ad17b1575ba92b5bb6e31c1c3 Mon Sep 17 00:00:00 2001 From: Torathion <145236102+Torathion@users.noreply.github.com> Date: Fri, 8 Mar 2024 02:08:49 +0100 Subject: [PATCH 25/60] Replace rimraf with built-in fs.rm (#1372) Replace rimraf with built-in fs.rm --- package.json | 2 -- src/lib/doctor.ts | 19 +++++++++--------- test/cache.test.ts | 17 ++++++++-------- test/doctor.test.ts | 49 ++++++++++++++++++++++----------------------- test/peer.test.ts | 14 ++++++------- 5 files changed, 48 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 908afde8..24adc4f4 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.5", "semver": "^7.5.4", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", @@ -114,7 +113,6 @@ "@types/progress": "^2.0.6", "@types/prompts": "^2.4.7", "@types/remote-git-tags": "^4.0.1", - "@types/rimraf": "^3.0.2", "@types/semver": "^7.5.4", "@types/semver-utils": "^1.1.2", "@types/sinon": "^17.0.0", diff --git a/src/lib/doctor.ts b/src/lib/doctor.ts index 5edaf211..60f01ab9 100644 --- a/src/lib/doctor.ts +++ b/src/lib/doctor.ts @@ -1,5 +1,4 @@ import fs from 'fs/promises' -import { rimraf } from 'rimraf' import spawn from 'spawn-please' import { printUpgrades } from '../lib/logging' import spawnBun from '../package-managers/bun' @@ -50,10 +49,10 @@ const npm = ( options.packageManager === 'pnpm' ? spawnPnpm : options.packageManager === 'yarn' - ? spawnYarn - : options.packageManager === 'bun' - ? spawnBun - : spawnNpm + ? spawnYarn + : options.packageManager === 'bun' + ? spawnBun + : spawnNpm )(args, npmOptions, spawnOptionsMerged as any) } @@ -95,10 +94,10 @@ const doctor = async (run: Run, options: Options): Promise => { options.packageManager === 'yarn' ? 'yarn.lock' : options.packageManager === 'pnpm' - ? 'pnpm-lock.yaml' - : options.packageManager === 'bun' - ? 'bun.lockb' - : 'package-lock.json' + ? 'pnpm-lock.yaml' + : options.packageManager === 'bun' + ? 'bun.lockb' + : 'package-lock.json' const { pkg, pkgFile }: PackageInfo = await loadPackageFileForDoctor(options) // flatten all deps into one so we can iterate over them @@ -233,7 +232,7 @@ const doctor = async (run: Run, options: Options): Promise => { if (lockFile) { await fs.writeFile(lockFileName, lockFile) } else { - await rimraf(lockFileName) + await fs.rm(lockFileName, { recursive: true, force: true }) } // save the last package file with passing tests diff --git a/test/cache.test.ts b/test/cache.test.ts index ea501a1e..0d9748f7 100644 --- a/test/cache.test.ts +++ b/test/cache.test.ts @@ -1,6 +1,5 @@ import { expect } from 'chai' import fs from 'fs/promises' -import { rimraf } from 'rimraf' import ncu from '../src/' import { CACHE_DELIMITER, resolvedDefaultCacheFile } from '../src/lib/cache' import { CacheData } from '../src/types/Cacher' @@ -36,7 +35,7 @@ describe('cache', () => { [`ncu-test-alpha${CACHE_DELIMITER}latest`]: '1.0.0', }) } finally { - await rimraf(resolvedDefaultCacheFile) + await fs.rm(resolvedDefaultCacheFile, { recursive: true, force: true }) stub.restore() } }) @@ -50,12 +49,12 @@ describe('cache', () => { 'ncu-test-alpha': '1.0.0', } : options.target === 'greatest' - ? { - 'ncu-test-v2': '2.0.0', - 'ncu-test-tag': '1.2.0-dev.0', - 'ncu-test-alpha': '2.0.0-alpha.2', - } - : null, + ? { + 'ncu-test-v2': '2.0.0', + 'ncu-test-tag': '1.2.0-dev.0', + 'ncu-test-alpha': '2.0.0-alpha.2', + } + : null, ) try { const packageData = { @@ -96,7 +95,7 @@ describe('cache', () => { [`ncu-test-alpha${CACHE_DELIMITER}greatest`]: '2.0.0-alpha.2', }) } finally { - await rimraf(resolvedDefaultCacheFile) + await fs.rm(resolvedDefaultCacheFile, { recursive: true, force: true }) stub.restore() } }) diff --git a/test/doctor.test.ts b/test/doctor.test.ts index 47e70e50..447a556f 100644 --- a/test/doctor.test.ts +++ b/test/doctor.test.ts @@ -1,7 +1,6 @@ import fs from 'fs/promises' import os from 'os' import path from 'path' -import { rimraf } from 'rimraf' import spawn from 'spawn-please' import { cliOptionsMap } from '../src/cli-options' import { chalkInit } from '../src/lib/chalk' @@ -37,10 +36,10 @@ const testPass = ({ packageManager }: { packageManager: PackageManagerName }) => packageManager === 'yarn' ? 'yarn.lock' : packageManager === 'pnpm' - ? 'pnpm-lock.yaml' - : packageManager === 'bun' - ? 'bun.lockb' - : 'package-lock.json', + ? 'pnpm-lock.yaml' + : packageManager === 'bun' + ? 'bun.lockb' + : 'package-lock.json', ) const pkgOriginal = await fs.readFile(path.join(cwd, 'package.json'), 'utf-8') let stdout = '' @@ -69,13 +68,13 @@ const testPass = ({ packageManager }: { packageManager: PackageManagerName }) => // cleanup before assertions in case they fail await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(nodeModulesPath) - rimraf.sync(lockfilePath) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) + await fs.rm(lockfilePath, { recursive: true, force: true }) // delete yarn cache if (packageManager === 'yarn') { - rimraf.sync(path.join(cwd, '.yarn')) - rimraf.sync(path.join(cwd, '.pnp.js')) + await fs.rm(path.join(cwd, '.yarn'), { recursive: true, force: true }) + await fs.rm(path.join(cwd, '.pnp.js'), { recursive: true, force: true }) } // bun prints the run header to stderr instead of stdout @@ -105,10 +104,10 @@ const testFail = ({ packageManager }: { packageManager: PackageManagerName }) => packageManager === 'yarn' ? 'yarn.lock' : packageManager === 'pnpm' - ? 'pnpm-lock.yaml' - : packageManager === 'bun' - ? 'bun.lockb' - : 'package-lock.json', + ? 'pnpm-lock.yaml' + : packageManager === 'bun' + ? 'bun.lockb' + : 'package-lock.json', ) const pkgOriginal = await fs.readFile(path.join(cwd, 'package.json'), 'utf-8') let stdout = '' @@ -134,13 +133,13 @@ const testFail = ({ packageManager }: { packageManager: PackageManagerName }) => } finally { pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(nodeModulesPath) - rimraf.sync(lockfilePath) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) + await fs.rm(lockfilePath, { recursive: true, force: true }) // delete yarn cache if (packageManager === 'yarn') { - rimraf.sync(path.join(cwd, '.yarn')) - rimraf.sync(path.join(cwd, '.pnp.js')) + await fs.rm(path.join(cwd, '.yarn'), { recursive: true, force: true }) + await fs.rm(path.join(cwd, '.pnp.js'), { recursive: true, force: true }) } } @@ -235,8 +234,8 @@ describe('doctor', function () { // cleanup before assertions in case they fail await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(lockfilePath) - rimraf.sync(nodeModulesPath) + await fs.rm(lockfilePath, { recursive: true, force: true }) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) // stderr should be empty stderr.should.equal('') @@ -277,8 +276,8 @@ describe('doctor', function () { // cleanup before assertions in case they fail await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(lockfilePath) - rimraf.sync(nodeModulesPath) + await fs.rm(lockfilePath, { recursive: true, force: true }) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) // stderr should be empty stderr.should.equal('') @@ -318,8 +317,8 @@ describe('doctor', function () { // cleanup before assertions in case they fail await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(lockfilePath) - rimraf.sync(nodeModulesPath) + await fs.rm(lockfilePath, { recursive: true, force: true }) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) // stderr should be empty stderr.should.equal('') @@ -359,8 +358,8 @@ describe('doctor', function () { // cleanup before assertions in case they fail await fs.writeFile(pkgPath, pkgOriginal) - rimraf.sync(lockfilePath) - rimraf.sync(nodeModulesPath) + await fs.rm(lockfilePath, { recursive: true, force: true }) + await fs.rm(nodeModulesPath, { recursive: true, force: true }) // stderr should be empty stderr.should.equal('') diff --git a/test/peer.test.ts b/test/peer.test.ts index 0bdc6c3c..ea9b5b50 100644 --- a/test/peer.test.ts +++ b/test/peer.test.ts @@ -1,5 +1,5 @@ +import fs from 'fs/promises' import path from 'path' -import { rimraf } from 'rimraf' import ncu from '../src/' import spawnNpm from '../src/package-managers/npm' import chaiSetup from './helpers/chaiSetup' @@ -16,8 +16,8 @@ describe('peer dependencies', function () { 'ncu-test-return-version': '2.0.0', }) } finally { - rimraf.sync(path.join(cwd, 'node_modules')) - rimraf.sync(path.join(cwd, 'package-lock.json')) + await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) + await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) } }) @@ -30,8 +30,8 @@ describe('peer dependencies', function () { 'ncu-test-return-version': '1.1.0', }) } finally { - rimraf.sync(path.join(cwd, 'node_modules')) - rimraf.sync(path.join(cwd, 'package-lock.json')) + await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) + await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) } }) @@ -45,8 +45,8 @@ describe('peer dependencies', function () { 'ncu-test-peer-update': '1.1.0', }) } finally { - rimraf.sync(path.join(cwd, 'node_modules')) - rimraf.sync(path.join(cwd, 'package-lock.json')) + await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) + await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) } }) }) From b1a92b0e2d0e2dce3defcfe8276faee84b972ee6 Mon Sep 17 00:00:00 2001 From: Torathion <145236102+Torathion@users.noreply.github.com> Date: Fri, 8 Mar 2024 15:09:21 +0100 Subject: [PATCH 26/60] Replace globby with fast-glob (#1373) Replace globby with fast-glob --- package-lock.json | 56 +++++++-------------------------------- package.json | 2 +- src/lib/getAllPackages.ts | 38 ++++++++++++-------------- 3 files changed, 28 insertions(+), 68 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55934d38..34f6fd3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,11 @@ "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^11.1.0", + "fast-glob": "^3.3.2", "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", "get-stdin": "^8.0.0", - "globby": "^11.0.4", "hosted-git-info": "^5.1.0", "ini": "^4.1.1", "js-yaml": "^4.1.0", @@ -32,7 +32,6 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "rimraf": "^5.0.5", "semver": "^7.5.4", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", @@ -67,7 +66,6 @@ "@types/progress": "^2.0.6", "@types/prompts": "^2.4.7", "@types/remote-git-tags": "^4.0.1", - "@types/rimraf": "^3.0.2", "@types/semver": "^7.5.4", "@types/semver-utils": "^1.1.2", "@types/sinon": "^17.0.0", @@ -1329,17 +1327,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" - } - }, "node_modules/@types/hosted-git-info": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.4.tgz", @@ -1532,17 +1519,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", @@ -2024,6 +2000,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3182,6 +3159,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -4033,10 +4011,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "license": "MIT", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -4560,6 +4537,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -4801,6 +4779,7 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -7327,6 +7306,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7842,23 +7822,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", @@ -8206,6 +8169,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" diff --git a/package.json b/package.json index 24adc4f4..f80f7239 100644 --- a/package.json +++ b/package.json @@ -63,11 +63,11 @@ "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^11.1.0", + "fast-glob": "^3.3.2", "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", "get-stdin": "^8.0.0", - "globby": "^11.0.4", "hosted-git-info": "^5.1.0", "ini": "^4.1.1", "js-yaml": "^4.1.0", diff --git a/src/lib/getAllPackages.ts b/src/lib/getAllPackages.ts index fac81dff..2f9f2fa0 100644 --- a/src/lib/getAllPackages.ts +++ b/src/lib/getAllPackages.ts @@ -1,5 +1,5 @@ +import glob, { type Options as GlobOptions } from 'fast-glob' import fs from 'fs/promises' -import globby from 'globby' import yaml from 'js-yaml' import path from 'path' import untildify from 'untildify' @@ -12,6 +12,10 @@ import programError from './programError' type PnpmWorkspaces = string[] | { packages: string[] } +const globOptions: GlobOptions = { + ignore: ['**/node_modules/**'], +} + /** Reads, parses, and resolves workspaces from a pnpm-workspace file at the same path as the package file. */ const readPnpmWorkspaces = async (pkgPath: string): Promise => { const pnpmWorkspacesPath = path.join(path.dirname(pkgPath), 'pnpm-workspace.yaml') @@ -64,11 +68,7 @@ async function getWorkspacePackageInfos( ) // e.g. [packages/a/package.json, ...] - const allWorkspacePackageFilepaths: string[] = [ - ...globby.sync(workspacePackageGlob, { - ignore: ['**/node_modules/**'], - }), - ] + const allWorkspacePackageFilepaths: string[] = glob.sync(workspacePackageGlob, globOptions) // Get the package names from the package files. // If a package does not have a name, use the folder name. @@ -97,21 +97,19 @@ async function getWorkspacePackageInfos( // add workspace packages // --workspace - const selectedWorkspacePackageInfos: PackageInfo[] = allWorkspacePackageInfos.filter( - (packageInfo: PackageInfo) => + const selectedWorkspacePackageInfos: PackageInfo[] = allWorkspacePackageInfos.filter((packageInfo: PackageInfo) => + /* ignore coverage on optional-chaining */ + /* c8 ignore next */ + options.workspace?.some((workspace: string) => /* ignore coverage on optional-chaining */ /* c8 ignore next */ - options.workspace?.some( - (workspace: string) => - /* ignore coverage on optional-chaining */ - /* c8 ignore next */ - workspaces?.some( - (workspacePattern: string) => - packageInfo.name === workspace || - packageInfo.filepath === - path.join(cwd, path.dirname(workspacePattern), workspace, defaultPackageFilename).replace(/\\/g, '/'), - ), + workspaces?.some( + (workspacePattern: string) => + packageInfo.name === workspace || + packageInfo.filepath === + path.join(cwd, path.dirname(workspacePattern), workspace, defaultPackageFilename).replace(/\\/g, '/'), ), + ), ) return [selectedWorkspacePackageInfos, allWorkspacePackageNames] } @@ -140,9 +138,7 @@ async function getAllPackages(options: Options): Promise<[PackageInfo[], string[ // * NOT a workspace // * a workspace and have requested an upgrade of the workspace-root const globPattern = rootPackageFile.replace(/\\/g, '/') - const rootPackagePaths = globby.sync(globPattern, { - ignore: ['**/node_modules/**'], - }) + const rootPackagePaths = glob.sync(globPattern, globOptions) // realistically there should only be zero or one const rootPackages = [ ...(await Promise.all( From ab0aff0a504f33fa5610ddcbf8c9dd31d3b0e758 Mon Sep 17 00:00:00 2001 From: Torathion <145236102+Torathion@users.noreply.github.com> Date: Fri, 8 Mar 2024 18:39:17 +0100 Subject: [PATCH 27/60] change: replace minimatch with picomatch (#1374) --- package-lock.json | 61 +++++++++++++++++++++++++++++--------- package.json | 4 +-- src/lib/filterAndReject.ts | 8 ++--- 3 files changed, 53 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 34f6fd3a..d90b7407 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,10 +24,10 @@ "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", "p-map": "^4.0.0", "pacote": "17.0.4", "parse-github-url": "^1.0.2", + "picomatch": "^4.0.1", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", @@ -58,11 +58,11 @@ "@types/jsonlines": "^0.1.4", "@types/lodash": "^4.14.200", "@types/make-fetch-happen": "^10.0.3", - "@types/minimatch": "^5.1.2", "@types/mocha": "^10.0.3", "@types/node": "^20.8.10", "@types/pacote": "^11.1.7", "@types/parse-github-url": "^1.0.2", + "@types/picomatch": "^2.3.3", "@types/progress": "^2.0.6", "@types/prompts": "^2.4.7", "@types/remote-git-tags": "^4.0.1", @@ -1404,13 +1404,6 @@ "@types/ssri": "*" } }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/mocha": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.3.tgz", @@ -1486,6 +1479,12 @@ "@types/node": "*" } }, + "node_modules/@types/picomatch": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-2.3.3.tgz", + "integrity": "sha512-Yll76ZHikRFCyz/pffKGjrCwe/le2CDwOP5F210KQo27kpRE46U2rDnzikNlVn6/ezH3Mhn46bJMTfeVTtcYMg==", + "dev": true + }, "node_modules/@types/progress": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/progress/-/progress-2.0.6.tgz", @@ -1940,6 +1939,18 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -6081,6 +6092,17 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -7323,12 +7345,11 @@ } }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -7673,6 +7694,18 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", diff --git a/package.json b/package.json index f80f7239..bf0f9836 100644 --- a/package.json +++ b/package.json @@ -75,10 +75,10 @@ "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", "p-map": "^4.0.0", "pacote": "17.0.4", "parse-github-url": "^1.0.2", + "picomatch": "^4.0.1", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", @@ -105,11 +105,11 @@ "@types/jsonlines": "^0.1.4", "@types/lodash": "^4.14.200", "@types/make-fetch-happen": "^10.0.3", - "@types/minimatch": "^5.1.2", "@types/mocha": "^10.0.3", "@types/node": "^20.8.10", "@types/pacote": "^11.1.7", "@types/parse-github-url": "^1.0.2", + "@types/picomatch": "^2.3.3", "@types/progress": "^2.0.6", "@types/prompts": "^2.4.7", "@types/remote-git-tags": "^4.0.1", diff --git a/src/lib/filterAndReject.ts b/src/lib/filterAndReject.ts index 7dec21da..7f7c022c 100644 --- a/src/lib/filterAndReject.ts +++ b/src/lib/filterAndReject.ts @@ -1,7 +1,7 @@ import { and, or } from 'fp-and-or' import identity from 'lodash/identity' import negate from 'lodash/negate' -import { minimatch } from 'minimatch' +import picomatch from 'picomatch' import { parseRange } from 'semver-utils' import { FilterPattern } from '../types/FilterPattern' import { Maybe } from '../types/Maybe' @@ -24,7 +24,7 @@ function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec // string else if (typeof filterPattern === 'string') { // RegExp string - if (filterPattern[0] === '/' && filterPattern[filterPattern.length - 1] === '/') { + if (filterPattern[0] === '/' && filterPattern.at(-1) === '/') { const regexp = new RegExp(filterPattern.slice(1, -1)) predicate = (dependencyName: string) => regexp.test(dependencyName) } @@ -33,13 +33,13 @@ function composeFilter(filterPattern: FilterPattern): (name: string, versionSpec const patterns = filterPattern.split(/[\s,]+/) predicate = (dependencyName: string) => { /** Returns true if the pattern matches an unscoped dependency name. */ - const matchUnscoped = (pattern: string) => minimatch(dependencyName, pattern) + const matchUnscoped = (pattern: string) => picomatch(pattern)(dependencyName) /** Returns true if the pattern matches a scoped dependency name. */ const matchScoped = (pattern: string) => !pattern.includes('/') && dependencyName.includes('/') && - minimatch(dependencyName.replace(/\//g, '_'), pattern) + picomatch(pattern)(dependencyName.replace(/\//g, '_')) // return true if any of the provided patterns match the dependency name return patterns.some(or(matchUnscoped, matchScoped)) From aed0c5f5be469e06b653180ae02d18625042ba72 Mon Sep 17 00:00:00 2001 From: Torathion <145236102+Torathion@users.noreply.github.com> Date: Fri, 8 Mar 2024 22:36:07 +0100 Subject: [PATCH 28/60] change: replace get-stdin with built-in stream consumer (#1375) --- .ncurc.js | 2 -- package-lock.json | 13 ------------- package.json | 1 - src/lib/findPackage.ts | 4 ++-- 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 1b47e3bf..abe893f2 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -4,8 +4,6 @@ module.exports = { // ESM only modules // https://github.com/microsoft/TypeScript/issues/46452 'find-up', - 'get-stdin', - 'globby', /* pin to 4.0.0 to match make-fetch-happen/cacache. */ 'p-map', 'remote-git-tags', diff --git a/package-lock.json b/package-lock.json index d90b7407..5a5c5bab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "get-stdin": "^8.0.0", "hosted-git-info": "^5.1.0", "ini": "^4.1.1", "js-yaml": "^4.1.0", @@ -4379,18 +4378,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", diff --git a/package.json b/package.json index bf0f9836..dfed0058 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,6 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "get-stdin": "^8.0.0", "hosted-git-info": "^5.1.0", "ini": "^4.1.1", "js-yaml": "^4.1.0", diff --git a/src/lib/findPackage.ts b/src/lib/findPackage.ts index 5998c9e6..19cd8a39 100644 --- a/src/lib/findPackage.ts +++ b/src/lib/findPackage.ts @@ -1,6 +1,6 @@ import findUp from 'find-up' import fs from 'fs/promises' -import getstdin from 'get-stdin' +import { text } from 'node:stream/consumers' import path from 'path' import { print } from '../lib/logging' import { Options } from '../types/Options' @@ -65,7 +65,7 @@ async function findPackage(options: Options): Promise<{ // get data from stdin // trim stdin to account for \r\n - const stdinData = await getstdin() + const stdinData = await text(process.stdin) const data = stdinData.trim().length > 0 ? stdinData : null // if no stdin content fall back to searching for package.json from pwd and up to root From 41b43aac5fed8ce6af84bef44d14432fd3bbe913 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 20:06:31 +0000 Subject: [PATCH 29/60] workflows/test: Remove unneeded v14 install condition. --- .github/workflows/test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eeb16974..77b6f273 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,16 +41,8 @@ jobs: node-version: ${{ matrix.node }} cache: npm - # node v14 cannot install from current package-lock.json, so use npm install instea of npm ci. - # Cannot read property 'chalk' of undefined - # Regression: e88617964a009dbb9f5e973f64ff76ad289df68c - - name: Install npm dependencies - run: npm i - if: 'matrix.node == 14' - - name: Install npm dependencies run: npm ci - if: 'matrix.node != 14' - name: Build run: npm run build From a3d58ea28e4c969b1cd964d08393026221ef973c Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 20:09:47 +0000 Subject: [PATCH 30/60] workflows/test: Bump actions/checkout and actions/setup-node to v4. --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 77b6f273..7dfb36c7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,7 +11,7 @@ on: env: FORCE_COLOR: 2 - NODE_COV: 18 + NODE_COV: 20 permissions: contents: read @@ -33,10 +33,10 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} cache: npm From 7efd7b51ba82ce9f5aaf228bbececbea35e21665 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 20:17:10 +0000 Subject: [PATCH 31/60] Upgrade prettier. --- package-lock.json | 7 ++--- src/bin/cli.ts | 12 ++++---- src/lib/getNcuRc.ts | 8 +++--- src/lib/getRepoUrl.ts | 4 +-- src/lib/libnpmconfig/index.js | 12 ++++---- src/lib/runGlobal.ts | 8 +++--- src/lib/runLocal.ts | 4 +-- src/lib/upgradeDependencies.ts | 4 +-- src/lib/version-util.ts | 12 ++++---- src/package-managers/npm.ts | 52 +++++++++++++++++----------------- src/package-managers/yarn.ts | 12 ++++---- 11 files changed, 67 insertions(+), 68 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a5c5bab..ff7e8feb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7376,11 +7376,10 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/src/bin/cli.ts b/src/bin/cli.ts index e6ab55fb..1ec150f1 100755 --- a/src/bin/cli.ts +++ b/src/bin/cli.ts @@ -55,8 +55,8 @@ const uncode = (s: string) => s.replace(/`/g, '') notifier.update.type === 'major' ? chalk.red('{latestVersion}') : notifier.update.type === 'minor' - ? chalk.yellow('{latestVersion}') - : chalk.green('{latestVersion}') + ? chalk.yellow('{latestVersion}') + : chalk.green('{latestVersion}') } Run ${chalk.cyan('{updateCommand}')} to update ${chalk.dim.underline( @@ -108,14 +108,14 @@ ${chalk.dim.underline( option.long && noCli.has(option.long) ? option.long.replace('--', '') + '*' : option.long === '--version' - ? '-v, -V, --version' - : option.flags.replace('[bool]', ''), + ? '-v, -V, --version' + : option.flags.replace('[bool]', ''), optionDescription: option => option.long === '--version' ? 'Output the version number of npm-check-updates.' : option.long === '--help' - ? `You're lookin' at it.` - : Help.prototype.optionDescription(option), + ? `You're lookin' at it.` + : Help.prototype.optionDescription(option), }) // add cli options diff --git a/src/lib/getNcuRc.ts b/src/lib/getNcuRc.ts index e19ddd2a..38dd0535 100644 --- a/src/lib/getNcuRc.ts +++ b/src/lib/getNcuRc.ts @@ -60,10 +60,10 @@ async function getNcuRc({ color, configFileName, configFilePath, packageFile, gl value === true || (cliOptionsMap[name]?.type === 'boolean' && value) ? [`--${name}`] : // if a boolean option is false, exclude it - value === false || (cliOptionsMap[name]?.type === 'boolean' && !value) - ? [] - : // otherwise render as a 2-tuple - [`--${name}`, value], + value === false || (cliOptionsMap[name]?.type === 'boolean' && !value) + ? [] + : // otherwise render as a 2-tuple + [`--${name}`, value], ), ) : [] diff --git a/src/lib/getRepoUrl.ts b/src/lib/getRepoUrl.ts index 60a6ff25..406ea584 100644 --- a/src/lib/getRepoUrl.ts +++ b/src/lib/getRepoUrl.ts @@ -62,8 +62,8 @@ async function getRepoUrl( const repositoryMetadata: string | PackageFileRepository | null = !packageJson ? await getPackageRepo(packageName, { pkgFile }) : packageJson.repository - ? packageJson.repository - : null + ? packageJson.repository + : null if (!repositoryMetadata) return null diff --git a/src/lib/libnpmconfig/index.js b/src/lib/libnpmconfig/index.js index c4ed166e..80f8b229 100644 --- a/src/lib/libnpmconfig/index.js +++ b/src/lib/libnpmconfig/index.js @@ -63,12 +63,12 @@ function getNpmConfig(_opts, _builtin) { cli.cache || env.cache ? builtin.cwd : proj.cache - ? path.dirname(projConfPath) - : user.cache - ? path.dirname(userConfPath) - : global.cache - ? path.dirname(globalConfPath) - : path.dirname(userConfPath), + ? path.dirname(projConfPath) + : user.cache + ? path.dirname(userConfPath) + : global.cache + ? path.dirname(globalConfPath) + : path.dirname(userConfPath), newOpts.cache, ), }) diff --git a/src/lib/runGlobal.ts b/src/lib/runGlobal.ts index 3d4c91a5..6367ab9c 100644 --- a/src/lib/runGlobal.ts +++ b/src/lib/runGlobal.ts @@ -62,10 +62,10 @@ async function runGlobal(options: Options): Promise | void> { options.packageManager === 'yarn' ? 'yarn global upgrade' : options.packageManager === 'pnpm' - ? 'pnpm -g add' - : options.packageManager === 'bun' - ? 'bun add -g' - : 'npm -g install' + ? 'pnpm -g add' + : options.packageManager === 'bun' + ? 'bun add -g' + : 'npm -g install' print( options, diff --git a/src/lib/runLocal.ts b/src/lib/runLocal.ts index 7c8f0655..e6d25616 100644 --- a/src/lib/runLocal.ts +++ b/src/lib/runLocal.ts @@ -251,8 +251,8 @@ async function runLocal( const output = options.jsonAll ? (jph.parse(newPkgData) as PackageFile) : options.jsonDeps - ? pick(jph.parse(newPkgData) as PackageFile, resolveDepSections(options.dep)) - : chosenUpgraded + ? pick(jph.parse(newPkgData) as PackageFile, resolveDepSections(options.dep)) + : chosenUpgraded // will be overwritten with the result of fs.writeFile so that the return promise waits for the package file to be written let writePromise = Promise.resolve() diff --git a/src/lib/upgradeDependencies.ts b/src/lib/upgradeDependencies.ts index bd1369ff..64b9b931 100644 --- a/src/lib/upgradeDependencies.ts +++ b/src/lib/upgradeDependencies.ts @@ -96,8 +96,8 @@ function upgradeDependencies( return versionUtil.isNpmAlias(current) ? versionUtil.upgradeNpmAlias(current, upgraded) : versionUtil.isGithubUrl(current) - ? versionUtil.upgradeGithubUrl(current, upgraded) - : upgraded + ? versionUtil.upgradeGithubUrl(current, upgraded) + : upgraded }), ])(currentDependencies) } diff --git a/src/lib/version-util.ts b/src/lib/version-util.ts index be535343..1a87a599 100755 --- a/src/lib/version-util.ts +++ b/src/lib/version-util.ts @@ -76,8 +76,8 @@ export function precisionAdd(precision: VersionPart, n: number) { const index = VERSION_BASE_PARTS.includes(precision) ? VERSION_BASE_PARTS.indexOf(precision) + n : VERSION_ADDED_PARTS.includes(precision) - ? VERSION_BASE_PARTS.length + n - : null + ? VERSION_BASE_PARTS.length + n + : null if (index === null || !VERSION_PARTS[index]) { throw new Error(`Invalid precision: ${precision}`) @@ -491,10 +491,10 @@ export function upgradeDependencyDeclaration( (isWildPart(declaredSemver[part]) ? declaredSemver[part] : VERSION_BASE_PARTS.includes(part) && declaredSemver[part] - ? latestSemver[part] - : VERSION_ADDED_PARTS.includes(part) - ? latestSemver[part] - : null) || null + ? latestSemver[part] + : VERSION_ADDED_PARTS.includes(part) + ? latestSemver[part] + : null) || null ) } diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index 49de564d..221ac955 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -158,11 +158,11 @@ export const normalizeNpmConfig = ( typeof value !== 'string' ? value : // parse stringified booleans - keyTypes[key.replace(/-/g, '').toLowerCase()] === 'boolean' - ? stringToBoolean(value) - : keyTypes[key.replace(/-/g, '').toLowerCase()] === 'number' - ? stringToNumber(value) - : value.replace(/\${([^}]+)}/, (_, envVar) => process.env[envVar] as string) + keyTypes[key.replace(/-/g, '').toLowerCase()] === 'boolean' + ? stringToBoolean(value) + : keyTypes[key.replace(/-/g, '').toLowerCase()] === 'number' + ? stringToNumber(value) + : value.replace(/\${([^}]+)}/, (_, envVar) => process.env[envVar] as string) // normalize the key for pacote const { [key]: pacoteKey }: Index = npmConfigToPacoteMap @@ -171,10 +171,10 @@ export const normalizeNpmConfig = ( ? // key is mapped to a string { [pacoteKey]: normalizedValue } : // key is mapped to a function - typeof pacoteKey === 'function' - ? { ...(pacoteKey(normalizedValue.toString()) as any) } - : // otherwise assign the camel-cased key - { [key.match(/^[a-z]/i) ? camelCase(key) : key]: normalizedValue } + typeof pacoteKey === 'function' + ? { ...(pacoteKey(normalizedValue.toString()) as any) } + : // otherwise assign the camel-cased key + { [key.match(/^[a-z]/i) ? camelCase(key) : key]: normalizedValue } }) return config @@ -282,8 +282,8 @@ export const mockViewMany = typeof mockReturnedVersions === 'function' ? mockReturnedVersions(options)?.[name] : typeof mockReturnedVersions === 'string' || isPackument(mockReturnedVersions) - ? mockReturnedVersions - : mockReturnedVersions[name] + ? mockReturnedVersions + : mockReturnedVersions[name] const version = isPackument(partialPackument) ? partialPackument.version : partialPackument @@ -317,15 +317,15 @@ export const mockViewMany = [version]: packument, } as Index) : field === 'time' - ? ({ - [version]: time, - } as Index) - : ({ - ...packument, - versions: { - [version]: packument, - }, - } as Packument), + ? ({ + [version]: time, + } as Index) + : ({ + ...packument, + versions: { + [version]: packument, + }, + } as Packument), })), ) } @@ -583,12 +583,12 @@ export async function defaultPrefix(options: Options): Promise { return options.global && prefix && prefix.match('Cellar') ? '/usr/local' : // Workaround: get prefix on windows for global packages - // Only needed when using npm api directly - process.platform === 'win32' && options.global && !process.env.prefix - ? prefix - ? prefix.trim() - : `${process.env.LOCALAPPDATA}\\Yarn\\Data\\global` - : null + // Only needed when using npm api directly + process.platform === 'win32' && options.global && !process.env.prefix + ? prefix + ? prefix.trim() + : `${process.env.LOCALAPPDATA}\\Yarn\\Data\\global` + : null } /** From 5edd56d731350551d51f6f33202ca42c82de32bb Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 22:09:49 +0000 Subject: [PATCH 32/60] Bump dependencies --- .ncurc.js | 9 +- package-lock.json | 961 +++++++++++++++++++++------------------------- package.json | 78 ++-- 3 files changed, 483 insertions(+), 565 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index abe893f2..6704ceab 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -1,6 +1,11 @@ module.exports = { format: 'group', reject: [ + // TODO: major version upgrades + 'chai', + 'commander', + '@typescript-eslint/eslint-plugin', + '@typescript-eslint/parser', // ESM only modules // https://github.com/microsoft/TypeScript/issues/46452 'find-up', @@ -12,10 +17,6 @@ module.exports = { // Working upgrade is in branch 'hosted-git-info', but hold off on merging due to node engine requirements: ^14.17.0 || ^16.13.0 || >=18.0.0 // https://github.com/npm/hosted-git-info/releases/tag/v6.0.0 'hosted-git-info', - // Removed support for node v14 in v0.35.0 - 'makdownlint-cli', - // manually keep in alignment with pacote's version of make-fetch-happen - 'make-fetch-happen', // major changes required to upgrade to v3 'spawn-please', // v0.60.0 breaks cli option description output diff --git a/package-lock.json b/package-lock.json index ff7e8feb..d19e85c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,21 +17,21 @@ "find-up": "5.0.0", "fp-and-or": "^1.0.2", "hosted-git-info": "^5.1.0", - "ini": "^4.1.1", + "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", "p-map": "^4.0.0", - "pacote": "17.0.4", + "pacote": "17.0.6", "parse-github-url": "^1.0.2", "picomatch": "^4.0.1", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "semver": "^7.5.4", + "semver": "^7.6.0", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.2", @@ -45,57 +45,57 @@ "npm-check-updates": "build/src/bin/cli.js" }, "devDependencies": { - "@trivago/prettier-plugin-sort-imports": "^4.2.1", - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/chai-string": "^1.4.4", - "@types/cli-table": "^0.3.3", - "@types/hosted-git-info": "^3.0.4", - "@types/ini": "^1.3.32", - "@types/js-yaml": "^4.0.8", - "@types/json-parse-helpfulerror": "^1.0.2", - "@types/jsonlines": "^0.1.4", - "@types/lodash": "^4.14.200", - "@types/make-fetch-happen": "^10.0.3", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.10", - "@types/pacote": "^11.1.7", - "@types/parse-github-url": "^1.0.2", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@types/chai": "^4.3.12", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-string": "^1.4.5", + "@types/cli-table": "^0.3.4", + "@types/hosted-git-info": "^3.0.5", + "@types/ini": "^4.1.0", + "@types/js-yaml": "^4.0.9", + "@types/json-parse-helpfulerror": "^1.0.3", + "@types/jsonlines": "^0.1.5", + "@types/lodash": "^4.17.0", + "@types/make-fetch-happen": "^10.0.4", + "@types/mocha": "^10.0.6", + "@types/node": "^20.11.26", + "@types/pacote": "^11.1.8", + "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", - "@types/progress": "^2.0.6", - "@types/prompts": "^2.4.7", - "@types/remote-git-tags": "^4.0.1", - "@types/semver": "^7.5.4", - "@types/semver-utils": "^1.1.2", - "@types/sinon": "^17.0.0", - "@types/update-notifier": "^6.0.6", + "@types/progress": "^2.0.7", + "@types/prompts": "^2.4.9", + "@types/remote-git-tags": "^4.0.2", + "@types/semver": "^7.5.8", + "@types/semver-utils": "^1.1.3", + "@types/sinon": "^17.0.3", + "@types/update-notifier": "^6.0.8", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "c8": "^8.0.1", + "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-jsdoc": "^46.8.2", - "eslint-plugin-n": "^16.2.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsdoc": "^48.2.1", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", - "lockfile-lint": "^4.12.1", - "markdownlint-cli": "^0.37.0", - "mocha": "^10.2.0", + "lockfile-lint": "^4.13.2", + "markdownlint-cli": "^0.39.0", + "mocha": "^10.3.0", "npm-run-all": "^4.1.5", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "should": "^13.2.3", "sinon": "^17.0.1", "strip-ansi": "^7.1.0", - "ts-node": "^10.9.1", - "typescript": "^5.2.2", + "ts-node": "^10.9.2", + "typescript": "^5.4.2", "typescript-json-schema": "^0.57.0", - "yarn": "^1.22.19" + "yarn": "^1.22.22" }, "engines": { "node": "^16 < 16.15.1 || >16.15.1", @@ -512,12 +512,12 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", - "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz", + "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==", "dev": true, "dependencies": { - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, @@ -552,11 +552,10 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -580,18 +579,16 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -607,7 +604,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -620,7 +616,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -633,7 +628,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -642,24 +636,22 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -671,7 +663,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -682,7 +673,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -705,9 +695,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -1101,31 +1091,40 @@ } }, "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.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", + "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", + "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.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", "engines": { "node": "^14.17.0 || ^16.13.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.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -1133,12 +1132,25 @@ } }, "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.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", + "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", + "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", + "dependencies": { + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -1218,11 +1230,10 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.1.tgz", - "integrity": "sha512-iuy2MPVURGdxILTchHr15VAioItuYBejKfcTmQFlxIuqA7jeaT6ngr5aUIG6S6U096d6a6lJCgaOwlRrPLlOPg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/generator": "7.17.7", "@babel/parser": "^7.20.5", @@ -1290,33 +1301,33 @@ } }, "node_modules/@types/chai": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz", - "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", + "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", "dev": true }, "node_modules/@types/chai-as-promised": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.7.tgz", - "integrity": "sha512-APucaP5rlmTRYKtRA6FE5QPP87x76ejw5t5guRJ4y5OgMnwtsvigw7HHhKZlx2MGXLeZd6R/GNZR/IqDHcbtQw==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, "dependencies": { "@types/chai": "*" } }, "node_modules/@types/chai-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.4.tgz", - "integrity": "sha512-dVLg4ukDw9y2uEtjq9nHV9pSOomguOhW5AxlWxEU7kYU6chZ0xGC1C7YptkCFEinFVoomJ8WCRUfmTipUqOOXw==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.5.tgz", + "integrity": "sha512-IecXRMSnpUvRnTztdpSdjcmcW7EdNme65bfDCQMi7XrSEPGmyDYYTEfc5fcactWDA6ioSm8o7NUqg9QxjBCCEw==", "dev": true, "dependencies": { "@types/chai": "*" } }, "node_modules/@types/cli-table": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@types/cli-table/-/cli-table-0.3.3.tgz", - "integrity": "sha512-GJPxeQ/McVnizfipKsCuJg3tEXg6GZvoFjLlohJpWHjDcSIwSAjbCJNuHDVQyrHiRiINXspzrFc/Tt9ztvZCoA==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@types/cli-table/-/cli-table-0.3.4.tgz", + "integrity": "sha512-GsALrTL69mlwbAw/MHF1IPTadSLZQnsxe7a80G8l4inN/iEXCOcVeT/S7aRc6hbhqzL9qZ314kHPDQnQ3ev+HA==", "dev": true }, "node_modules/@types/configstore": { @@ -1327,9 +1338,9 @@ "license": "MIT" }, "node_modules/@types/hosted-git-info": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.4.tgz", - "integrity": "sha512-o2FiQWNs3m8jlJ77dsRlfXA8NvRHB4+hA/4iSqkWwjDezQwq84O73X5D2QyXflty9PtzuQl8PAPcxanSqkv9fg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz", + "integrity": "sha512-Dmngh7U003cOHPhKGyA7LWqrnvcTyILNgNPmNCxlx7j8MIi54iBliiT8XqVLIQ3GchoOjVAyBzNJVyuaJjqokg==", "dev": true }, "node_modules/@types/http-cache-semantics": { @@ -1339,9 +1350,9 @@ "license": "MIT" }, "node_modules/@types/ini": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@types/ini/-/ini-1.3.32.tgz", - "integrity": "sha512-cCXfrhgTiChyYIBs7ZZdsi8a9JLs4vVdCsUJt8nczxpNcHcUEMO8Tu5vsMwbepDobKC1mOf4w32jgOz1NEDoaA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@types/ini/-/ini-4.1.0.tgz", + "integrity": "sha512-mTehMtc+xtnWBBvqizcqYCktKDBH2WChvx1GU3Sfe4PysFDXiNe+1YwtpVX1MDtCa4NQrSPw2+3HmvXHY3gt1w==", "dev": true }, "node_modules/@types/istanbul-lib-coverage": { @@ -1352,15 +1363,15 @@ "license": "MIT" }, "node_modules/@types/js-yaml": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.8.tgz", - "integrity": "sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", "dev": true }, "node_modules/@types/json-parse-helpfulerror": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.2.tgz", - "integrity": "sha512-8OSmaJAc90uiOgxs0FRE0RDiFsU/FiRQA1Te574ojYxykst3bi9oAp5Qt6XdWmr8kvHdlDhlIONMFQogd4qB4g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha512-tvDHAG7NwOWnTRlDKSa8zWgYkyI3YilpS6acWGc1abpi+HYGvzFjo3AfppTbvpzIZLKLAQREM0sPR7z8wMe85A==", "dev": true }, "node_modules/@types/json-schema": { @@ -1374,28 +1385,27 @@ "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/jsonlines": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@types/jsonlines/-/jsonlines-0.1.4.tgz", - "integrity": "sha512-4aGcs4gnZK89fDjZ+aKPGs+eHEQLZOjvKIbYf/X7PzyXzyQ8BOSOZ0cAbXWt/VQcZsyWqVjvbBL2U3edxwwDLA==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/jsonlines/-/jsonlines-0.1.5.tgz", + "integrity": "sha512-/zOl7I350g4/G6fEW9dktpTrkcKqZDMRkr2SuDla0utgwkUXrm7OFXq2WZT0W9Jl7BYoisGbn1EZsV/Z2F9LGg==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/lodash": { - "version": "4.14.200", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.200.tgz", - "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", + "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", "dev": true }, "node_modules/@types/make-fetch-happen": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@types/make-fetch-happen/-/make-fetch-happen-10.0.3.tgz", - "integrity": "sha512-iEYl3Kupch0TUWkqp3n5/LmX37ZGCapxFNiFZOz4xzxcNgSH+EWfWVa/WQ0t6SPsRv58xYNtDjkcrh0KN1KCVw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@types/make-fetch-happen/-/make-fetch-happen-10.0.4.tgz", + "integrity": "sha512-jKzweQaEMMAi55ehvR1z0JF6aSVQm/h1BXBhPLOJriaeQBctjw5YbpIGs7zAx9dN0Sa2OO5bcXwCkrlgenoPEA==", "dev": true, "dependencies": { "@types/node-fetch": "*", @@ -1404,15 +1414,15 @@ } }, "node_modules/@types/mocha": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.3.tgz", - "integrity": "sha512-RsOPImTriV/OE4A9qKjMtk2MnXiuLLbcO3nCXK+kvq4nr0iMfFgpjaX3MPLb6f7+EL1FGSelYvuJMV6REH+ZPQ==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", "dev": true }, "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.11.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.26.tgz", + "integrity": "sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1458,9 +1468,9 @@ "license": "MIT" }, "node_modules/@types/pacote": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/@types/pacote/-/pacote-11.1.7.tgz", - "integrity": "sha512-XW4UbANZdZ/Rwz18e3jRZ7h92KfXwlJNG7b+AnD+gbl0bNr7qX1GddD3Gy2Ig/RDBYM6h+Bj2ronjtrGMxSdZw==", + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/@types/pacote/-/pacote-11.1.8.tgz", + "integrity": "sha512-/XLR0VoTh2JEO0jJg1q/e6Rh9bxjBq9vorJuQmtT7rRrXSiWz7e7NsvXVYJQ0i8JxMlBMPPYDTnrRe7MZRFA8Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -1470,9 +1480,9 @@ } }, "node_modules/@types/parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-Cjm9j2JSFcAOrjaRqguYgzdJ+UYkOAbOKzdFzqvILyKqW/Z9hKXQSWMt3fYEC8AiDL5EXTe1zPtts9dS0gKOWQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/parse-github-url/-/parse-github-url-1.0.3.tgz", + "integrity": "sha512-7sTbCVmSVzK/iAsHGIxoqiyAnqix9opZm68lOvaU6DBx9EQ9kHMSp0y7Criu2OCsZ9wDllEyCRU+LU4hPRxXUA==", "dev": true, "dependencies": { "@types/node": "*" @@ -1485,19 +1495,18 @@ "dev": true }, "node_modules/@types/progress": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/progress/-/progress-2.0.6.tgz", - "integrity": "sha512-VMoR0SmxPQFOZ7Sege+q2gswFNq/bHDSMcWv3sEaPqAkbvYYzCOJJzpmAupgYqXn3AXWWmyAWlw8x5tzRDNR7g==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/progress/-/progress-2.0.7.tgz", + "integrity": "sha512-iadjw02vte8qWx7U0YM++EybBha2CQLPGu9iJ97whVgJUT5Zq9MjAPYUnbfRI2Kpehimf1QjFJYxD0t8nqzu5w==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/prompts": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.7.tgz", - "integrity": "sha512-5zTamE+QQM4nR6Ab3yHK+ovWuhLJXaa2ZLt3mT1en8U3ubWtjVT1vXDaVFC2+cL89uVn7Y+gIq5B3IcVvBl5xQ==", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", + "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", "dev": true, "dependencies": { "@types/node": "*", @@ -1505,9 +1514,9 @@ } }, "node_modules/@types/remote-git-tags": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/remote-git-tags/-/remote-git-tags-4.0.1.tgz", - "integrity": "sha512-M/+jrIeKXz3sdi9cmr6OQr63eR+DrTKTfs+Gm8e+nlwKGn8kpOwYRM7sUDHcu6OHnPvBqxp1mj50Hh8xmHGRRQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/remote-git-tags/-/remote-git-tags-4.0.2.tgz", + "integrity": "sha512-2zrhBA1c6dr1kTT+6BpMoeOaXQPpvgbLPnPHJjuLR1WtkyL1LYytGA2J9LndV/DZTiI3kX9hffJjlZ6XPp5rmg==", "dev": true }, "node_modules/@types/retry": { @@ -1518,21 +1527,21 @@ "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/semver-utils": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.2.tgz", - "integrity": "sha512-d6Bjg2Sc6frOiTxobEnHWaUENpU0EnkUCV98mo18qEZ7Ah8ImOnQSfulflh3lEvI1A/gS0urUc9VZcfJHKKUiA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/semver-utils/-/semver-utils-1.1.3.tgz", + "integrity": "sha512-T+YwkslhsM+CeuhYUxyAjWm7mJ5am/K10UX40RuA6k6Lc7eGtq8iY2xOzy7Vq0GOqhl/xZl5l2FwURZMTPTUww==", "dev": true }, "node_modules/@types/sinon": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.0.tgz", - "integrity": "sha512-oN4AeDMFCeNZrAffCjhLcwwVymRZL2c9mljUmhPnd0eiM06d4ELDg0Q0TSvnZXrCIFlSA859qIdcfu1HapswPQ==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -1556,13 +1565,13 @@ } }, "node_modules/@types/update-notifier": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@types/update-notifier/-/update-notifier-6.0.6.tgz", - "integrity": "sha512-kySKKtYW9ExZC0SsflB6dBcZnMMfxit3s+rzmSIo/hFGL0YDm1RVDZA5VRukzwESoyT8gAMHHOaYZpJPsndh0Q==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@types/update-notifier/-/update-notifier-6.0.8.tgz", + "integrity": "sha512-IlDFnfSVfYQD+cKIg63DEXn3RFmd7W1iYtKQsJodcHK9R1yr8aKbKaPKfBxzPpcHCq2DU8zUq4PIPmy19Thjfg==", "dev": true, "dependencies": { "@types/configstore": "*", - "boxen": "^7.0.0" + "boxen": "^7.1.1" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -1606,7 +1615,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.9.1", "@typescript-eslint/types": "6.9.1", @@ -1768,6 +1776,41 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@yarnpkg/parsers": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", + "integrity": "sha512-48GtaB/WqUQSLSmlk7Evawx+r0rht6Pe91TXdjFQquC7ZV5RUbwA5pm6wnoWXiwE3tEzvGj6e/0/YLBrlBaqfg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -1794,7 +1837,6 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1827,7 +1869,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2216,19 +2257,18 @@ } }, "node_modules/c8": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", + "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", "find-up": "^5.0.0", - "foreground-child": "^2.0.0", + "foreground-child": "^3.1.1", "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.1.6", - "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", @@ -2238,7 +2278,7 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=12" + "node": ">=14.14.0" } }, "node_modules/c8/node_modules/ansi-regex": { @@ -2265,17 +2305,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/c8/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/c8/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2314,56 +2343,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/c8/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/c8/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/c8/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/c8/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2883,9 +2862,9 @@ } }, "node_modules/comment-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", - "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -3229,11 +3208,10 @@ } }, "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3398,17 +3376,16 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -3453,10 +3430,22 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -3559,13 +3548,14 @@ } }, "node_modules/eslint-plugin-es-x": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.3.0.tgz", - "integrity": "sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0" + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -3578,9 +3568,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", @@ -3599,7 +3589,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -3666,39 +3656,51 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", - "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", + "version": "48.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz", + "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.40.1", + "@es-joy/jsdoccomment": "~0.42.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "semver": "^7.6.0", + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "node_modules/eslint-plugin-n": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.2.0.tgz", - "integrity": "sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==", + "version": "16.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", + "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.1.0", + "eslint-plugin-es-x": "^7.5.0", "get-tsconfig": "^4.7.0", + "globals": "^13.24.0", "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", "resolve": "^1.22.2", @@ -3725,6 +3727,21 @@ "concat-map": "0.0.1" } }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-n/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3738,6 +3755,18 @@ "node": "*" } }, + "node_modules/eslint-plugin-n/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-promise": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", @@ -3925,7 +3954,6 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -4017,8 +4045,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -4051,8 +4078,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -4220,17 +4246,29 @@ } }, "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "license": "ISC", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dependencies": { "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { - "node": ">=8.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/form-data": { @@ -4453,34 +4491,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob/node_modules/signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -4774,11 +4784,10 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -4856,10 +4865,9 @@ "dev": true }, "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", - "license": "ISC", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -5420,8 +5428,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -5443,11 +5450,10 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true, - "license": "MIT" + "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/jsonlines": { "version": "0.1.1", @@ -5527,13 +5533,12 @@ "license": "MIT" }, "node_modules/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, - "license": "MIT", "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/load-json-file": { @@ -5582,16 +5587,15 @@ } }, "node_modules/lockfile-lint": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-4.12.1.tgz", - "integrity": "sha512-FBP7OA7sa45kzPgRNLYIcGGgDS86rpZNW3ptALp1vlzv+oHZsqFZdmHXM4N4FwiGXHzUOpSVvDLT4v7IiQXFtA==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-4.13.2.tgz", + "integrity": "sha512-yeg0vJ3NjC6OVMZtC+nSLLavu/e8LE5FZp9u0Itqyt7I0gYYCgGxAsJV3TJ7WtaJd4PahineJvHqSk/4sqzU8w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "cosmiconfig": "^8.2.0", "debug": "^4.3.4", "fast-glob": "^3.3.1", - "lockfile-lint-api": "^5.8.0", + "lockfile-lint-api": "^5.9.1", "yargs": "^17.7.2" }, "bin": { @@ -5602,13 +5606,12 @@ } }, "node_modules/lockfile-lint-api": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/lockfile-lint-api/-/lockfile-lint-api-5.8.0.tgz", - "integrity": "sha512-RHa+ofSGMGQvPFG1oD2qZmSWF2MfxWXhle/unpzmDjpi8F8Ou5sreNUcAscgGRfcX+BszBuVKddD0X5YKQ0TeA==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/lockfile-lint-api/-/lockfile-lint-api-5.9.1.tgz", + "integrity": "sha512-us5IT1bGA6KXbq1WrhrSzk9mtPgHKz5nhvv3S4hwcYnhcVOKW2uK0W8+PN9oIgv4pI49WsD5wBdTQFTpNChF/Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@yarnpkg/parsers": "^3.0.0-rc.32", + "@yarnpkg/parsers": "^3.0.0-rc.48.1", "debug": "^4.3.4", "object-hash": "^3.0.0" }, @@ -5616,47 +5619,6 @@ "node": ">=16.0.0" } }, - "node_modules/lockfile-lint-api/node_modules/@yarnpkg/parsers": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", - "integrity": "sha512-48GtaB/WqUQSLSmlk7Evawx+r0rht6Pe91TXdjFQquC7ZV5RUbwA5pm6wnoWXiwE3tEzvGj6e/0/YLBrlBaqfg==", - "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^1.13.0" - }, - "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" - } - }, - "node_modules/lockfile-lint-api/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/lockfile-lint-api/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/lockfile-lint-api/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/lockfile-lint/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5955,50 +5917,51 @@ } }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", + "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.0.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdownlint": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", - "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz", + "integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==", "dev": true, - "license": "MIT", "dependencies": { - "markdown-it": "13.0.1", - "markdownlint-micromark": "0.1.7" + "markdown-it": "14.0.0", + "markdownlint-micromark": "0.1.8" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.37.0.tgz", - "integrity": "sha512-hNKAc0bWBBuVhJbSWbUhRzavstiB4o1jh3JeSpwC4/dt6eJ54lRfYHRxVdzVp4qGWBKbeE6Pg490PFEfrKjqSg==", + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz", + "integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==", "dev": true, - "license": "MIT", "dependencies": { - "commander": "~11.0.0", + "commander": "~11.1.0", "get-stdin": "~9.0.0", - "glob": "~10.3.4", - "ignore": "~5.2.4", + "glob": "~10.3.10", + "ignore": "~5.3.0", "js-yaml": "^4.1.0", - "jsonc-parser": "~3.2.0", - "markdownlint": "~0.31.1", + "jsonc-parser": "~3.2.1", + "markdownlint": "~0.33.0", "minimatch": "~9.0.3", "run-con": "~1.3.2" }, @@ -6006,16 +5969,7 @@ "markdownlint": "markdownlint.js" }, "engines": { - "node": ">=16" - } - }, - "node_modules/markdownlint-cli/node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", - "dev": true, - "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/markdownlint-cli/node_modules/get-stdin": { @@ -6032,21 +5986,22 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz", - "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz", + "integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==", "dev": true, - "license": "MIT", "engines": { "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true, - "license": "MIT" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true }, "node_modules/memorystream": { "version": "0.3.1", @@ -6339,11 +6294,10 @@ } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -6352,13 +6306,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -6373,57 +6326,27 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", @@ -6489,19 +6412,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -6964,7 +6874,6 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } @@ -7154,9 +7063,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.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", @@ -7173,7 +7082,7 @@ "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" }, @@ -7460,7 +7369,15 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, "engines": { "node": ">=6" } @@ -7966,10 +7883,9 @@ "optional": true }, "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==", - "license": "ISC", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8136,14 +8052,16 @@ "license": "ISC" }, "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.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", "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.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -8679,11 +8597,10 @@ } }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -8733,11 +8650,10 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -8750,7 +8666,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -8758,10 +8673,16 @@ "json5": "lib/cli.js" } }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/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.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", "dependencies": { "@tufjs/models": "2.0.0", "debug": "^4.3.4", @@ -8885,11 +8806,10 @@ } }, "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.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9128,11 +9048,10 @@ } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true, - "license": "MIT" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true }, "node_modules/unbox-primitive": { "version": "1.0.2", @@ -9236,7 +9155,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -9658,12 +9576,11 @@ } }, "node_modules/yarn": { - "version": "1.22.19", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz", - "integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==", + "version": "1.22.22", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", + "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", "dev": true, "hasInstallScript": true, - "license": "BSD-2-Clause", "bin": { "yarn": "bin/yarn.js", "yarnpkg": "bin/yarn.js" diff --git a/package.json b/package.json index dfed0058..509f0401 100644 --- a/package.json +++ b/package.json @@ -68,21 +68,21 @@ "find-up": "5.0.0", "fp-and-or": "^1.0.2", "hosted-git-info": "^5.1.0", - "ini": "^4.1.1", + "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", "p-map": "^4.0.0", - "pacote": "17.0.4", + "pacote": "17.0.6", "parse-github-url": "^1.0.2", "picomatch": "^4.0.1", "progress": "^2.0.3", "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", - "semver": "^7.5.4", + "semver": "^7.6.0", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.2", @@ -92,57 +92,57 @@ "update-notifier": "^6.0.2" }, "devDependencies": { - "@trivago/prettier-plugin-sort-imports": "^4.2.1", - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/chai-string": "^1.4.4", - "@types/cli-table": "^0.3.3", - "@types/hosted-git-info": "^3.0.4", - "@types/ini": "^1.3.32", - "@types/js-yaml": "^4.0.8", - "@types/json-parse-helpfulerror": "^1.0.2", - "@types/jsonlines": "^0.1.4", - "@types/lodash": "^4.14.200", - "@types/make-fetch-happen": "^10.0.3", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.10", - "@types/pacote": "^11.1.7", - "@types/parse-github-url": "^1.0.2", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@types/chai": "^4.3.12", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-string": "^1.4.5", + "@types/cli-table": "^0.3.4", + "@types/hosted-git-info": "^3.0.5", + "@types/ini": "^4.1.0", + "@types/js-yaml": "^4.0.9", + "@types/json-parse-helpfulerror": "^1.0.3", + "@types/jsonlines": "^0.1.5", + "@types/lodash": "^4.17.0", + "@types/make-fetch-happen": "^10.0.4", + "@types/mocha": "^10.0.6", + "@types/node": "^20.11.26", + "@types/pacote": "^11.1.8", + "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", - "@types/progress": "^2.0.6", - "@types/prompts": "^2.4.7", - "@types/remote-git-tags": "^4.0.1", - "@types/semver": "^7.5.4", - "@types/semver-utils": "^1.1.2", - "@types/sinon": "^17.0.0", - "@types/update-notifier": "^6.0.6", + "@types/progress": "^2.0.7", + "@types/prompts": "^2.4.9", + "@types/remote-git-tags": "^4.0.2", + "@types/semver": "^7.5.8", + "@types/semver-utils": "^1.1.3", + "@types/sinon": "^17.0.3", + "@types/update-notifier": "^6.0.8", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "c8": "^8.0.1", + "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-jsdoc": "^46.8.2", - "eslint-plugin-n": "^16.2.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsdoc": "^48.2.1", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", - "lockfile-lint": "^4.12.1", - "markdownlint-cli": "^0.37.0", - "mocha": "^10.2.0", + "lockfile-lint": "^4.13.2", + "markdownlint-cli": "^0.39.0", + "mocha": "^10.3.0", "npm-run-all": "^4.1.5", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "should": "^13.2.3", "sinon": "^17.0.1", "strip-ansi": "^7.1.0", - "ts-node": "^10.9.1", - "typescript": "^5.2.2", + "ts-node": "^10.9.2", + "typescript": "^5.4.2", "typescript-json-schema": "^0.57.0", - "yarn": "^1.22.19" + "yarn": "^1.22.22" }, "files": [ "build", From 3da056db3c77a6aaec71637b5469507d4cfb6c7b Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 22:16:29 +0000 Subject: [PATCH 33/60] Upgrade hosted-git-info. --- .ncurc.js | 4 -- package-lock.json | 93 +++++------------------------------------ package.json | 2 +- src/lib/getRepoUrl.ts | 2 +- test/getRepoUrl.test.ts | 2 +- 5 files changed, 13 insertions(+), 90 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 6704ceab..ace78365 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -13,10 +13,6 @@ module.exports = { 'p-map', 'remote-git-tags', 'untildify', - // Broken in v6.0.0 - // Working upgrade is in branch 'hosted-git-info', but hold off on merging due to node engine requirements: ^14.17.0 || ^16.13.0 || >=18.0.0 - // https://github.com/npm/hosted-git-info/releases/tag/v6.0.0 - 'hosted-git-info', // major changes required to upgrade to v3 'spawn-please', // v0.60.0 breaks cli option description output diff --git a/package-lock.json b/package-lock.json index d19e85c6..53f29b55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "hosted-git-info": "^5.1.0", + "hosted-git-info": "^7.0.1", "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", @@ -863,14 +863,6 @@ "node": ">= 14" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", @@ -922,14 +914,6 @@ "node": ">=16" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -2435,14 +2419,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/cacheable-lookup": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", @@ -4733,15 +4709,14 @@ } }, "node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "license": "ISC", + "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==", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/html-escaper": { @@ -5864,12 +5839,11 @@ } }, "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/make-dir": { @@ -6550,25 +6524,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/normalize-package-data/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==", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -6637,25 +6592,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-package-arg/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==", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/npm-packlist": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", @@ -7194,15 +7130,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", diff --git a/package.json b/package.json index 509f0401..997631a8 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "hosted-git-info": "^5.1.0", + "hosted-git-info": "^7.0.1", "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", diff --git a/src/lib/getRepoUrl.ts b/src/lib/getRepoUrl.ts index 406ea584..ce3a6405 100644 --- a/src/lib/getRepoUrl.ts +++ b/src/lib/getRepoUrl.ts @@ -10,7 +10,7 @@ import exists from './exists' const defaultBranchPath = hostedGitInfo .fromUrl('user/repo') ?.browse('') - .match(/(\/tree\/[a-z]+)/)?.[0] + .match(/(\/tree\/[a-zA-Z]+)/)?.[0] const regexDefaultBranchPath = new RegExp(`${defaultBranchPath}$`) /** Gets the repo url of an installed package. */ diff --git a/test/getRepoUrl.test.ts b/test/getRepoUrl.test.ts index 1ebf6065..579502d3 100644 --- a/test/getRepoUrl.test.ts +++ b/test/getRepoUrl.test.ts @@ -49,6 +49,6 @@ describe('getRepoUrl', () => { const url = await getRepoUrl('package-name', { repository: { url: 'http://github.com/user/repo.git', directory: 'packages/specific-package' }, }) - url!.should.equal('https://github.com/user/repo/tree/master/packages/specific-package') + url!.should.equal('https://github.com/user/repo/tree/HEAD/packages/specific-package') }) }) From c0b47d63deab02427ef6d1a57648d8a308b5623d Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 22:36:03 +0000 Subject: [PATCH 34/60] getRepoUrl: Hardcode /tree/HEAD for simplicity. --- src/lib/getRepoUrl.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/lib/getRepoUrl.ts b/src/lib/getRepoUrl.ts index ce3a6405..9638a416 100644 --- a/src/lib/getRepoUrl.ts +++ b/src/lib/getRepoUrl.ts @@ -6,13 +6,6 @@ import { PackageFile } from '../types/PackageFile' import { PackageFileRepository } from '../types/PackageFileRepository' import exists from './exists' -// extract the defaultBranchPath so it can be stripped in the final output -const defaultBranchPath = hostedGitInfo - .fromUrl('user/repo') - ?.browse('') - .match(/(\/tree\/[a-zA-Z]+)/)?.[0] -const regexDefaultBranchPath = new RegExp(`${defaultBranchPath}$`) - /** Gets the repo url of an installed package. */ async function getPackageRepo( packageName: string, @@ -41,9 +34,6 @@ async function getPackageRepo( return null } -/** Remove the default branch path from a git url. */ -const cleanRepoUrl = (url: string) => url.replace(/\/$/, '').replace(regexDefaultBranchPath, '') - /** * @param packageName A package name as listed in package.json's dependencies list * @param packageJson Optional param to specify a object representation of a package.json file instead of loading from node_modules @@ -91,7 +81,8 @@ async function getRepoUrl( if (typeof gitURL === 'string' && typeof directory === 'string') { const hostedGitURL = hostedGitInfo.fromUrl(gitURL)?.browse(directory) if (hostedGitURL !== undefined) { - return cleanRepoUrl(hostedGitURL) + // Remove the default branch path (/tree/HEAD) from a git url + return hostedGitURL.replace(/\/$/, '').replace(/\/tree\/HEAD$/, '') } } return null From 25f8bf44b4547b37c54a7a364c531114badd5f20 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 23:07:18 +0000 Subject: [PATCH 35/60] Fix package.json and regenerate package-lock.json. --- package-lock.json | 411 ++++++++++++++++++++-------------------------- package.json | 65 ++++---- 2 files changed, 205 insertions(+), 271 deletions(-) diff --git a/package-lock.json b/package-lock.json index c916be95..be76a848 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,17 +16,15 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "get-stdin": "^8.0.0", - "globby": "^11.0.4", - "hosted-git-info": "^5.1.0", - "ini": "^4.1.1", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", "p-map": "^4.0.0", - "pacote": "17.0.4", + "pacote": "17.0.6", "parse-github-url": "^1.0.2", "picomatch": "^4.0.1", "progress": "^2.0.3", @@ -40,52 +38,51 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "update-notifier": "^6.0.2" }, "bin": { "ncu": "build/src/bin/cli.js", "npm-check-updates": "build/src/bin/cli.js" }, "devDependencies": { - "@trivago/prettier-plugin-sort-imports": "^4.2.1", - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/chai-string": "^1.4.4", - "@types/cli-table": "^0.3.3", - "@types/hosted-git-info": "^3.0.4", - "@types/ini": "^1.3.32", - "@types/js-yaml": "^4.0.8", - "@types/json-parse-helpfulerror": "^1.0.2", - "@types/jsonlines": "^0.1.4", - "@types/lodash": "^4.14.200", - "@types/make-fetch-happen": "^10.0.3", - "@types/minimatch": "^5.1.2", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.10", - "@types/pacote": "^11.1.7", - "@types/parse-github-url": "^1.0.2", - "@types/progress": "^2.0.6", - "@types/prompts": "^2.4.7", - "@types/remote-git-tags": "^4.0.1", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.5.4", - "@types/semver-utils": "^1.1.2", - "@types/sinon": "^17.0.0", - "@types/update-notifier": "^6.0.6", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@types/chai": "^4.3.12", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-string": "^1.4.5", + "@types/cli-table": "^0.3.4", + "@types/hosted-git-info": "^3.0.5", + "@types/ini": "^4.1.0", + "@types/js-yaml": "^4.0.9", + "@types/json-parse-helpfulerror": "^1.0.3", + "@types/jsonlines": "^0.1.5", + "@types/lodash": "^4.17.0", + "@types/make-fetch-happen": "^10.0.4", + "@types/mocha": "^10.0.6", + "@types/node": "^20.11.26", + "@types/pacote": "^11.1.8", + "@types/parse-github-url": "^1.0.3", + "@types/picomatch": "^2.3.3", + "@types/progress": "^2.0.7", + "@types/prompts": "^2.4.9", + "@types/remote-git-tags": "^4.0.2", + "@types/semver": "^7.5.8", + "@types/semver-utils": "^1.1.3", + "@types/sinon": "^17.0.3", + "@types/update-notifier": "^6.0.8", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "c8": "^8.0.1", + "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-jsdoc": "^46.8.2", - "eslint-plugin-n": "^16.2.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsdoc": "^48.2.1", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", "lockfile-lint": "^4.13.2", "markdownlint-cli": "^0.39.0", @@ -1094,95 +1091,66 @@ } }, "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.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", + "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", + "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.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", "engines": { "node": "^14.17.0 || ^16.13.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.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "node_modules/@sigstore/tuf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", + "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", - "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "node_modules/@sigstore/verify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", + "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" + "@sigstore/bundle": "^2.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -1571,9 +1539,9 @@ "dev": true }, "node_modules/@types/sinon": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.0.tgz", - "integrity": "sha512-oN4AeDMFCeNZrAffCjhLcwwVymRZL2c9mljUmhPnd0eiM06d4ELDg0Q0TSvnZXrCIFlSA859qIdcfu1HapswPQ==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, "dependencies": { "@types/sinonjs__fake-timers": "*" @@ -1843,6 +1811,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@yarnpkg/parsers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -2011,6 +1985,18 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -2633,6 +2619,20 @@ "node": ">=10" } }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3131,14 +3131,6 @@ "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -3435,10 +3427,22 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -4690,6 +4694,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -4964,6 +4979,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -5021,20 +5047,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-in-ci": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", - "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", - "bin": { - "is-in-ci": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -5245,6 +5257,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "engines": { + "node": ">=12" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -7135,9 +7155,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.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", @@ -7154,7 +7174,7 @@ "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" }, @@ -7165,36 +7185,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pacote/node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8145,14 +8135,16 @@ "license": "ISC" }, "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.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", "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.2.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -8764,16 +8756,10 @@ "json5": "lib/cli.js" } }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/tuf-js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", - "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", "dependencies": { "@tufjs/models": "2.0.0", "debug": "^4.3.4", @@ -8783,57 +8769,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -9266,25 +9201,27 @@ } }, "node_modules/update-notifier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", - "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dependencies": { - "boxen": "^7.1.1", - "chalk": "^5.3.0", + "boxen": "^7.0.0", + "chalk": "^5.0.1", "configstore": "^6.0.0", + "has-yarn": "^3.0.0", "import-lazy": "^4.0.0", - "is-in-ci": "^0.1.0", + "is-ci": "^3.0.1", "is-installed-globally": "^0.4.0", "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", "latest-version": "^7.0.0", "pupa": "^3.1.0", - "semver": "^7.5.4", + "semver": "^7.3.7", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=18" + "node": ">=14.16" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" diff --git a/package.json b/package.json index 449de43c..dcd75a7f 100644 --- a/package.json +++ b/package.json @@ -67,17 +67,15 @@ "fast-memoize": "^2.5.2", "find-up": "5.0.0", "fp-and-or": "^1.0.2", - "get-stdin": "^8.0.0", - "globby": "^11.0.4", - "hosted-git-info": "^5.1.0", - "ini": "^4.1.1", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", "js-yaml": "^4.1.0", "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", "make-fetch-happen": "^13.0.0", "p-map": "^4.0.0", - "pacote": "17.0.4", + "pacote": "17.0.6", "parse-github-url": "^1.0.2", "picomatch": "^4.0.1", "progress": "^2.0.3", @@ -91,43 +89,42 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "update-notifier": "^6.0.2" }, "devDependencies": { - "@trivago/prettier-plugin-sort-imports": "^4.2.1", - "@types/chai": "^4.3.9", - "@types/chai-as-promised": "^7.1.7", - "@types/chai-string": "^1.4.4", - "@types/cli-table": "^0.3.3", - "@types/hosted-git-info": "^3.0.4", - "@types/ini": "^1.3.32", - "@types/js-yaml": "^4.0.8", - "@types/json-parse-helpfulerror": "^1.0.2", - "@types/jsonlines": "^0.1.4", - "@types/lodash": "^4.14.200", - "@types/make-fetch-happen": "^10.0.3", - "@types/minimatch": "^5.1.2", - "@types/mocha": "^10.0.3", - "@types/node": "^20.8.10", - "@types/pacote": "^11.1.7", - "@types/parse-github-url": "^1.0.2", - "@types/progress": "^2.0.6", - "@types/prompts": "^2.4.7", - "@types/remote-git-tags": "^4.0.1", - "@types/rimraf": "^3.0.2", - "@types/semver": "^7.5.4", - "@types/semver-utils": "^1.1.2", - "@types/sinon": "^17.0.0", - "@types/update-notifier": "^6.0.6", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@types/chai": "^4.3.12", + "@types/chai-as-promised": "^7.1.8", + "@types/chai-string": "^1.4.5", + "@types/cli-table": "^0.3.4", + "@types/hosted-git-info": "^3.0.5", + "@types/ini": "^4.1.0", + "@types/js-yaml": "^4.0.9", + "@types/json-parse-helpfulerror": "^1.0.3", + "@types/jsonlines": "^0.1.5", + "@types/lodash": "^4.17.0", + "@types/make-fetch-happen": "^10.0.4", + "@types/mocha": "^10.0.6", + "@types/node": "^20.11.26", + "@types/pacote": "^11.1.8", + "@types/parse-github-url": "^1.0.3", + "@types/picomatch": "^2.3.3", + "@types/progress": "^2.0.7", + "@types/prompts": "^2.4.9", + "@types/remote-git-tags": "^4.0.2", + "@types/semver": "^7.5.8", + "@types/semver-utils": "^1.1.3", + "@types/sinon": "^17.0.3", + "@types/update-notifier": "^6.0.8", "@typescript-eslint/eslint-plugin": "^6.9.1", "@typescript-eslint/parser": "^6.9.1", - "c8": "^8.0.1", + "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", "cross-env": "^7.0.3", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", "eslint-config-raine": "^0.5.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.29.1", From ce7fa457dc3cd4e96e1f46969d59b2bfb3dcdfa7 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 23:30:44 +0000 Subject: [PATCH 36/60] Migrate spawn-please stdout. --- src/package-managers/bun.ts | 6 +- src/package-managers/npm.ts | 3 +- src/package-managers/pnpm.ts | 3 +- src/package-managers/yarn.ts | 10 +-- src/scripts/build-options.ts | 6 +- src/types/spawn-please.d.ts | 7 +- test/bin.test.ts | 94 ++++++++++++------------ test/deep.test.ts | 15 ++-- test/doctor.test.ts | 5 +- test/filter.test.ts | 36 ++++----- test/filterVersion.test.ts | 8 +- test/format.test.ts | 12 +-- test/global.test.ts | 2 +- test/group.test.ts | 2 +- test/install.test.ts | 12 +-- test/package-managers/deno/index.test.ts | 12 +-- test/rc-config.test.ts | 40 +++++----- test/workspaces.test.ts | 78 +++++++++++--------- 18 files changed, 187 insertions(+), 164 deletions(-) diff --git a/src/package-managers/bun.ts b/src/package-managers/bun.ts index 8c13805f..9561e8e1 100644 --- a/src/package-managers/bun.ts +++ b/src/package-managers/bun.ts @@ -14,7 +14,7 @@ async function spawnBun( npmOptions: NpmOptions = {}, spawnPleaseOptions: SpawnPleaseOptions = {}, spawnOptions: Index = {}, -): Promise { +): Promise<{ stdout: string, stderr: string }> { // Bun not yet supported on Windows. // @see https://github.com/oven-sh/bun/issues/43 if (process.platform === 'win32') { @@ -33,7 +33,7 @@ async function spawnBun( /** Returns the global directory of bun. */ export const defaultPrefix = async (options: Options): Promise => options.global - ? options.prefix || process.env.BUN_INSTALL || path.dirname(await spawn('bun', ['pm', '-g', 'bin'])) + ? options.prefix || process.env.BUN_INSTALL || path.dirname((await spawn('bun', ['pm', '-g', 'bin'])).stdout) : undefined /** @@ -43,7 +43,7 @@ export const list = async (options: Options = {}): Promise ({ [name]: version, })) diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index 2fdc0372..550acc68 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -220,20 +220,20 @@ async function spawnYarn( * @param [options.prefix] * @returns */ -export async function defaultPrefix(options: Options): Promise { +export async function defaultPrefix(options: Options): Promise { if (options.prefix) { return Promise.resolve(options.prefix) } const cmd = process.platform === 'win32' ? 'yarn.cmd' : 'yarn' - const prefix = await spawn(cmd, ['global', 'dir']) + const { stdout: prefix } = await spawn(cmd, ['global', 'dir']) // yarn 2.0 does not support yarn global // catch error to prevent process from crashing // https://github.com/raineorshine/npm-check-updates/issues/873 - .catch(() => { - /* empty */ - }) + .catch(() => ({ + stdout: null + })) // FIX: for ncu -g doesn't work on homebrew or windows #146 // https://github.com/raineorshine/npm-check-updates/issues/146 diff --git a/src/scripts/build-options.ts b/src/scripts/build-options.ts index 7eb95e3a..ef77c707 100644 --- a/src/scripts/build-options.ts +++ b/src/scripts/build-options.ts @@ -103,10 +103,12 @@ export interface RunOptions { } /** Generates a JSON schema for the ncurc file. */ -const generateRunOptionsJsonSchema = async (): Promise => +const generateRunOptionsJsonSchema = async (): Promise => { // programmatic usage of typescript-json-schema does not work, at least not straightforwardly. // Use the CLI which works out-of-the-box. - spawn('typescript-json-schema', ['tsconfig.json', 'RunOptions']) + const { stdout } = await spawn('typescript-json-schema', ['tsconfig.json', 'RunOptions']) + return stdout +} ;(async () => { await fs.writeFile('README.md', await injectReadme()) diff --git a/src/types/spawn-please.d.ts b/src/types/spawn-please.d.ts index 05592f1e..73fa454e 100644 --- a/src/types/spawn-please.d.ts +++ b/src/types/spawn-please.d.ts @@ -1,2 +1,7 @@ // add to tsconfig compilerOptions.paths -declare module 'spawn-please' +declare module 'spawn-please' { + export default function(command: string, args?: string[], options?: any, spawnOptions?: any): Promise<{ + stdout: string, + stderr: string + }>; +} diff --git a/test/bin.test.ts b/test/bin.test.ts index 6611c926..d2913c6c 100644 --- a/test/bin.test.ts +++ b/test/bin.test.ts @@ -13,53 +13,53 @@ const bin = path.join(__dirname, '../build/src/bin/cli.js') describe('bin', async function () { it('fetch latest version from registry (not stubbed)', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') }) it('output only upgraded with --jsonUpgraded', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') stub.restore() }) it('--loglevel verbose', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--loglevel', 'verbose'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), ) - output.should.containIgnoreCase('Initializing') - output.should.containIgnoreCase('Running in local mode') - output.should.containIgnoreCase('Finding package file data') + stdout.should.containIgnoreCase('Initializing') + stdout.should.containIgnoreCase('Running in local mode') + stdout.should.containIgnoreCase('Finding package file data') stub.restore() }) it('--verbose', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn('node', [bin, '--verbose'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } })) - output.should.containIgnoreCase('Initializing') - output.should.containIgnoreCase('Running in local mode') - output.should.containIgnoreCase('Finding package file data') + const { stdout } = await spawn('node', [bin, '--verbose'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } })) + stdout.should.containIgnoreCase('Initializing') + stdout.should.containIgnoreCase('Running in local mode') + stdout.should.containIgnoreCase('Finding package file data') stub.restore() }) it('accept stdin', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies: { express: '1' } })) - output.trim().should.startWith('express') + const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies: { express: '1' } })) + stdout.trim().should.startWith('express') stub.restore() }) @@ -75,7 +75,7 @@ describe('bin', async function () { it('fall back to package.json search when receiving empty content on stdin', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const stdout = await spawn('node', [bin, '--stdin']) + const { stdout } = await spawn('node', [bin, '--stdin']) stdout .toString() .trim() @@ -85,8 +85,8 @@ describe('bin', async function () { it('use package.json in cwd by default', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn('node', [bin, '--jsonUpgraded'], { cwd: path.join(__dirname, 'test-data/ncu') }) - const pkgData = JSON.parse(output) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded'], { cwd: path.join(__dirname, 'test-data/ncu') }) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') stub.restore() }) @@ -112,8 +112,8 @@ describe('bin', async function () { const pkgFile = path.join(tempDir, 'package.json') await fs.writeFile(pkgFile, JSON.stringify({ dependencies: { express: '1' } }), 'utf-8') try { - const text = await spawn('node', [bin, '--jsonUpgraded', '--packageFile', pkgFile]) - const pkgData = JSON.parse(text) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--packageFile', pkgFile]) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -194,8 +194,8 @@ describe('bin', async function () { it('suppress stdout when --silent is provided', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn('node', [bin, '--silent'], JSON.stringify({ dependencies: { express: '1' } })) - output.trim().should.equal('') + const { stdout } = await spawn('node', [bin, '--silent'], JSON.stringify({ dependencies: { express: '1' } })) + stdout.trim().should.equal('') stub.restore() }) @@ -211,8 +211,8 @@ describe('bin', async function () { const pkgFile = path.join(tempDir, 'package.json') await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - const output = await spawn('node', [bin, '--packageFile', pkgFile, '--filter', 'ncu-test-v2 ncu-test-tag']) - output.should.include('"ncu-test-v2 ncu-test-tag"') + const { stdout } = await spawn('node', [bin, '--packageFile', pkgFile, '--filter', 'ncu-test-v2 ncu-test-tag']) + stdout.should.include('"ncu-test-v2 ncu-test-tag"') } finally { await fs.rm(tempDir, { recursive: true, force: true }) stub.restore() @@ -227,20 +227,20 @@ describe('bin', async function () { event: 'link:../link', workspace: 'workspace:../workspace', } - const output = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) - stripAnsi(output)!.should.not.include('No package versions were returned.') + stripAnsi(stdout)!.should.not.include('No package versions were returned.') stub.restore() }) it('combine boolean flags with arguments', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--jsonUpgraded', 'ncu-test-v2'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), ) - const upgraded = JSON.parse(output) as Index + const upgraded = JSON.parse(stdout) as Index upgraded.should.deep.equal({ 'ncu-test-v2': '99.9.9', }) @@ -261,8 +261,8 @@ describe('bin', async function () { const dependencies = { 'ncu-test-v2': 'https://github.com/raineorshine/ncu-test-v2.git#v1.0.0', } - const output = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) - stripAnsi(output) + const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + stripAnsi(stdout) .trim() .should.equal('ncu-test-v2 https://github.com/raineorshine/ncu-test-v2.git#v1.0.0 → v2.0.0') }) @@ -274,41 +274,41 @@ describe('bin', async function () { const dependencies = { request: 'npm:ncu-test-v2@1.0.0', } - const output = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) - stripAnsi(output).trim().should.equal('request npm:ncu-test-v2@1.0.0 → 99.9.9') + const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + stripAnsi(stdout).trim().should.equal('request npm:ncu-test-v2@1.0.0 → 99.9.9') stub.restore() }) }) describe('option-specific help', () => { it('long option', async () => { - const output = await spawn('node', [bin, '--help', '--filter']) - output.trim().should.match(/^Usage:\s+ncu --filter/) + const { stdout } = await spawn('node', [bin, '--help', '--filter']) + stdout.trim().should.match(/^Usage:\s+ncu --filter/) }) it('long option without "--" prefix', async () => { - const output = await spawn('node', [bin, '--help', '-f']) - output.trim().should.match(/^Usage:\s+ncu --filter/) + const { stdout } = await spawn('node', [bin, '--help', '-f']) + stdout.trim().should.match(/^Usage:\s+ncu --filter/) }) it('short option', async () => { - const output = await spawn('node', [bin, '--help', 'filter']) - output.trim().should.match(/^Usage:\s+ncu --filter/) + const { stdout } = await spawn('node', [bin, '--help', 'filter']) + stdout.trim().should.match(/^Usage:\s+ncu --filter/) }) it('short option without "-" prefix', async () => { - const output = await spawn('node', [bin, '--help', 'f']) - output.trim().should.match(/^Usage:\s+ncu --filter/) + const { stdout } = await spawn('node', [bin, '--help', 'f']) + stdout.trim().should.match(/^Usage:\s+ncu --filter/) }) it('option with default', async () => { - const output = await spawn('node', [bin, '--help', '--concurrency']) - output.trim().should.containIgnoreCase('Default:') + const { stdout } = await spawn('node', [bin, '--help', '--concurrency']) + stdout.trim().should.containIgnoreCase('Default:') }) it('option with extended help', async () => { - const output = await spawn('node', [bin, '--help', '--target']) - output.trim().should.containIgnoreCase('Upgrade to the highest version number') + const { stdout } = await spawn('node', [bin, '--help', '--target']) + stdout.trim().should.containIgnoreCase('Upgrade to the highest version number') // run extended help on other options for test coverage await spawn('node', [bin, '--help', 'doctor']) @@ -319,13 +319,13 @@ describe('bin', async function () { }) it('unknown option', async () => { - const output = await spawn('node', [bin, '--help', '--foo']) - output.trim().should.containIgnoreCase('Unknown option') + const { stdout } = await spawn('node', [bin, '--help', '--foo']) + stdout.trim().should.containIgnoreCase('Unknown option') }) it('special --help --help', async () => { - const output = await spawn('node', [bin, '--help', '--help']) - output.trim().should.not.include('Usage') + const { stdout } = await spawn('node', [bin, '--help', '--help']) + stdout.trim().should.not.include('Usage') }) }) }) diff --git a/test/deep.test.ts b/test/deep.test.ts index f94d0363..39e95a5c 100644 --- a/test/deep.test.ts +++ b/test/deep.test.ts @@ -57,7 +57,8 @@ describe('--deep', function () { it('output json with --jsonAll', async () => { const tempDir = await setupDeepTest() try { - const deepJsonOut = await spawn('node', [bin, '--jsonAll', '--deep'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--deep'], { cwd: tempDir }) + const deepJsonOut = JSON.parse(stdout) deepJsonOut.should.have.property('package.json') deepJsonOut.should.have.property('packages/sub1/package.json') deepJsonOut.should.have.property('packages/sub2/package.json') @@ -92,7 +93,7 @@ describe('--deep', function () { it('update multiple packages', async () => { const tempDir = await setupDeepTest() try { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '-u', '--jsonUpgraded', '--packageFile', path.join(tempDir, '**/package.json')], '{ "dependencies": {}}', @@ -109,7 +110,7 @@ describe('--deep', function () { upgradedPkg2.dependencies.should.have.property('express') upgradedPkg2.dependencies.express.should.not.equal('1') - const json = JSON.parse(output) + const json = JSON.parse(stdout) // Make sure to fix windows paths with replace json.should.have.property(path.join(tempDir, 'packages/sub1/package.json').replace(/\\/g, '/')) json.should.have.property(path.join(tempDir, 'packages/sub2/package.json').replace(/\\/g, '/')) @@ -130,7 +131,8 @@ describe('--deep with nested ncurc files', function () { after(() => stub.restore()) it('use ncurc of nested packages', async () => { - const deepJsonOut = await spawn('node', [bin, '--jsonUpgraded', '--deep'], { cwd }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep'], { cwd }) + const deepJsonOut = JSON.parse(stdout) // root: reject: ['cute-animals'] deepJsonOut.should.have.property('package.json') @@ -157,9 +159,8 @@ describe('--deep with nested ncurc files', function () { }) it('use ncurc of nested packages with --mergeConfig option', async () => { - const deepJsonOut = await spawn('node', [bin, '--jsonUpgraded', '--deep', '--mergeConfig'], { cwd }).then( - JSON.parse, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep', '--mergeConfig'], { cwd }) + const deepJsonOut = JSON.parse(stdout) // root: reject: ['cute-animals'] deepJsonOut.should.have.property('package.json') diff --git a/test/doctor.test.ts b/test/doctor.test.ts index 447a556f..a1f9d510 100644 --- a/test/doctor.test.ts +++ b/test/doctor.test.ts @@ -21,7 +21,10 @@ const mockNpmVersions = { } /** Run the ncu CLI. */ -const ncu = (args: string[], options?: Record) => spawn('node', [bin, ...args], options) +const ncu = async (args: string[], options?: Record) => { + const { stdout } = await spawn('node', [bin, ...args], options) + return stdout +} /** Assertions for npm or yarn when tests pass. */ const testPass = ({ packageManager }: { packageManager: PackageManagerName }) => { diff --git a/test/filter.test.ts b/test/filter.test.ts index 27218de4..97c4c29c 100644 --- a/test/filter.test.ts +++ b/test/filter.test.ts @@ -207,23 +207,23 @@ describe('filter', () => { after(() => stub.restore()) it('filter by package name with --filter', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'express'], '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('filter by package name with -f', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '-f', 'express'], '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) @@ -248,12 +248,12 @@ describe('filter', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'lodash.map lodash.filter', 'lodash.map', 'lodash.filter'], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.have.property('lodash.map') upgraded.should.have.property('lodash.filter') }) @@ -266,12 +266,12 @@ describe('filter', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'lodash.map lodash.filter', ' '], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.have.property('lodash.map') upgraded.should.have.property('lodash.filter') }) @@ -284,12 +284,12 @@ describe('filter', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'ncu-test-v2', '--filter', 'ncu-test-tag'], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.have.property('ncu-test-v2') upgraded.should.have.property('ncu-test-tag') }) @@ -303,34 +303,34 @@ describe('reject', () => { after(() => stub.restore()) it('reject by package name with --reject', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--reject', 'chalk'], '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('reject by package name with -x', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '-x', 'chalk'], '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('reject with empty string should not reject anything', async () => { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--reject', '""', '--stdin', '-x', 'chalk'], '{ "dependencies": { "ncu-test-v2": "1.0.0", "ncu-test-tag": "1.0.0" } }', ) - const pkgData = JSON.parse(output) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') pkgData.should.have.property('ncu-test-tag') }) @@ -343,12 +343,12 @@ describe('reject', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--reject', 'ncu-test-v2', '--reject', 'ncu-test-tag'], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.not.have.property('ncu-test-v2') upgraded.should.not.have.property('ncu-test-tag') }) diff --git a/test/filterVersion.test.ts b/test/filterVersion.test.ts index 5360f786..e97f8229 100644 --- a/test/filterVersion.test.ts +++ b/test/filterVersion.test.ts @@ -127,12 +127,12 @@ describe('filterVersion', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--verbose', '--stdin', '--filterVersion', '1.0.0', '--filterVersion', '1.0.9'], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.have.property('ncu-test-v2') upgraded.should.have.property('ncu-test-10') stub.restore() @@ -151,12 +151,12 @@ describe('rejectVersion', () => { }, } - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--verbose', '--stdin', '--rejectVersion', '1.0.0', '--rejectVersion', '1.0.9'], JSON.stringify(pkgData), ) - const upgraded = JSON.parse(output) + const upgraded = JSON.parse(stdout) upgraded.should.not.have.property('ncu-test-v2') upgraded.should.not.have.property('ncu-test-10') stub.restore() diff --git a/test/format.test.ts b/test/format.test.ts index 5f6ea165..bf9aedff 100644 --- a/test/format.test.ts +++ b/test/format.test.ts @@ -27,8 +27,8 @@ describe('format', () => { 'ncu-test-v2': '^1.0.0', }, } - const output = await spawn('node', [bin, '--format', 'time', '--stdin'], JSON.stringify(packageData)) - expect(output).contains(timestamp) + const { stdout } = await spawn('node', [bin, '--format', 'time', '--stdin'], JSON.stringify(packageData)) + expect(stdout).contains(timestamp) stub.restore() }) @@ -46,8 +46,8 @@ describe('format', () => { ) try { await spawn('npm', ['install'], { cwd: tempDir }) - const output = await spawn('node', [bin, '--format', 'repo'], { cwd: tempDir }) - output.should.include('https://github.com/Mitsunee/modern-diacritics') + const { stdout } = await spawn('node', [bin, '--format', 'repo'], { cwd: tempDir }) + stdout.should.include('https://github.com/Mitsunee/modern-diacritics') } finally { await fs.rm(tempDir, { recursive: true, force: true }) } @@ -74,8 +74,8 @@ describe('format', () => { 'utf-8', ) try { - const output = await spawn('node', [bin, '--format', 'lines'], { cwd: tempDir }) - output.should.equals('ncu-test-v2@^2.0.0\nncu-test-tag@^1.1.0\n') + const { stdout } = await spawn('node', [bin, '--format', 'lines'], { cwd: tempDir }) + stdout.should.equals('ncu-test-v2@^2.0.0\nncu-test-tag@^1.1.0\n') } finally { await fs.rm(tempDir, { recursive: true, force: true }) stub.restore() diff --git a/test/global.test.ts b/test/global.test.ts index 38cca4bf..5baada4e 100644 --- a/test/global.test.ts +++ b/test/global.test.ts @@ -12,7 +12,7 @@ describe('global', () => { const itSkipWindows = process.platform === 'win32' ? it.skip : it itSkipWindows('global should run', async () => { // to speed up the test, only check npm (which is always installed globally) - const stdout = await spawn('node', [bin, '--jsonAll', '--global', 'npm']) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--global', 'npm']) const json = JSON.parse(stdout) expect(json).to.have.property('npm') }) diff --git a/test/group.test.ts b/test/group.test.ts index a771a345..b477e23f 100644 --- a/test/group.test.ts +++ b/test/group.test.ts @@ -41,7 +41,7 @@ async function groupTestScaffold( const configFile = path.join(tempDir, '.ncurc.js') await fs.writeFile(configFile, `module.exports = { groupFunction: ${groupFn.toString()} }`, 'utf-8') try { - const stdout = await spawn('node', [bin, '--format', 'group', '--configFilePath', tempDir], { + const { stdout } = await spawn('node', [bin, '--format', 'group', '--configFilePath', tempDir], { cwd: tempDir, }) stripAnsi(stdout).should.containIgnoreCase(expectedOutput) diff --git a/test/install.test.ts b/test/install.test.ts index af7daac0..6598541e 100644 --- a/test/install.test.ts +++ b/test/install.test.ts @@ -29,8 +29,8 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - const output = await spawn('node', [bin, '-u', '--packageFile', pkgFile]) - stripAnsi(output).should.include('Run npm install to install new versions') + const { stdout } = await spawn('node', [bin, '-u', '--packageFile', pkgFile]) + stripAnsi(stdout).should.include('Run npm install to install new versions') expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.false expect(await exists(path.join(tempDir, 'node_modules'))).to.be.false } finally { @@ -53,8 +53,8 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - const output = await spawn('node', [bin, '-u', '--packageFile', pkgFile, '--install', 'always']) - stripAnsi(output).should.not.include('Run npm install to install new versions') + const { stdout } = await spawn('node', [bin, '-u', '--packageFile', pkgFile, '--install', 'always']) + stripAnsi(stdout).should.not.include('Run npm install to install new versions') expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.true expect(await exists(path.join(tempDir, 'node_modules'))).to.be.true } finally { @@ -77,8 +77,8 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - const output = await spawn('node', [bin, '-u', '--packageFile', pkgFile, '--install', 'never']) - stripAnsi(output).should.not.include('Run npm install to install new versions') + const { stdout } = await spawn('node', [bin, '-u', '--packageFile', pkgFile, '--install', 'never']) + stripAnsi(stdout).should.not.include('Run npm install to install new versions') expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.false expect(await exists(path.join(tempDir, 'node_modules'))).to.be.false } finally { diff --git a/test/package-managers/deno/index.test.ts b/test/package-managers/deno/index.test.ts index 5b8b873a..e6e752af 100644 --- a/test/package-managers/deno/index.test.ts +++ b/test/package-managers/deno/index.test.ts @@ -20,12 +20,12 @@ describe('deno', async function () { } await fs.writeFile(pkgFile, JSON.stringify(pkg)) try { - const pkgData = await spawn( + const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--packageManager', 'deno', '--packageFile', pkgFile], undefined, ) - const pkg = jph.parse(pkgData) + const pkg = jph.parse(stdout) pkg.should.have.property('ncu-test-v2') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -42,10 +42,10 @@ describe('deno', async function () { } await fs.writeFile(pkgFile, JSON.stringify(pkg)) try { - const pkgData = await spawn('node', [bin, '--jsonUpgraded'], undefined, { + const { stdout } = await spawn('node', [bin, '--jsonUpgraded'], undefined, { cwd: tempDir, }) - const pkg = jph.parse(pkgData) + const pkg = jph.parse(stdout) pkg.should.have.property('ncu-test-v2') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -86,10 +86,10 @@ describe('deno', async function () { }` await fs.writeFile(pkgFile, pkgString) try { - const pkgData = await spawn('node', [bin, '--jsonUpgraded'], undefined, { + const { stdout } = await spawn('node', [bin, '--jsonUpgraded'], undefined, { cwd: tempDir, }) - const pkg = jph.parse(pkgData) + const pkg = jph.parse(stdout) pkg.should.have.property('ncu-test-v2') } finally { await fs.rm(tempDir, { recursive: true, force: true }) diff --git a/test/rc-config.test.ts b/test/rc-config.test.ts index 46a39204..11bb5cdb 100644 --- a/test/rc-config.test.ts +++ b/test/rc-config.test.ts @@ -20,12 +20,12 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ filter: 'ncu-test-v2' }), 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), ) - text.should.containIgnoreCase(`Using config file ${tempConfigFile}`) + stdout.should.containIgnoreCase(`Using config file ${tempConfigFile}`) } finally { await fs.rm(tempDir, { recursive: true, force: true }) } @@ -34,12 +34,12 @@ describe('rc-config', () => { it('do not print rcConfigPath when there is no rc config file', async () => { const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'npm-check-updates-')) try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--cwd', tempDir], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), ) - text.should.not.include('Using config file') + stdout.should.not.include('Using config file') } finally { await fs.rm(tempDir, { recursive: true, force: true }) } @@ -50,12 +50,12 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, '{}', 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), ) - text.should.not.include('Using config file') + stdout.should.not.include('Using config file') } finally { await fs.rm(tempDir, { recursive: true, force: true }) } @@ -66,12 +66,12 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, filter: 'ncu-test-v2' }), 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), ) - const pkgData = JSON.parse(text) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') pkgData.should.not.have.property('ncu-test-tag') } finally { @@ -85,12 +85,12 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, tempConfigFileName) await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, filter: 'ncu-test-v2' }), 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--configFileName', tempConfigFileName], JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), ) - const pkgData = JSON.parse(text) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') pkgData.should.not.have.property('ncu-test-tag') } finally { @@ -103,12 +103,12 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, filter: 'ncu-test-v2' }), 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--filter', 'ncu-test-tag'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), ) - const pkgData = JSON.parse(text) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-tag') pkgData.should.not.have.property('ncu-test-v2') } finally { @@ -121,13 +121,13 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true }), 'utf-8') try { - const output = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--no-jsonUpgraded'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), ) // if the output contains "Using config file", then we know that jsonUpgraded was overridden - output.should.include('Using config file') + stdout.should.include('Using config file') } finally { await fs.rm(tempDir, { recursive: true, force: true }) } @@ -139,12 +139,12 @@ describe('rc-config', () => { // if boolean arguments are not handled as a special case, ncu will incorrectly pass "--deep false" to commander, which will interpret it as two args, i.e. --deep and --filter false await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, deep: false }), 'utf-8') try { - const text = await spawn( + const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], JSON.stringify({ dependencies: { 'ncu-test-tag': '0.1.0' } }), ) - const pkgData = JSON.parse(text) + const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-tag') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -163,8 +163,8 @@ describe('rc-config', () => { ) try { // awkwardly, we have to set mergeConfig to enable autodetecting the rcconfig because otherwise it is explicitly disabled for tests - const text = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) - const firstLine = text.split('\n')[0] + const { stdout } = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) + const firstLine = stdout.split('\n')[0] // On OSX tempDir is /var/folders/cb/12345, but npm-check-updates recieves /private/var/folders/cb/12345. // Apparently OSX symlinks /tmp to /private/tmp for historical reasons. // Therefore, ignore any directories prepended to the config file path. @@ -187,8 +187,8 @@ describe('rc-config', () => { ) try { // awkwardly, we have to set mergeConfig to enable autodetecting the rcconfig because otherwise it is explicitly disabled for tests - const text = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) - const firstLine = text.split('\n')[0] + const { stdout } = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) + const firstLine = stdout.split('\n')[0] // On OSX tempDir is /var/folders/cb/12345, but npm-check-updates recieves /private/var/folders/cb/12345. // Apparently OSX symlinks /tmp to /private/tmp for historical reasons. // Therefore, ignore any directories prepended to the config file path. diff --git a/test/workspaces.test.ts b/test/workspaces.test.ts index 3d64732d..d220777b 100644 --- a/test/workspaces.test.ts +++ b/test/workspaces.test.ts @@ -136,7 +136,8 @@ describe('workspaces', () => { it('update workspaces with --workspaces', async () => { const tempDir = await setup(['packages/a']) try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -148,7 +149,8 @@ describe('workspaces', () => { it('update workspaces glob', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -161,7 +163,8 @@ describe('workspaces', () => { it('update workspaces with -ws', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '-ws'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '-ws'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -185,7 +188,8 @@ describe('workspaces', () => { ) try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output.should.not.have.property('other/package.json') @@ -201,7 +205,8 @@ describe('workspaces', () => { it('update workspaces/packages', async () => { const tempDir = await setup({ packages: ['packages/**'] }) try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -215,9 +220,8 @@ describe('workspaces', () => { it('ignore local workspace packages', async () => { const tempDir = await setupSymlinkedPackages() try { - const upgrades = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }).then( - JSON.parse, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }) + const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, 'packages/foo/package.json': { @@ -235,9 +239,8 @@ describe('workspaces', () => { it('ignore local workspace packages with different names than their folders', async () => { const tempDir = await setupSymlinkedPackages(['packages/**'], 'chalk') try { - const upgrades = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }).then( - JSON.parse, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }) + const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, 'packages/foo/package.json': { @@ -267,7 +270,8 @@ describe('workspaces', () => { it('update single workspace with --workspace', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -279,7 +283,8 @@ describe('workspaces', () => { it('update single workspace with -w', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '-w', 'a'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '-w', 'a'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -291,9 +296,10 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { cwd: tempDir, - }).then(JSON.parse) + }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -307,9 +313,10 @@ describe('workspaces', () => { const tempDir = await setup() try { // when npm-check-updates is executed in a workspace directory but uses --cwd to point up to the root, make sure that the root package.json is checked for the workspaces property - const output = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], { cwd: path.join(tempDir, 'packages', 'a'), - }).then(JSON.parse) + }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -322,9 +329,10 @@ describe('workspaces', () => { it('update namespaced workspace', async () => { const tempDir = await setupSymlinkedPackages(['packages/**'], '@ncu/bar') try { - const upgrades = await spawn('node', [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], { + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], { cwd: tempDir, - }).then(JSON.parse) + }) + const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, 'packages/bar/package.json': { @@ -343,9 +351,8 @@ describe('workspaces', () => { it('update root project by default', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces', '--root'], { cwd: tempDir }).then( - JSON.parse, - ) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--root'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -360,9 +367,8 @@ describe('workspaces', () => { it('do not update the root project with --no-root', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces', '--no-root'], { cwd: tempDir }).then( - JSON.parse, - ) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--no-root'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.not.have.property('package.json') output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -410,7 +416,8 @@ describe('workspaces', () => { ) try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -430,7 +437,8 @@ describe('workspaces', () => { it('update root project and single workspace', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') @@ -444,9 +452,10 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const output = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { cwd: tempDir, - }).then(JSON.parse) + }) + const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -463,7 +472,8 @@ describe('workspaces', () => { it('read packages from pnpm-workspace.yaml', async () => { const tempDir = await setup(['packages/**'], { pnpm: true }) try { - const output = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }).then(JSON.parse) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') output['packages/a/package.json'].dependencies.should.have.property('ncu-test-tag') @@ -478,18 +488,18 @@ describe('workspaces', () => { // cannot be stubbed because npm config printing occurs in viewMany describe('not stubbed', () => { // This test fails on Node v20.3.1 on Github Actions (only). - // The output fails to match the expected value: "npm config (workspace project):\n{ncutest: 'root' }" + // The stdout fails to match the expected value: "npm config (workspace project):\n{ncutest: 'root' }" // Strangely, it matches up to the single quote: "npm config (workspace project):\n{ncutest: " it.skip('merge local npm config with pnpm workspace npm config', async () => { const tempDir = await setup(['packages/**'], { pnpm: true }) try { await fs.writeFile(path.join(tempDir, '.npmrc'), 'ncutest=root') await fs.writeFile(path.join(tempDir, 'packages/a/.npmrc'), 'ncutest=a') - const output = await spawn('node', [bin, '--verbose', '--packageManager', 'pnpm'], { + const { stdout } = await spawn('node', [bin, '--verbose', '--packageManager', 'pnpm'], { cwd: path.join(tempDir, 'packages/a'), }) - output.should.include(`npm config (workspace project):\n{ ncutest: 'root' }`) - output.should.include(`Using merged npm config:\n{\n ncutest: 'a',`) + stdout.should.include(`npm config (workspace project):\n{ ncutest: 'root' }`) + stdout.should.include(`Using merged npm config:\n{\n ncutest: 'a',`) } finally { await fs.rm(tempDir, { recursive: true, force: true }) } From 05d59459790a59721b4c68a9aac1430a4dc4b7f8 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 23:41:38 +0000 Subject: [PATCH 37/60] Migrate spawn-please options. --- src/types/spawn-please.d.ts | 7 ++++++- test/bin.test.ts | 28 +++++++++++++------------- test/deep.test.ts | 10 +++++----- test/doctor.test.ts | 2 +- test/filter.test.ts | 20 +++++++++---------- test/filterVersion.test.ts | 4 ++-- test/format.test.ts | 14 ++++++------- test/group.test.ts | 2 +- test/install.test.ts | 8 ++++---- test/rc-config.test.ts | 22 ++++++++++---------- test/timeout.test.ts | 4 ++-- test/workspaces.test.ts | 40 ++++++++++++++++++------------------- 12 files changed, 83 insertions(+), 78 deletions(-) diff --git a/src/types/spawn-please.d.ts b/src/types/spawn-please.d.ts index 73fa454e..6773c396 100644 --- a/src/types/spawn-please.d.ts +++ b/src/types/spawn-please.d.ts @@ -1,6 +1,11 @@ // add to tsconfig compilerOptions.paths declare module 'spawn-please' { - export default function(command: string, args?: string[], options?: any, spawnOptions?: any): Promise<{ + export default function(command: string, args?: string[], options?: { + rejectOnError?: boolean | undefined; + stdin?: string | undefined; + stderr?: ((data: string) => void) | undefined; + stdout?: ((data: string) => void) | undefined; +}, spawnOptions?: any): Promise<{ stdout: string, stderr: string }>; diff --git a/test/bin.test.ts b/test/bin.test.ts index d2913c6c..2a068d48 100644 --- a/test/bin.test.ts +++ b/test/bin.test.ts @@ -16,7 +16,7 @@ describe('bin', async function () { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') @@ -27,7 +27,7 @@ describe('bin', async function () { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') @@ -39,7 +39,7 @@ describe('bin', async function () { const { stdout } = await spawn( 'node', [bin, '--loglevel', 'verbose'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, ) stdout.should.containIgnoreCase('Initializing') stdout.should.containIgnoreCase('Running in local mode') @@ -49,7 +49,7 @@ describe('bin', async function () { it('--verbose', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--verbose'], JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } })) + const { stdout } = await spawn('node', [bin, '--verbose'], { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }) stdout.should.containIgnoreCase('Initializing') stdout.should.containIgnoreCase('Running in local mode') stdout.should.containIgnoreCase('Finding package file data') @@ -58,7 +58,7 @@ describe('bin', async function () { it('accept stdin', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies: { express: '1' } })) + const { stdout } = await spawn('node', [bin, '--stdin'], { stdin: JSON.stringify({ dependencies: { express: '1' } }) }) stdout.trim().should.startWith('express') stub.restore() }) @@ -68,7 +68,7 @@ describe('bin', async function () { await spawn( 'node', [bin, '--stdin', '--errorLevel', '2'], - JSON.stringify({ dependencies: { express: '1' } }), + { stdin: JSON.stringify({ dependencies: { express: '1' } }) }, ).should.eventually.be.rejectedWith('Dependencies not up-to-date') stub.restore() }) @@ -85,7 +85,7 @@ describe('bin', async function () { it('use package.json in cwd by default', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--jsonUpgraded'], { cwd: path.join(__dirname, 'test-data/ncu') }) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded'], {}, { cwd: path.join(__dirname, 'test-data/ncu') }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') stub.restore() @@ -93,7 +93,7 @@ describe('bin', async function () { it('throw error if there is no package', async () => { // run from tmp dir to avoid ncu analyzing the project's package.json - return spawn('node', [bin], { cwd: os.tmpdir() }).should.eventually.be.rejectedWith('No package.json') + return spawn('node', [bin], {}, { cwd: os.tmpdir() }).should.eventually.be.rejectedWith('No package.json') }) it('throw error if there is no package in --cwd', async () => { @@ -181,7 +181,7 @@ describe('bin', async function () { const pkgFile = path.join(tempDir, 'package.json') await fs.writeFile(pkgFile, JSON.stringify({ dependencies: { express: '1' } }), 'utf-8') try { - await spawn('node', [bin, '-u', '--stdin', '--packageFile', pkgFile], JSON.stringify({ dependencies: {} })) + await spawn('node', [bin, '-u', '--stdin', '--packageFile', pkgFile], { stdin: JSON.stringify({ dependencies: {} }) }) const upgradedPkg = JSON.parse(await fs.readFile(pkgFile, 'utf-8')) upgradedPkg.should.have.property('dependencies') upgradedPkg.dependencies.should.have.property('express') @@ -194,7 +194,7 @@ describe('bin', async function () { it('suppress stdout when --silent is provided', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--silent'], JSON.stringify({ dependencies: { express: '1' } })) + const { stdout } = await spawn('node', [bin, '--silent'], { stdin: JSON.stringify({ dependencies: { express: '1' } }) }) stdout.trim().should.equal('') stub.restore() }) @@ -227,7 +227,7 @@ describe('bin', async function () { event: 'link:../link', workspace: 'workspace:../workspace', } - const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + const { stdout } = await spawn('node', [bin, '--stdin'], { stdin: JSON.stringify({ dependencies }) }) stripAnsi(stdout)!.should.not.include('No package versions were returned.') stub.restore() @@ -238,7 +238,7 @@ describe('bin', async function () { const { stdout } = await spawn( 'node', [bin, '--stdin', '--jsonUpgraded', 'ncu-test-v2'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }) }, ) const upgraded = JSON.parse(stdout) as Index upgraded.should.deep.equal({ @@ -261,7 +261,7 @@ describe('bin', async function () { const dependencies = { 'ncu-test-v2': 'https://github.com/raineorshine/ncu-test-v2.git#v1.0.0', } - const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + const { stdout } = await spawn('node', [bin, '--stdin'], { stdin: JSON.stringify({ dependencies }) }) stripAnsi(stdout) .trim() .should.equal('ncu-test-v2 https://github.com/raineorshine/ncu-test-v2.git#v1.0.0 → v2.0.0') @@ -274,7 +274,7 @@ describe('bin', async function () { const dependencies = { request: 'npm:ncu-test-v2@1.0.0', } - const { stdout } = await spawn('node', [bin, '--stdin'], JSON.stringify({ dependencies })) + const { stdout } = await spawn('node', [bin, '--stdin'], { stdin: JSON.stringify({ dependencies }) }) stripAnsi(stdout).trim().should.equal('request npm:ncu-test-v2@1.0.0 → 99.9.9') stub.restore() }) diff --git a/test/deep.test.ts b/test/deep.test.ts index 39e95a5c..6e668f88 100644 --- a/test/deep.test.ts +++ b/test/deep.test.ts @@ -57,7 +57,7 @@ describe('--deep', function () { it('output json with --jsonAll', async () => { const tempDir = await setupDeepTest() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--deep'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--deep'], {}, { cwd: tempDir }) const deepJsonOut = JSON.parse(stdout) deepJsonOut.should.have.property('package.json') deepJsonOut.should.have.property('packages/sub1/package.json') @@ -76,7 +76,7 @@ describe('--deep', function () { await spawn( 'node', [bin, '-u', '--packageFile', path.join(tempDir, '/**/package.json')], - '{ "dependencies": {}}', + { stdin: '{ "dependencies": {}}' }, { cwd: tempDir, }, @@ -96,7 +96,7 @@ describe('--deep', function () { const { stdout } = await spawn( 'node', [bin, '-u', '--jsonUpgraded', '--packageFile', path.join(tempDir, '**/package.json')], - '{ "dependencies": {}}', + { stdin: '{ "dependencies": {}}' }, { cwd: tempDir }, ) @@ -131,7 +131,7 @@ describe('--deep with nested ncurc files', function () { after(() => stub.restore()) it('use ncurc of nested packages', async () => { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep'], { cwd }) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep'], {}, { cwd }) const deepJsonOut = JSON.parse(stdout) // root: reject: ['cute-animals'] @@ -159,7 +159,7 @@ describe('--deep with nested ncurc files', function () { }) it('use ncurc of nested packages with --mergeConfig option', async () => { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep', '--mergeConfig'], { cwd }) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep', '--mergeConfig'], {}, { cwd }) const deepJsonOut = JSON.parse(stdout) // root: reject: ['cute-animals'] diff --git a/test/doctor.test.ts b/test/doctor.test.ts index a1f9d510..bd3b9ecd 100644 --- a/test/doctor.test.ts +++ b/test/doctor.test.ts @@ -419,7 +419,7 @@ else { try { // explicitly set packageManager to avoid auto yarn detection - await spawn('npm', ['install'], { cwd: tempDir }) + await spawn('npm', ['install'], {}, { cwd: tempDir }) await ncu(['--doctor', '-u', '-p', 'npm'], { cwd: tempDir, diff --git a/test/filter.test.ts b/test/filter.test.ts index 97c4c29c..18db3103 100644 --- a/test/filter.test.ts +++ b/test/filter.test.ts @@ -210,7 +210,7 @@ describe('filter', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'express'], - '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') @@ -221,7 +221,7 @@ describe('filter', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '-f', 'express'], - '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') @@ -236,7 +236,7 @@ describe('filter', () => { }, } - await spawn('node', [bin, '--jsonUpgraded', '--filter', 'lodash.map', 'lodash.filter'], JSON.stringify(pkgData)) + await spawn('node', [bin, '--jsonUpgraded', '--filter', 'lodash.map', 'lodash.filter'], { stdin: JSON.stringify(pkgData) }) .should.eventually.be.rejected }) @@ -251,7 +251,7 @@ describe('filter', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'lodash.map lodash.filter', 'lodash.map', 'lodash.filter'], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.have.property('lodash.map') @@ -269,7 +269,7 @@ describe('filter', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'lodash.map lodash.filter', ' '], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.have.property('lodash.map') @@ -287,7 +287,7 @@ describe('filter', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'ncu-test-v2', '--filter', 'ncu-test-tag'], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.have.property('ncu-test-v2') @@ -306,7 +306,7 @@ describe('reject', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--reject', 'chalk'], - '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') @@ -317,7 +317,7 @@ describe('reject', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '-x', 'chalk'], - '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') @@ -328,7 +328,7 @@ describe('reject', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--reject', '""', '--stdin', '-x', 'chalk'], - '{ "dependencies": { "ncu-test-v2": "1.0.0", "ncu-test-tag": "1.0.0" } }', + { stdin: '{ "dependencies": { "ncu-test-v2": "1.0.0", "ncu-test-tag": "1.0.0" } }' }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') @@ -346,7 +346,7 @@ describe('reject', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--stdin', '--reject', 'ncu-test-v2', '--reject', 'ncu-test-tag'], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.not.have.property('ncu-test-v2') diff --git a/test/filterVersion.test.ts b/test/filterVersion.test.ts index e97f8229..8a3993b3 100644 --- a/test/filterVersion.test.ts +++ b/test/filterVersion.test.ts @@ -130,7 +130,7 @@ describe('filterVersion', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--verbose', '--stdin', '--filterVersion', '1.0.0', '--filterVersion', '1.0.9'], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.have.property('ncu-test-v2') @@ -154,7 +154,7 @@ describe('rejectVersion', () => { const { stdout } = await spawn( 'node', [bin, '--jsonUpgraded', '--verbose', '--stdin', '--rejectVersion', '1.0.0', '--rejectVersion', '1.0.9'], - JSON.stringify(pkgData), + { stdin: JSON.stringify(pkgData) }, ) const upgraded = JSON.parse(stdout) upgraded.should.not.have.property('ncu-test-v2') diff --git a/test/format.test.ts b/test/format.test.ts index bf9aedff..6bdd4c77 100644 --- a/test/format.test.ts +++ b/test/format.test.ts @@ -27,7 +27,7 @@ describe('format', () => { 'ncu-test-v2': '^1.0.0', }, } - const { stdout } = await spawn('node', [bin, '--format', 'time', '--stdin'], JSON.stringify(packageData)) + const { stdout } = await spawn('node', [bin, '--format', 'time', '--stdin'], { stdin: JSON.stringify(packageData) }) expect(stdout).contains(timestamp) stub.restore() }) @@ -45,8 +45,8 @@ describe('format', () => { 'utf-8', ) try { - await spawn('npm', ['install'], { cwd: tempDir }) - const { stdout } = await spawn('node', [bin, '--format', 'repo'], { cwd: tempDir }) + await spawn('npm', ['install'], {},{ cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--format', 'repo'], {}, { cwd: tempDir }) stdout.should.include('https://github.com/Mitsunee/modern-diacritics') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -74,7 +74,7 @@ describe('format', () => { 'utf-8', ) try { - const { stdout } = await spawn('node', [bin, '--format', 'lines'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--format', 'lines'], {}, { cwd: tempDir }) stdout.should.equals('ncu-test-v2@^2.0.0\nncu-test-tag@^1.1.0\n') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -103,7 +103,7 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines', '--jsonUpgraded'], { + await spawn('node', [bin, '--format', 'lines', '--jsonUpgraded'], {}, { cwd: tempDir, }).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonUpgraded.') } finally { @@ -133,7 +133,7 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines', '--jsonAll'], { + await spawn('node', [bin, '--format', 'lines', '--jsonAll'], {}, { cwd: tempDir, }).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonAll.') } finally { @@ -163,7 +163,7 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines,group'], { + await spawn('node', [bin, '--format', 'lines,group'], {}, { cwd: tempDir, }).should.eventually.be.rejectedWith('Cannot use --format lines with other formatting options.') } finally { diff --git a/test/group.test.ts b/test/group.test.ts index b477e23f..1888a620 100644 --- a/test/group.test.ts +++ b/test/group.test.ts @@ -41,7 +41,7 @@ async function groupTestScaffold( const configFile = path.join(tempDir, '.ncurc.js') await fs.writeFile(configFile, `module.exports = { groupFunction: ${groupFn.toString()} }`, 'utf-8') try { - const { stdout } = await spawn('node', [bin, '--format', 'group', '--configFilePath', tempDir], { + const { stdout } = await spawn('node', [bin, '--format', 'group', '--configFilePath', tempDir], {}, { cwd: tempDir, }) stripAnsi(stdout).should.containIgnoreCase(expectedOutput) diff --git a/test/install.test.ts b/test/install.test.ts index 6598541e..921a198b 100644 --- a/test/install.test.ts +++ b/test/install.test.ts @@ -102,7 +102,7 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile], { + await spawn('node', [bin, '-iu', '--packageFile', pkgFile], {}, { env: { ...process.env, INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], true]), @@ -129,7 +129,7 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile], { + await spawn('node', [bin, '-iu', '--packageFile', pkgFile], {}, { env: { ...process.env, INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], false]), @@ -156,7 +156,7 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'always'], { + await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'always'], {}, { env: { ...process.env, // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. @@ -185,7 +185,7 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'never'], { + await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'never'], {}, { env: { ...process.env, // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. diff --git a/test/rc-config.test.ts b/test/rc-config.test.ts index 11bb5cdb..9c068a56 100644 --- a/test/rc-config.test.ts +++ b/test/rc-config.test.ts @@ -23,7 +23,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }) }, ) stdout.should.containIgnoreCase(`Using config file ${tempConfigFile}`) } finally { @@ -37,7 +37,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--cwd', tempDir], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, ) stdout.should.not.include('Using config file') } finally { @@ -53,7 +53,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, ) stdout.should.not.include('Using config file') } finally { @@ -69,7 +69,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') @@ -88,7 +88,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--configFileName', tempConfigFileName], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') @@ -106,7 +106,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--filter', 'ncu-test-tag'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-tag') @@ -124,7 +124,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir, '--no-jsonUpgraded'], - JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, ) // if the output contains "Using config file", then we know that jsonUpgraded was overridden stdout.should.include('Using config file') @@ -142,7 +142,7 @@ describe('rc-config', () => { const { stdout } = await spawn( 'node', [bin, '--stdin', '--configFilePath', tempDir], - JSON.stringify({ dependencies: { 'ncu-test-tag': '0.1.0' } }), + { stdin: JSON.stringify({ dependencies: { 'ncu-test-tag': '0.1.0' } }) }, ) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-tag') @@ -163,7 +163,7 @@ describe('rc-config', () => { ) try { // awkwardly, we have to set mergeConfig to enable autodetecting the rcconfig because otherwise it is explicitly disabled for tests - const { stdout } = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--mergeConfig'], {}, { cwd: tempDir }) const firstLine = stdout.split('\n')[0] // On OSX tempDir is /var/folders/cb/12345, but npm-check-updates recieves /private/var/folders/cb/12345. // Apparently OSX symlinks /tmp to /private/tmp for historical reasons. @@ -187,7 +187,7 @@ describe('rc-config', () => { ) try { // awkwardly, we have to set mergeConfig to enable autodetecting the rcconfig because otherwise it is explicitly disabled for tests - const { stdout } = await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--mergeConfig'], {}, { cwd: tempDir }) const firstLine = stdout.split('\n')[0] // On OSX tempDir is /var/folders/cb/12345, but npm-check-updates recieves /private/var/folders/cb/12345. // Apparently OSX symlinks /tmp to /private/tmp for historical reasons. @@ -208,7 +208,7 @@ describe('rc-config', () => { try { // awkwardly, we have to set mergeConfig to enable autodetecting the rcconfig because otherwise it is explicitly disabled for tests - await spawn('node', [bin, '--mergeConfig'], { cwd: tempDir }) + await spawn('node', [bin, '--mergeConfig'], {}, { cwd: tempDir }) } finally { await fs.rm(tempDir, { recursive: true, force: true }) } diff --git a/test/timeout.test.ts b/test/timeout.test.ts index 4585bf3e..6524ee39 100644 --- a/test/timeout.test.ts +++ b/test/timeout.test.ts @@ -22,13 +22,13 @@ describe('timeout', function () { return spawn( 'node', [bin, '--timeout', '1'], - '{ "dependencies": { "express": "1" } }', + { stdin: '{ "dependencies": { "express": "1" } }' }, ).should.eventually.be.rejectedWith('Exceeded global timeout of 1ms') }) it('completes successfully with timeout', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - await spawn('node', [bin, '--timeout', '100000'], '{ "dependencies": { "express": "1" } }') + await spawn('node', [bin, '--timeout', '100000'], { stdin: '{ "dependencies": { "express": "1" } }' }) stub.restore() }) }) diff --git a/test/workspaces.test.ts b/test/workspaces.test.ts index d220777b..dbd1877f 100644 --- a/test/workspaces.test.ts +++ b/test/workspaces.test.ts @@ -136,7 +136,7 @@ describe('workspaces', () => { it('update workspaces with --workspaces', async () => { const tempDir = await setup(['packages/a']) try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') @@ -149,7 +149,7 @@ describe('workspaces', () => { it('update workspaces glob', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -163,7 +163,7 @@ describe('workspaces', () => { it('update workspaces with -ws', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '-ws'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '-ws'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -188,7 +188,7 @@ describe('workspaces', () => { ) try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -205,7 +205,7 @@ describe('workspaces', () => { it('update workspaces/packages', async () => { const tempDir = await setup({ packages: ['packages/**'] }) try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -220,7 +220,7 @@ describe('workspaces', () => { it('ignore local workspace packages', async () => { const tempDir = await setupSymlinkedPackages() try { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], {}, { cwd: tempDir }) const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, @@ -239,7 +239,7 @@ describe('workspaces', () => { it('ignore local workspace packages with different names than their folders', async () => { const tempDir = await setupSymlinkedPackages(['packages/**'], 'chalk') try { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspaces'], {}, { cwd: tempDir }) const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, @@ -270,7 +270,7 @@ describe('workspaces', () => { it('update single workspace with --workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') @@ -283,7 +283,7 @@ describe('workspaces', () => { it('update single workspace with -w', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '-w', 'a'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '-w', 'a'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') @@ -296,7 +296,7 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], {}, { cwd: tempDir, }) const output = JSON.parse(stdout) @@ -313,7 +313,7 @@ describe('workspaces', () => { const tempDir = await setup() try { // when npm-check-updates is executed in a workspace directory but uses --cwd to point up to the root, make sure that the root package.json is checked for the workspaces property - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], {}, { cwd: path.join(tempDir, 'packages', 'a'), }) const output = JSON.parse(stdout) @@ -329,7 +329,7 @@ describe('workspaces', () => { it('update namespaced workspace', async () => { const tempDir = await setupSymlinkedPackages(['packages/**'], '@ncu/bar') try { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], { + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], {}, { cwd: tempDir, }) const upgrades = JSON.parse(stdout) @@ -351,7 +351,7 @@ describe('workspaces', () => { it('update root project by default', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--root'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--root'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') @@ -367,7 +367,7 @@ describe('workspaces', () => { it('do not update the root project with --no-root', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--no-root'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces', '--no-root'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.not.have.property('package.json') output.should.have.property('packages/a/package.json') @@ -382,7 +382,7 @@ describe('workspaces', () => { it('update root project and workspaces if errorLevel=2', async () => { const tempDir = await setup() try { - await spawn('node', [bin, '--upgrade', '--workspaces', '--errorLevel', '2'], { + await spawn('node', [bin, '--upgrade', '--workspaces', '--errorLevel', '2'], {}, { cwd: tempDir, }).should.eventually.be.rejectedWith('Dependencies not up-to-date') const upgradedPkg = JSON.parse(await fs.readFile(path.join(tempDir, 'package.json'), 'utf-8')) @@ -416,7 +416,7 @@ describe('workspaces', () => { ) try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') @@ -437,7 +437,7 @@ describe('workspaces', () => { it('update root project and single workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') @@ -452,7 +452,7 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], { + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], {}, { cwd: tempDir, }) const output = JSON.parse(stdout) @@ -472,7 +472,7 @@ describe('workspaces', () => { it('read packages from pnpm-workspace.yaml', async () => { const tempDir = await setup(['packages/**'], { pnpm: true }) try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], { cwd: tempDir }) + const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspaces'], {}, { cwd: tempDir }) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -495,7 +495,7 @@ describe('workspaces', () => { try { await fs.writeFile(path.join(tempDir, '.npmrc'), 'ncutest=root') await fs.writeFile(path.join(tempDir, 'packages/a/.npmrc'), 'ncutest=a') - const { stdout } = await spawn('node', [bin, '--verbose', '--packageManager', 'pnpm'], { + const { stdout } = await spawn('node', [bin, '--verbose', '--packageManager', 'pnpm'], {}, { cwd: path.join(tempDir, 'packages/a'), }) stdout.should.include(`npm config (workspace project):\n{ ncutest: 'root' }`) From 7cc5b737887559a63cc86f597e5827ab09d39a86 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 23:54:55 +0000 Subject: [PATCH 38/60] Remove spawn-please.d.ts and use provided types. --- src/types/spawn-please.d.ts | 12 ------------ tsconfig.json | 1 - 2 files changed, 13 deletions(-) delete mode 100644 src/types/spawn-please.d.ts diff --git a/src/types/spawn-please.d.ts b/src/types/spawn-please.d.ts deleted file mode 100644 index 6773c396..00000000 --- a/src/types/spawn-please.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -// add to tsconfig compilerOptions.paths -declare module 'spawn-please' { - export default function(command: string, args?: string[], options?: { - rejectOnError?: boolean | undefined; - stdin?: string | undefined; - stderr?: ((data: string) => void) | undefined; - stdout?: ((data: string) => void) | undefined; -}, spawnOptions?: any): Promise<{ - stdout: string, - stderr: string - }>; -} diff --git a/tsconfig.json b/tsconfig.json index 75295128..0f1bba7c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,6 @@ "paths": { "libnpmconfig": ["./src/types/libnpmconfig"], "prompts-ncu": ["./src/types/prompts-ncu"], - "spawn-please": ["./src/types/spawn-please"] }, "resolveJsonModule": true, "outDir": "./build", From c95667de2e469b847edd442d695bfdcb9fc4e7a4 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Tue, 12 Mar 2024 23:57:26 +0000 Subject: [PATCH 39/60] prettier --- src/package-managers/bun.ts | 4 +-- src/package-managers/yarn.ts | 2 +- test/bin.test.ts | 56 ++++++++++++++--------------- test/deep.test.ts | 2 +- test/filter.test.ts | 45 ++++++++++-------------- test/format.test.ts | 35 +++++++++++++------ test/group.test.ts | 11 ++++-- test/install.test.ts | 68 +++++++++++++++++++++++------------- test/rc-config.test.ts | 48 ++++++++++--------------- test/timeout.test.ts | 8 ++--- test/workspaces.test.ts | 66 ++++++++++++++++++++++++---------- tsconfig.json | 2 +- 12 files changed, 196 insertions(+), 151 deletions(-) diff --git a/src/package-managers/bun.ts b/src/package-managers/bun.ts index 9561e8e1..b4715a9d 100644 --- a/src/package-managers/bun.ts +++ b/src/package-managers/bun.ts @@ -4,8 +4,8 @@ import keyValueBy from '../lib/keyValueBy' import programError from '../lib/programError' import { Index } from '../types/IndexType' import { NpmOptions } from '../types/NpmOptions' -import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import { Options } from '../types/Options' +import { SpawnPleaseOptions } from '../types/SpawnPleaseOptions' import * as npm from './npm' /** Spawn bun. */ @@ -14,7 +14,7 @@ async function spawnBun( npmOptions: NpmOptions = {}, spawnPleaseOptions: SpawnPleaseOptions = {}, spawnOptions: Index = {}, -): Promise<{ stdout: string, stderr: string }> { +): Promise<{ stdout: string; stderr: string }> { // Bun not yet supported on Windows. // @see https://github.com/oven-sh/bun/issues/43 if (process.platform === 'win32') { diff --git a/src/package-managers/yarn.ts b/src/package-managers/yarn.ts index 550acc68..96c84031 100644 --- a/src/package-managers/yarn.ts +++ b/src/package-managers/yarn.ts @@ -232,7 +232,7 @@ export async function defaultPrefix(options: Options): Promise { // catch error to prevent process from crashing // https://github.com/raineorshine/npm-check-updates/issues/873 .catch(() => ({ - stdout: null + stdout: null, })) // FIX: for ncu -g doesn't work on homebrew or windows #146 diff --git a/test/bin.test.ts b/test/bin.test.ts index 2a068d48..1c0d52cf 100644 --- a/test/bin.test.ts +++ b/test/bin.test.ts @@ -13,22 +13,18 @@ const bin = path.join(__dirname, '../build/src/bin/cli.js') describe('bin', async function () { it('fetch latest version from registry (not stubbed)', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin'], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') }) it('output only upgraded with --jsonUpgraded', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin'], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') stub.restore() @@ -36,11 +32,9 @@ describe('bin', async function () { it('--loglevel verbose', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn( - 'node', - [bin, '--loglevel', 'verbose'], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--loglevel', 'verbose'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + }) stdout.should.containIgnoreCase('Initializing') stdout.should.containIgnoreCase('Running in local mode') stdout.should.containIgnoreCase('Finding package file data') @@ -49,7 +43,9 @@ describe('bin', async function () { it('--verbose', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--verbose'], { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }) + const { stdout } = await spawn('node', [bin, '--verbose'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + }) stdout.should.containIgnoreCase('Initializing') stdout.should.containIgnoreCase('Running in local mode') stdout.should.containIgnoreCase('Finding package file data') @@ -58,18 +54,18 @@ describe('bin', async function () { it('accept stdin', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--stdin'], { stdin: JSON.stringify({ dependencies: { express: '1' } }) }) + const { stdout } = await spawn('node', [bin, '--stdin'], { + stdin: JSON.stringify({ dependencies: { express: '1' } }), + }) stdout.trim().should.startWith('express') stub.restore() }) it('reject out-of-date stdin with errorLevel 2', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - await spawn( - 'node', - [bin, '--stdin', '--errorLevel', '2'], - { stdin: JSON.stringify({ dependencies: { express: '1' } }) }, - ).should.eventually.be.rejectedWith('Dependencies not up-to-date') + await spawn('node', [bin, '--stdin', '--errorLevel', '2'], { + stdin: JSON.stringify({ dependencies: { express: '1' } }), + }).should.eventually.be.rejectedWith('Dependencies not up-to-date') stub.restore() }) @@ -181,7 +177,9 @@ describe('bin', async function () { const pkgFile = path.join(tempDir, 'package.json') await fs.writeFile(pkgFile, JSON.stringify({ dependencies: { express: '1' } }), 'utf-8') try { - await spawn('node', [bin, '-u', '--stdin', '--packageFile', pkgFile], { stdin: JSON.stringify({ dependencies: {} }) }) + await spawn('node', [bin, '-u', '--stdin', '--packageFile', pkgFile], { + stdin: JSON.stringify({ dependencies: {} }), + }) const upgradedPkg = JSON.parse(await fs.readFile(pkgFile, 'utf-8')) upgradedPkg.should.have.property('dependencies') upgradedPkg.dependencies.should.have.property('express') @@ -194,7 +192,9 @@ describe('bin', async function () { it('suppress stdout when --silent is provided', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn('node', [bin, '--silent'], { stdin: JSON.stringify({ dependencies: { express: '1' } }) }) + const { stdout } = await spawn('node', [bin, '--silent'], { + stdin: JSON.stringify({ dependencies: { express: '1' } }), + }) stdout.trim().should.equal('') stub.restore() }) @@ -235,11 +235,9 @@ describe('bin', async function () { it('combine boolean flags with arguments', async () => { const stub = stubNpmView('99.9.9', { spawn: true }) - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--jsonUpgraded', 'ncu-test-v2'], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--jsonUpgraded', 'ncu-test-v2'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), + }) const upgraded = JSON.parse(stdout) as Index upgraded.should.deep.equal({ 'ncu-test-v2': '99.9.9', diff --git a/test/deep.test.ts b/test/deep.test.ts index 6e668f88..43a94a6a 100644 --- a/test/deep.test.ts +++ b/test/deep.test.ts @@ -132,7 +132,7 @@ describe('--deep with nested ncurc files', function () { it('use ncurc of nested packages', async () => { const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--deep'], {}, { cwd }) - const deepJsonOut = JSON.parse(stdout) + const deepJsonOut = JSON.parse(stdout) // root: reject: ['cute-animals'] deepJsonOut.should.have.property('package.json') diff --git a/test/filter.test.ts b/test/filter.test.ts index 18db3103..80b7add3 100644 --- a/test/filter.test.ts +++ b/test/filter.test.ts @@ -207,22 +207,18 @@ describe('filter', () => { after(() => stub.restore()) it('filter by package name with --filter', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin', '--filter', 'express'], - { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin', '--filter', 'express'], { + stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('filter by package name with -f', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin', '-f', 'express'], - { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin', '-f', 'express'], { + stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') @@ -236,8 +232,9 @@ describe('filter', () => { }, } - await spawn('node', [bin, '--jsonUpgraded', '--filter', 'lodash.map', 'lodash.filter'], { stdin: JSON.stringify(pkgData) }) - .should.eventually.be.rejected + await spawn('node', [bin, '--jsonUpgraded', '--filter', 'lodash.map', 'lodash.filter'], { + stdin: JSON.stringify(pkgData), + }).should.eventually.be.rejected }) it('allow matching --filter and arguments', async () => { @@ -303,33 +300,27 @@ describe('reject', () => { after(() => stub.restore()) it('reject by package name with --reject', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin', '--reject', 'chalk'], - { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin', '--reject', 'chalk'], { + stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('reject by package name with -x', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--stdin', '-x', 'chalk'], - { stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }' }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--stdin', '-x', 'chalk'], { + stdin: '{ "dependencies": { "express": "1", "chalk": "0.1.0" } }', + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('express') pkgData.should.not.have.property('chalk') }) it('reject with empty string should not reject anything', async () => { - const { stdout } = await spawn( - 'node', - [bin, '--jsonUpgraded', '--reject', '""', '--stdin', '-x', 'chalk'], - { stdin: '{ "dependencies": { "ncu-test-v2": "1.0.0", "ncu-test-tag": "1.0.0" } }' }, - ) + const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--reject', '""', '--stdin', '-x', 'chalk'], { + stdin: '{ "dependencies": { "ncu-test-v2": "1.0.0", "ncu-test-tag": "1.0.0" } }', + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') pkgData.should.have.property('ncu-test-tag') diff --git a/test/format.test.ts b/test/format.test.ts index 6bdd4c77..7a23f33d 100644 --- a/test/format.test.ts +++ b/test/format.test.ts @@ -45,7 +45,7 @@ describe('format', () => { 'utf-8', ) try { - await spawn('npm', ['install'], {},{ cwd: tempDir }) + await spawn('npm', ['install'], {}, { cwd: tempDir }) const { stdout } = await spawn('node', [bin, '--format', 'repo'], {}, { cwd: tempDir }) stdout.should.include('https://github.com/Mitsunee/modern-diacritics') } finally { @@ -103,9 +103,14 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines', '--jsonUpgraded'], {}, { - cwd: tempDir, - }).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonUpgraded.') + await spawn( + 'node', + [bin, '--format', 'lines', '--jsonUpgraded'], + {}, + { + cwd: tempDir, + }, + ).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonUpgraded.') } finally { await fs.rm(tempDir, { recursive: true, force: true }) stub.restore() @@ -133,9 +138,14 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines', '--jsonAll'], {}, { - cwd: tempDir, - }).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonAll.') + await spawn( + 'node', + [bin, '--format', 'lines', '--jsonAll'], + {}, + { + cwd: tempDir, + }, + ).should.eventually.be.rejectedWith('Cannot specify both --format lines and --jsonAll.') } finally { await fs.rm(tempDir, { recursive: true, force: true }) stub.restore() @@ -163,9 +173,14 @@ describe('format', () => { 'utf-8', ) try { - await spawn('node', [bin, '--format', 'lines,group'], {}, { - cwd: tempDir, - }).should.eventually.be.rejectedWith('Cannot use --format lines with other formatting options.') + await spawn( + 'node', + [bin, '--format', 'lines,group'], + {}, + { + cwd: tempDir, + }, + ).should.eventually.be.rejectedWith('Cannot use --format lines with other formatting options.') } finally { await fs.rm(tempDir, { recursive: true, force: true }) stub.restore() diff --git a/test/group.test.ts b/test/group.test.ts index 1888a620..f2f75a16 100644 --- a/test/group.test.ts +++ b/test/group.test.ts @@ -41,9 +41,14 @@ async function groupTestScaffold( const configFile = path.join(tempDir, '.ncurc.js') await fs.writeFile(configFile, `module.exports = { groupFunction: ${groupFn.toString()} }`, 'utf-8') try { - const { stdout } = await spawn('node', [bin, '--format', 'group', '--configFilePath', tempDir], {}, { - cwd: tempDir, - }) + const { stdout } = await spawn( + 'node', + [bin, '--format', 'group', '--configFilePath', tempDir], + {}, + { + cwd: tempDir, + }, + ) stripAnsi(stdout).should.containIgnoreCase(expectedOutput) } finally { await fs.rm(tempDir, { recursive: true, force: true }) diff --git a/test/install.test.ts b/test/install.test.ts index 921a198b..0087be9d 100644 --- a/test/install.test.ts +++ b/test/install.test.ts @@ -102,12 +102,17 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile], {}, { - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], true]), + await spawn( + 'node', + [bin, '-iu', '--packageFile', pkgFile], + {}, + { + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], true]), + }, }, - }) + ) expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.true expect(await exists(path.join(tempDir, 'node_modules'))).to.be.true } finally { @@ -129,12 +134,17 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile], {}, { - env: { - ...process.env, - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], false]), + await spawn( + 'node', + [bin, '-iu', '--packageFile', pkgFile], + {}, + { + env: { + ...process.env, + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2'], false]), + }, }, - }) + ) expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.false expect(await exists(path.join(tempDir, 'node_modules'))).to.be.false } finally { @@ -156,14 +166,19 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'always'], {}, { - env: { - ...process.env, - // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. - // i.e. Testing that the prompt is not shown with --install always must be done manually. - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2']]), + await spawn( + 'node', + [bin, '-iu', '--packageFile', pkgFile, '--install', 'always'], + {}, + { + env: { + ...process.env, + // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. + // i.e. Testing that the prompt is not shown with --install always must be done manually. + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2']]), + }, }, - }) + ) expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.true expect(await exists(path.join(tempDir, 'node_modules'))).to.be.true } finally { @@ -185,14 +200,19 @@ describe('install', () => { await fs.writeFile(pkgFile, JSON.stringify(pkgData), 'utf-8') try { - await spawn('node', [bin, '-iu', '--packageFile', pkgFile, '--install', 'never'], {}, { - env: { - ...process.env, - // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. - // i.e. Testing that the prompt is not shown with --install never must be done manually. - INJECT_PROMPTS: JSON.stringify([['ncu-test-v2']]), + await spawn( + 'node', + [bin, '-iu', '--packageFile', pkgFile, '--install', 'never'], + {}, + { + env: { + ...process.env, + // NOTE: We can inject valuees, but we cannot test if the prompt was actually shown or not. + // i.e. Testing that the prompt is not shown with --install never must be done manually. + INJECT_PROMPTS: JSON.stringify([['ncu-test-v2']]), + }, }, - }) + ) expect(await exists(path.join(tempDir, 'package-lock.json'))).to.be.false expect(await exists(path.join(tempDir, 'node_modules'))).to.be.false } finally { diff --git a/test/rc-config.test.ts b/test/rc-config.test.ts index 9c068a56..52b4ddd8 100644 --- a/test/rc-config.test.ts +++ b/test/rc-config.test.ts @@ -20,11 +20,9 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ filter: 'ncu-test-v2' }), 'utf-8') try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--configFilePath', tempDir], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--configFilePath', tempDir], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0', 'ncu-test-tag': '0.1.0' } }), + }) stdout.should.containIgnoreCase(`Using config file ${tempConfigFile}`) } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -34,11 +32,9 @@ describe('rc-config', () => { it('do not print rcConfigPath when there is no rc config file', async () => { const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'npm-check-updates-')) try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--cwd', tempDir], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--cwd', tempDir], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1.0.0' } }), + }) stdout.should.not.include('Using config file') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -50,11 +46,9 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, '{}', 'utf-8') try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--configFilePath', tempDir], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--configFilePath', tempDir], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + }) stdout.should.not.include('Using config file') } finally { await fs.rm(tempDir, { recursive: true, force: true }) @@ -66,11 +60,9 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, filter: 'ncu-test-v2' }), 'utf-8') try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--configFilePath', tempDir], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--configFilePath', tempDir], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-v2') pkgData.should.not.have.property('ncu-test-tag') @@ -121,11 +113,9 @@ describe('rc-config', () => { const tempConfigFile = path.join(tempDir, '.ncurc.json') await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true }), 'utf-8') try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--configFilePath', tempDir, '--no-jsonUpgraded'], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--configFilePath', tempDir, '--no-jsonUpgraded'], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + }) // if the output contains "Using config file", then we know that jsonUpgraded was overridden stdout.should.include('Using config file') } finally { @@ -139,11 +129,9 @@ describe('rc-config', () => { // if boolean arguments are not handled as a special case, ncu will incorrectly pass "--deep false" to commander, which will interpret it as two args, i.e. --deep and --filter false await fs.writeFile(tempConfigFile, JSON.stringify({ jsonUpgraded: true, deep: false }), 'utf-8') try { - const { stdout } = await spawn( - 'node', - [bin, '--stdin', '--configFilePath', tempDir], - { stdin: JSON.stringify({ dependencies: { 'ncu-test-tag': '0.1.0' } }) }, - ) + const { stdout } = await spawn('node', [bin, '--stdin', '--configFilePath', tempDir], { + stdin: JSON.stringify({ dependencies: { 'ncu-test-tag': '0.1.0' } }), + }) const pkgData = JSON.parse(stdout) pkgData.should.have.property('ncu-test-tag') } finally { diff --git a/test/timeout.test.ts b/test/timeout.test.ts index 6524ee39..08e34017 100644 --- a/test/timeout.test.ts +++ b/test/timeout.test.ts @@ -19,11 +19,9 @@ describe('timeout', function () { }) it('exit with error when timeout is exceeded', async () => { - return spawn( - 'node', - [bin, '--timeout', '1'], - { stdin: '{ "dependencies": { "express": "1" } }' }, - ).should.eventually.be.rejectedWith('Exceeded global timeout of 1ms') + return spawn('node', [bin, '--timeout', '1'], { + stdin: '{ "dependencies": { "express": "1" } }', + }).should.eventually.be.rejectedWith('Exceeded global timeout of 1ms') }) it('completes successfully with timeout', async () => { diff --git a/test/workspaces.test.ts b/test/workspaces.test.ts index dbd1877f..15cfd757 100644 --- a/test/workspaces.test.ts +++ b/test/workspaces.test.ts @@ -296,9 +296,14 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], {}, { - cwd: tempDir, - }) + const { stdout } = await spawn( + 'node', + [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], + {}, + { + cwd: tempDir, + }, + ) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.have.property('packages/b/package.json') @@ -313,9 +318,14 @@ describe('workspaces', () => { const tempDir = await setup() try { // when npm-check-updates is executed in a workspace directory but uses --cwd to point up to the root, make sure that the root package.json is checked for the workspaces property - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], {}, { - cwd: path.join(tempDir, 'packages', 'a'), - }) + const { stdout } = await spawn( + 'node', + [bin, '--jsonAll', '--workspace', 'a', '--cwd', '../../'], + {}, + { + cwd: path.join(tempDir, 'packages', 'a'), + }, + ) const output = JSON.parse(stdout) output.should.have.property('packages/a/package.json') output.should.not.have.property('packages/b/package.json') @@ -329,9 +339,14 @@ describe('workspaces', () => { it('update namespaced workspace', async () => { const tempDir = await setupSymlinkedPackages(['packages/**'], '@ncu/bar') try { - const { stdout } = await spawn('node', [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], {}, { - cwd: tempDir, - }) + const { stdout } = await spawn( + 'node', + [bin, '--jsonUpgraded', '--workspace', '@ncu/bar'], + {}, + { + cwd: tempDir, + }, + ) const upgrades = JSON.parse(stdout) upgrades.should.deep.equal({ 'package.json': {}, @@ -382,9 +397,14 @@ describe('workspaces', () => { it('update root project and workspaces if errorLevel=2', async () => { const tempDir = await setup() try { - await spawn('node', [bin, '--upgrade', '--workspaces', '--errorLevel', '2'], {}, { - cwd: tempDir, - }).should.eventually.be.rejectedWith('Dependencies not up-to-date') + await spawn( + 'node', + [bin, '--upgrade', '--workspaces', '--errorLevel', '2'], + {}, + { + cwd: tempDir, + }, + ).should.eventually.be.rejectedWith('Dependencies not up-to-date') const upgradedPkg = JSON.parse(await fs.readFile(path.join(tempDir, 'package.json'), 'utf-8')) upgradedPkg.should.have.property('dependencies') upgradedPkg.dependencies.should.have.property('ncu-test-v2') @@ -452,9 +472,14 @@ describe('workspaces', () => { it('update more than one workspace', async () => { const tempDir = await setup() try { - const { stdout } = await spawn('node', [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], {}, { - cwd: tempDir, - }) + const { stdout } = await spawn( + 'node', + [bin, '--jsonAll', '--workspace', 'a', '--workspace', 'b'], + {}, + { + cwd: tempDir, + }, + ) const output = JSON.parse(stdout) output.should.have.property('package.json') output.should.have.property('packages/a/package.json') @@ -495,9 +520,14 @@ describe('workspaces', () => { try { await fs.writeFile(path.join(tempDir, '.npmrc'), 'ncutest=root') await fs.writeFile(path.join(tempDir, 'packages/a/.npmrc'), 'ncutest=a') - const { stdout } = await spawn('node', [bin, '--verbose', '--packageManager', 'pnpm'], {}, { - cwd: path.join(tempDir, 'packages/a'), - }) + const { stdout } = await spawn( + 'node', + [bin, '--verbose', '--packageManager', 'pnpm'], + {}, + { + cwd: path.join(tempDir, 'packages/a'), + }, + ) stdout.should.include(`npm config (workspace project):\n{ ncutest: 'root' }`) stdout.should.include(`Using merged npm config:\n{\n ncutest: 'a',`) } finally { diff --git a/tsconfig.json b/tsconfig.json index 0f1bba7c..fa5ea892 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "noImplicitAny": true, "paths": { "libnpmconfig": ["./src/types/libnpmconfig"], - "prompts-ncu": ["./src/types/prompts-ncu"], + "prompts-ncu": ["./src/types/prompts-ncu"] }, "resolveJsonModule": true, "outDir": "./build", From c76f14f69925ca01e5516c1854fe107c0b90fd4b Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 00:24:02 +0000 Subject: [PATCH 40/60] Fix spawn in doctor tests. --- test/doctor.test.ts | 147 ++++++++++++++++++++++++++------------------ 1 file changed, 86 insertions(+), 61 deletions(-) diff --git a/test/doctor.test.ts b/test/doctor.test.ts index bd3b9ecd..e4cb4ef7 100644 --- a/test/doctor.test.ts +++ b/test/doctor.test.ts @@ -21,8 +21,12 @@ const mockNpmVersions = { } /** Run the ncu CLI. */ -const ncu = async (args: string[], options?: Record) => { - const { stdout } = await spawn('node', [bin, ...args], options) +const ncu = async ( + args: string[], + spawnPleaseOptions?: Parameters[2], + spawnOptions?: Parameters[3], +) => { + const { stdout } = await spawn('node', [bin, ...args], spawnPleaseOptions, spawnOptions) return stdout } @@ -56,15 +60,18 @@ const testPass = ({ packageManager }: { packageManager: PackageManagerName }) => try { // explicitly set packageManager to avoid auto yarn detection - await ncu(['--doctor', '-u', '-p', packageManager], { - cwd, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '-p', packageManager], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd }, + ) } catch (e) {} const pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') @@ -124,15 +131,18 @@ const testFail = ({ packageManager }: { packageManager: PackageManagerName }) => try { // explicitly set packageManager to avoid auto yarn detection - await ncu(['--doctor', '-u', '-p', packageManager], { - cwd, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '-p', packageManager], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd }, + ) } finally { pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') await fs.writeFile(pkgPath, pkgOriginal) @@ -177,7 +187,7 @@ describe('doctor', function () { await chalkInit() const { default: stripAnsi } = await import('strip-ansi') const cwd = path.join(doctorTests, 'nopackagefile') - const output = await ncu(['--doctor'], { cwd }) + const output = await ncu(['--doctor'], {}, { cwd }) return stripAnsi(output).should.equal( `Usage: ncu --doctor\n\n${stripAnsi( (cliOptionsMap.doctor.help as (options: { markdown: boolean }) => string)({ markdown: false }), @@ -187,12 +197,12 @@ describe('doctor', function () { it('throw an error if there is no package file', async () => { const cwd = path.join(doctorTests, 'nopackagefile') - return ncu(['--doctor', '-u'], { cwd }).should.eventually.be.rejectedWith('Missing or invalid package.json') + return ncu(['--doctor', '-u'], {}, { cwd }).should.eventually.be.rejectedWith('Missing or invalid package.json') }) it('throw an error if there is no test script', async () => { const cwd = path.join(doctorTests, 'notestscript') - return ncu(['--doctor', '-u'], { cwd }).should.eventually.be.rejectedWith('No npm "test" script') + return ncu(['--doctor', '-u'], {}, { cwd }).should.eventually.be.rejectedWith('No npm "test" script') }) it('throw an error if --packageData or --packageFile are supplied', async () => { @@ -222,15 +232,18 @@ describe('doctor', function () { try { // check only ncu-test-v2 (excluding ncu-return-version) - await ncu(['--doctor', '-u', '--filter', 'ncu-test-v2'], { - cwd, - stdout: function (data: string) { - stdout += data + await ncu( + ['--doctor', '-u', '--filter', 'ncu-test-v2'], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - stderr: function (data: string) { - stderr += data - }, - }) + { cwd }, + ) } catch (e) {} const pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') @@ -264,15 +277,18 @@ describe('doctor', function () { let stderr = '' try { - await ncu(['--doctor', '-u', '--doctorInstall', npmCmd + ' run myinstall'], { - cwd, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '--doctorInstall', npmCmd + ' run myinstall'], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd }, + ) } catch (e) {} const pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') @@ -305,15 +321,18 @@ describe('doctor', function () { let stderr = '' try { - await ncu(['--doctor', '-u', '--doctorTest', npmCmd + ' run mytest'], { - cwd, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '--doctorTest', npmCmd + ' run mytest'], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd }, + ) } catch (e) {} const pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') @@ -346,15 +365,18 @@ describe('doctor', function () { let stderr = '' try { - await ncu(['--doctor', '-u', '--doctorTest', `node ${echoPath} '123 456'`], { - cwd, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '--doctorTest', `node ${echoPath} '123 456'`], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd }, + ) } catch (e) {} const pkgUpgraded = await fs.readFile(pkgPath, 'utf-8') @@ -421,15 +443,18 @@ else { // explicitly set packageManager to avoid auto yarn detection await spawn('npm', ['install'], {}, { cwd: tempDir }) - await ncu(['--doctor', '-u', '-p', 'npm'], { - cwd: tempDir, - stdout: function (data: string) { - stdout += data - }, - stderr: function (data: string) { - stderr += data + await ncu( + ['--doctor', '-u', '-p', 'npm'], + { + stdout: function (data: string) { + stdout += data + }, + stderr: function (data: string) { + stderr += data + }, }, - }) + { cwd: tempDir }, + ) pkgUpgraded = JSON.parse(await fs.readFile(pkgPath, 'utf-8')) } finally { From a8988487b86d559426a85c8670d008fd2b40a115 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 00:37:49 +0000 Subject: [PATCH 41/60] Fix spawn in package-managers/npm. --- src/package-managers/npm.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index 853e1225..45fe5c24 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -545,7 +545,8 @@ async function spawnNpm( '--json', ...(Array.isArray(args) ? args : [args]), ] - return spawn(cmd, fullArgs, spawnPleaseOptions, spawnOptions) + const { stdout } = await spawn(cmd, fullArgs, spawnPleaseOptions, spawnOptions) + return stdout } /** @@ -663,9 +664,11 @@ export const list = async (options: Options = {}): Promise From 2914dbeb8323c854d7abc22451c255cdd14f3559 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 23:19:16 +0000 Subject: [PATCH 42/60] Error on missing --configFileName (#1377). --- src/bin/cli.ts | 8 +++++++- src/index.ts | 2 +- src/lib/getNcuRc.ts | 34 ++++++++++++++++++---------------- test/rc-config.test.ts | 15 +++++++++++++++ 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/bin/cli.ts b/src/bin/cli.ts index 1ec150f1..f63e3c6f 100755 --- a/src/bin/cli.ts +++ b/src/bin/cli.ts @@ -157,7 +157,13 @@ ${chalk.dim.underline( // Do not load when tests are running (can be overridden if configFilePath is set explicitly, or --mergeConfig option specified) const rcResult = !process.env.NCU_TESTS || configFilePath || mergeConfig - ? await getNcuRc({ configFileName, configFilePath, global, packageFile, color }) + ? await getNcuRc({ + configFileName, + configFilePath, + global, + packageFile, + options: { ...programOpts, cli: true }, + }) : null // override rc args with program args diff --git a/src/index.ts b/src/index.ts index f31bdfc6..ce45a0fe 100755 --- a/src/index.ts +++ b/src/index.ts @@ -200,7 +200,7 @@ async function runUpgrades(options: Options, timeout?: NodeJS.Timeout): Promise< async (previousPromise, packageInfo: PackageInfo) => { const packages = await previousPromise // copy object to prevent share .ncurc options between different packageFile, to prevent unpredictable behavior - const rcResult = await getNcuRc({ packageFile: packageInfo.filepath, color: options.color }) + const rcResult = await getNcuRc({ packageFile: packageInfo.filepath, options }) let rcConfig = rcResult && rcResult.config ? rcResult.config : {} if (options.mergeConfig && Object.keys(rcConfig).length) { // Merge config options. diff --git a/src/lib/getNcuRc.ts b/src/lib/getNcuRc.ts index 38dd0535..205be93b 100644 --- a/src/lib/getNcuRc.ts +++ b/src/lib/getNcuRc.ts @@ -5,28 +5,26 @@ import os from 'os' import path from 'path' import { rcFile } from 'rc-config-loader' import { cliOptionsMap } from '../cli-options' +import { Options } from '../types/Options' +import programError from './programError' -interface Options { - color?: boolean +/** Loads the .ncurc config file. */ +async function getNcuRc({ + configFileName, + configFilePath, + packageFile, + global, + options, +}: { configFileName?: string configFilePath?: string - // if true, does not look in package directory + /** If true, does not look in package directory. */ global?: boolean packageFile?: string -} - -/** - * Loads the .ncurc config file. - * - * @param [cfg] - * @param [cfg.configFileName=.ncurc] - * @param [cfg.configFilePath] - * @param [cfg.packageFile] - * @returns - */ -async function getNcuRc({ color, configFileName, configFilePath, packageFile, global }: Options = {}) { + options: Options +}) { const { default: chalkDefault, Chalk } = await import('chalk') - const chalk = color ? new Chalk({ level: 1 }) : chalkDefault + const chalk = options?.color ? new Chalk({ level: 1 }) : chalkDefault const rawResult = rcFile('ncurc', { configFileName: configFileName || '.ncurc', @@ -34,6 +32,10 @@ async function getNcuRc({ color, configFileName, configFilePath, packageFile, gl cwd: configFilePath || (global ? os.homedir() : packageFile ? path.dirname(packageFile) : undefined), }) + if (configFileName && !rawResult?.filePath) { + programError(options, `Config file ${configFileName} not found in ${configFilePath || process.cwd()}`) + } + const result = { filePath: rawResult?.filePath, // Prevent the cli tool from choking because of an unknown option "$schema" diff --git a/test/rc-config.test.ts b/test/rc-config.test.ts index 46a39204..50ae1fcd 100644 --- a/test/rc-config.test.ts +++ b/test/rc-config.test.ts @@ -61,6 +61,21 @@ describe('rc-config', () => { } }) + it('error on missing --configFileName', async () => { + const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'npm-check-updates-')) + const configFileName = '.ncurc_missing.json' + try { + const result = spawn( + 'node', + [bin, '--stdin', '--configFilePath', tempDir, '--configFileName', configFileName], + JSON.stringify({ dependencies: { 'ncu-test-v2': '1', 'ncu-test-tag': '0.1.0' } }), + ) + await result.should.eventually.be.rejectedWith(`Config file ${configFileName} not found in ${tempDir}`) + } finally { + await fs.rm(tempDir, { recursive: true, force: true }) + } + }) + it('read --configFilePath', async () => { const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'npm-check-updates-')) const tempConfigFile = path.join(tempDir, '.ncurc.json') From dadb13f6859c961ce888275a903531dda558d5b3 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 23:34:47 +0000 Subject: [PATCH 43/60] ncurc comments --- .ncurc.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index ace78365..c8e3b3ba 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -1,15 +1,9 @@ module.exports = { format: 'group', reject: [ - // TODO: major version upgrades - 'chai', - 'commander', - '@typescript-eslint/eslint-plugin', - '@typescript-eslint/parser', - // ESM only modules - // https://github.com/microsoft/TypeScript/issues/46452 + // esm only modules 'find-up', - /* pin to 4.0.0 to match make-fetch-happen/cacache. */ + 'chai', 'p-map', 'remote-git-tags', 'untildify', @@ -19,6 +13,9 @@ module.exports = { // https://github.com/YousefED/typescript-json-schema/issues/568 'typescript-json-schema', // node >= 18 + 'commander', // https://github.com/tj/commander.js/blob/master/CHANGELOG.md 'update-notifier', + '@typescript-eslint/eslint-plugin', + '@typescript-eslint/parser', ], } From 46fc5b2a0a343c415c93aeecc76f57ed33008e25 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 23:38:24 +0000 Subject: [PATCH 44/60] Drop support for node < 18.18.0. Preparing for upgrade of commander, update-notifier, and @typescript-eslint/*. --- .github/workflows/test.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7dfb36c7..3c7b7843 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - node: [16, 18, 20] + node: [18, 20] os: [ubuntu-latest, windows-latest] steps: diff --git a/package-lock.json b/package-lock.json index 53f29b55..2ffc9adc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -98,7 +98,7 @@ "yarn": "^1.22.22" }, "engines": { - "node": "^16 < 16.15.1 || >16.15.1", + "node": "^18.18.0 || >=20.0.0", "npm": ">=8.12.1" } }, diff --git a/package.json b/package.json index 997631a8..cbbdd889 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "pnpm" ], "engines": { - "node": "^16 < 16.15.1 || >16.15.1", + "node": "^18.18.0 || >=20.0.0", "npm": ">=8.12.1" }, "main": "build/src/index.js", From c858951b35a112481520076e65a7022045259861 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 13 Mar 2024 23:40:36 +0000 Subject: [PATCH 45/60] Bump dependencies that require node >= 18. --- .ncurc.js | 5 - package-lock.json | 320 +++++++++++++--------------------------------- package.json | 8 +- 3 files changed, 95 insertions(+), 238 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index c8e3b3ba..9deb0988 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -12,10 +12,5 @@ module.exports = { // v0.60.0 breaks cli option description output // https://github.com/YousefED/typescript-json-schema/issues/568 'typescript-json-schema', - // node >= 18 - 'commander', // https://github.com/tj/commander.js/blob/master/CHANGELOG.md - 'update-notifier', - '@typescript-eslint/eslint-plugin', - '@typescript-eslint/parser', ], } diff --git a/package-lock.json b/package-lock.json index 2ffc9adc..0098f3e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "17.0.0-0", "license": "Apache-2.0", "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^11.1.0", @@ -38,7 +40,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^6.0.2" + "update-notifier": "^7.0.0" }, "bin": { "ncu": "build/src/bin/cli.js", @@ -58,7 +60,7 @@ "@types/lodash": "^4.17.0", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.26", + "@types/node": "^20.11.27", "@types/pacote": "^11.1.8", "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", @@ -69,8 +71,6 @@ "@types/semver-utils": "^1.1.3", "@types/sinon": "^17.0.3", "@types/update-notifier": "^6.0.8", - "@typescript-eslint/eslint-plugin": "^6.9.1", - "@typescript-eslint/parser": "^6.9.1", "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", @@ -106,7 +106,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -529,7 +528,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -545,7 +543,6 @@ "version": "4.6.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.1.tgz", "integrity": "sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==", - "dev": true, "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -555,7 +552,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -578,7 +574,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -588,7 +583,6 @@ "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -603,7 +597,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -615,7 +608,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" }, @@ -627,7 +619,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -639,7 +630,6 @@ "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -648,7 +638,6 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -662,7 +651,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -672,7 +660,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -684,7 +671,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">=12.22" @@ -697,8 +683,7 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -1362,7 +1347,6 @@ "version": "7.0.12", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true, "license": "MIT" }, "node_modules/@types/json5": { @@ -1404,9 +1388,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.26.tgz", - "integrity": "sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ==", + "version": "20.11.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", + "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1513,8 +1497,7 @@ "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" }, "node_modules/@types/semver-utils": { "version": "1.1.3", @@ -1559,17 +1542,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.1.tgz", - "integrity": "sha512-w0tiiRc9I4S5XSXXrMHOWgHgxbrBn1Ro+PmiYhSg2ZVdxrAJtQgzU5o2m1BfP6UOn7Vxcc6152vFjQfmZR4xEg==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", + "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.9.1", - "@typescript-eslint/type-utils": "6.9.1", - "@typescript-eslint/utils": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/type-utils": "7.2.0", + "@typescript-eslint/utils": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1585,8 +1566,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1595,15 +1576,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", - "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", "dependencies": { - "@typescript-eslint/scope-manager": "6.9.1", - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/typescript-estree": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", "debug": "^4.3.4" }, "engines": { @@ -1614,7 +1594,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1623,14 +1603,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", - "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", "dependencies": { - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1" + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1641,14 +1619,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.1.tgz", - "integrity": "sha512-eh2oHaUKCK58qIeYp19F5V5TbpM52680sB4zNSz29VBQPTWIlE/hCj5P5B1AChxECe/fmZlspAWFuRniep1Skg==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", + "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", "dependencies": { - "@typescript-eslint/typescript-estree": "6.9.1", - "@typescript-eslint/utils": "6.9.1", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/utils": "7.2.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1660,7 +1636,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1669,11 +1645,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", - "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -1683,17 +1657,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", - "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", - "dev": true, - "license": "BSD-2-Clause", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", "dependencies": { - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/visitor-keys": "6.9.1", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -1711,18 +1684,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.1.tgz", - "integrity": "sha512-L1T0A5nFdQrMVunpZgzqPL6y2wVreSyHhKGZryS6jrEN7bD9NplVAyMryUhXsQ4TWLnZmxc2ekar/lSGIlprCA==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", + "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.9.1", - "@typescript-eslint/types": "6.9.1", - "@typescript-eslint/typescript-estree": "6.9.1", + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", "semver": "^7.5.4" }, "engines": { @@ -1733,17 +1704,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", - "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", - "dev": true, - "license": "MIT", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", "dependencies": { - "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/types": "7.2.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1757,8 +1726,7 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@yarnpkg/parsers": { "version": "2.6.0", @@ -1807,7 +1775,6 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1820,7 +1787,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1852,7 +1818,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2035,8 +2000,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -2464,7 +2427,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2597,20 +2559,6 @@ "node": ">=10" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -2849,8 +2797,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/config-chain": { "version": "1.1.13", @@ -3071,7 +3018,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, "license": "MIT" }, "node_modules/defer-to-connect": { @@ -3124,8 +3070,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -3137,7 +3081,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" @@ -3342,7 +3285,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -3355,7 +3297,6 @@ "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3760,7 +3701,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3773,7 +3713,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3783,7 +3722,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -3799,7 +3737,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -3810,7 +3747,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -3827,7 +3763,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3840,14 +3775,12 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -3864,7 +3797,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -3874,7 +3806,6 @@ "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -3890,7 +3821,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -3903,7 +3833,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3916,7 +3845,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -3929,7 +3857,6 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -3959,7 +3886,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -3972,7 +3898,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -3982,7 +3907,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -3995,7 +3919,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -4005,7 +3928,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -4020,8 +3942,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.3.2", @@ -4053,14 +3974,12 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, "license": "MIT" }, "node_modules/fast-memoize": { @@ -4082,7 +4001,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" @@ -4133,7 +4051,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.1.0", @@ -4147,7 +4064,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -4158,7 +4074,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -4179,7 +4094,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -4192,7 +4106,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -4208,7 +4121,6 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true, "license": "ISC" }, "node_modules/for-each": { @@ -4303,8 +4215,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -4458,7 +4369,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -4521,8 +4431,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4586,7 +4494,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, "license": "MIT" }, "node_modules/has": { @@ -4615,7 +4522,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4676,17 +4582,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -4762,7 +4657,6 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, "engines": { "node": ">= 4" } @@ -4783,7 +4677,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -4827,7 +4720,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4836,8 +4728,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "4.1.2", @@ -4961,17 +4852,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -5029,6 +4909,20 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ci": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", + "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", + "bin": { + "is-in-ci": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -5239,14 +5133,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "engines": { - "node": ">=12" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -5402,14 +5288,12 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, "license": "MIT" }, "node_modules/json5": { @@ -5490,7 +5374,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", @@ -5743,7 +5626,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "license": "MIT" }, "node_modules/log-symbols": { @@ -6390,7 +6272,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, "license": "MIT" }, "node_modules/negotiator": { @@ -6903,7 +6784,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -6912,7 +6792,6 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", @@ -7033,7 +6912,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -7093,7 +6971,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7151,7 +7028,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7205,7 +7081,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.8.0" @@ -7295,7 +7170,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } @@ -7636,7 +7510,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -8033,8 +7906,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8350,7 +8221,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -8486,7 +8356,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "license": "MIT" }, "node_modules/to-fast-properties": { @@ -8512,12 +8381,11 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -8623,7 +8491,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" @@ -8736,7 +8603,6 @@ "version": "5.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9051,27 +8917,25 @@ } }, "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", + "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", + "boxen": "^7.1.1", + "chalk": "^5.3.0", "configstore": "^6.0.0", - "has-yarn": "^3.0.0", "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", + "is-in-ci": "^0.1.0", "is-installed-globally": "^0.4.0", "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", "latest-version": "^7.0.0", "pupa": "^3.1.0", - "semver": "^7.3.7", + "semver": "^7.5.4", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" @@ -9081,7 +8945,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -9356,8 +9219,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", diff --git a/package.json b/package.json index cbbdd889..aa9cdb5a 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,8 @@ "@yarnpkg/parsers": "2.6.0" }, "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", "chalk": "^5.3.0", "cli-table3": "^0.6.3", "commander": "^11.1.0", @@ -89,7 +91,7 @@ "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "untildify": "^4.0.0", - "update-notifier": "^6.0.2" + "update-notifier": "^7.0.0" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", @@ -105,7 +107,7 @@ "@types/lodash": "^4.17.0", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.26", + "@types/node": "^20.11.27", "@types/pacote": "^11.1.8", "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", @@ -116,8 +118,6 @@ "@types/semver-utils": "^1.1.3", "@types/sinon": "^17.0.3", "@types/update-notifier": "^6.0.8", - "@typescript-eslint/eslint-plugin": "^6.9.1", - "@typescript-eslint/parser": "^6.9.1", "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", From 8ed0580391f2549b51e9be562b8651ad480baaee Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 14 Mar 2024 14:41:33 +0000 Subject: [PATCH 46/60] Upgrade commander. --- package-lock.json | 19 ++++++++++++++----- package.json | 2 +- src/bin/cli.ts | 8 ++++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0098f3e4..d5fd9d46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@typescript-eslint/parser": "^7.2.0", "chalk": "^5.3.0", "cli-table3": "^0.6.3", - "commander": "^11.1.0", + "commander": "^12.0.0", "fast-glob": "^3.3.2", "fast-memoize": "^2.5.2", "find-up": "5.0.0", @@ -2778,11 +2778,11 @@ } }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/comment-parser": { @@ -5828,6 +5828,15 @@ "node": ">=18" } }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/markdownlint-cli/node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", diff --git a/package.json b/package.json index aa9cdb5a..241f9146 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@typescript-eslint/parser": "^7.2.0", "chalk": "^5.3.0", "cli-table3": "^0.6.3", - "commander": "^11.1.0", + "commander": "^12.0.0", "fast-glob": "^3.3.2", "fast-memoize": "^2.5.2", "find-up": "5.0.0", diff --git a/src/bin/cli.ts b/src/bin/cli.ts index f63e3c6f..fde8b6e2 100755 --- a/src/bin/cli.ts +++ b/src/bin/cli.ts @@ -100,8 +100,6 @@ ${chalk.dim.underline( program .description('[filter] is a list or regex of package names to check (all others will be ignored).') .usage('[options] [filter]') - // add hidden -v alias for --V/--version - .addOption(new Commander.Option('-v, --version').hideHelp()) // See: boolean optional arg below .configureHelp({ optionTerm: option => @@ -117,6 +115,12 @@ ${chalk.dim.underline( ? `You're lookin' at it.` : Help.prototype.optionDescription(option), }) + // add hidden -v alias for --V/--version + .addOption(new Commander.Option('-v, --versionAlias').hideHelp()) + .on('option:versionAlias', () => { + console.info(pkg.version) + process.exit(0) + }) // add cli options cliOptions.forEach(({ long, short, arg, description, default: defaultValue, help, parse, type }) => { From 2235c29834dd7fb0670ba87ef4d9b83768465eb4 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 14 Mar 2024 19:36:51 +0000 Subject: [PATCH 47/60] Upgrade typescript-json-schema. Cannot leave lone @ in jsdoc comment in typescript-json-schema >= v0.60.0. See: https://github.com/YousefED/typescript-json-schema/issues/568 --- .ncurc.js | 3 --- README.md | 4 ++-- package-lock.json | 20 +++++++++----------- package.json | 2 +- src/cli-options.ts | 2 +- src/types/RunOptions.json | 8 +++----- src/types/RunOptions.ts | 2 +- 7 files changed, 17 insertions(+), 24 deletions(-) diff --git a/.ncurc.js b/.ncurc.js index 9deb0988..014c5351 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -9,8 +9,5 @@ module.exports = { 'untildify', // major changes required to upgrade to v3 'spawn-please', - // v0.60.0 breaks cli option description output - // https://github.com/YousefED/typescript-json-schema/issues/568 - 'typescript-json-schema', ], } diff --git a/README.md b/README.md index ce8149d9..96b8f566 100644 --- a/README.md +++ b/README.md @@ -344,7 +344,7 @@ Options that take no arguments can be negated by prefixing them with `--no-`, e. -t, --target <value> - Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, @[tag], or [function]. (default: latest) + Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, @[tag], or [function]. (default: latest) --timeout <ms> @@ -715,7 +715,7 @@ The predicate function is only available in .ncurc.js or when importing npm-chec (See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring) @returns True if the package should be excluded, false if it should be included. */ -filterVersionFunction: (name, semver) => { +rejectVersionFunction: (name, semver) => { if (name.startsWith('@myorg/') && parseInt(semver[0]?.major) > 5) { return true } diff --git a/package-lock.json b/package-lock.json index d5fd9d46..3c5e2239 100644 --- a/package-lock.json +++ b/package-lock.json @@ -94,7 +94,7 @@ "strip-ansi": "^7.1.0", "ts-node": "^10.9.2", "typescript": "^5.4.2", - "typescript-json-schema": "^0.57.0", + "typescript-json-schema": "^0.63.0", "yarn": "^1.22.22" }, "engines": { @@ -8621,11 +8621,10 @@ } }, "node_modules/typescript-json-schema": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.57.0.tgz", - "integrity": "sha512-xirQK0s95K3OL7Knve0OOxQHErByCxUsgXr5oCHa9J0jWgiA+9/tidHWPu1UMjRv7MoX5ViP6QmOrWCi+dvRew==", + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.63.0.tgz", + "integrity": "sha512-vBfMBq4U/rZ5FIRi7u4o/YAdeRHsSabdGHogUlCPi0cYU0CGvS4Bdu8bSzyUsF+Kf5PTQUGh2TictJuQTDK6eQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@types/json-schema": "^7.0.9", "@types/node": "^16.9.2", @@ -8633,7 +8632,7 @@ "path-equal": "^1.2.5", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", - "typescript": "~4.9.5", + "typescript": "~5.1.0", "yargs": "^17.1.1" }, "bin": { @@ -8789,17 +8788,16 @@ } }, "node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/typescript-json-schema/node_modules/wrap-ansi": { diff --git a/package.json b/package.json index 241f9146..33aec74e 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "strip-ansi": "^7.1.0", "ts-node": "^10.9.2", "typescript": "^5.4.2", - "typescript-json-schema": "^0.57.0", + "typescript-json-schema": "^0.63.0", "yarn": "^1.22.22" }, "files": [ diff --git a/src/cli-options.ts b/src/cli-options.ts index 9773abbc..75d7d7bc 100755 --- a/src/cli-options.ts +++ b/src/cli-options.ts @@ -842,7 +842,7 @@ const cliOptions: CLIOption[] = [ long: 'target', short: 't', arg: 'value', - description: `Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, @[tag], or [function]. (default: latest)`, + description: `Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, \`@[tag]\`, or [function]. (default: latest)`, help: extendedHelpTarget, // eslint-disable-next-line no-template-curly-in-string type: `${supportedVersionTargets.map(s => `'${s}'`).join(' | ')} | ${'`@${string}`'} | TargetFunction`, diff --git a/src/types/RunOptions.json b/src/types/RunOptions.json index e235553e..9cbcd30d 100644 --- a/src/types/RunOptions.json +++ b/src/types/RunOptions.json @@ -474,10 +474,8 @@ "target": { "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "pattern": "^@.*$", + "type": "string" }, { "description": "A function that can be provided to the --target option for custom filtering.", @@ -488,7 +486,7 @@ "type": "string" } ], - "description": "Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, @[tag], or [function]. (default: latest) Run \"ncu --help --target\" for details." + "description": "Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, `@[tag]`, or [function]. (default: latest) Run \"ncu --help --target\" for details." }, "timeout": { "description": "Global timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch)", diff --git a/src/types/RunOptions.ts b/src/types/RunOptions.ts index 84611895..e488a911 100644 --- a/src/types/RunOptions.ts +++ b/src/types/RunOptions.ts @@ -172,7 +172,7 @@ export interface RunOptions { /** Read package.json from stdin. */ stdin?: string - /** Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, @[tag], or [function]. (default: latest) Run "ncu --help --target" for details. */ + /** Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, `@[tag]`, or [function]. (default: latest) Run "ncu --help --target" for details. */ target?: 'latest' | 'newest' | 'greatest' | 'minor' | 'patch' | 'semver' | `@${string}` | TargetFunction /** Global timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch) */ From ba271e853bffc7f0d71087decf99a29541af64ae Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 14 Mar 2024 20:21:06 +0000 Subject: [PATCH 48/60] 17.0.0-1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 582e4f4b..19fe5299 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "17.0.0-0", + "version": "17.0.0-1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "17.0.0-0", + "version": "17.0.0-1", "license": "Apache-2.0", "dependencies": { "@typescript-eslint/eslint-plugin": "^7.2.0", diff --git a/package.json b/package.json index 7e62ee08..8a0772d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "17.0.0-0", + "version": "17.0.0-1", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From 3e2f4324bcf63bb2cf36f982cf5044110bbaa487 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 14 Mar 2024 20:38:25 +0000 Subject: [PATCH 49/60] packageManager: Remove staticRegistry deprecation warning. --- README.md | 1 - src/cli-options.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/README.md b/README.md index 96b8f566..7f055522 100644 --- a/README.md +++ b/README.md @@ -591,7 +591,6 @@ Specifies the package manager to use when looking up versions. yarnSystem-installed yarn. Automatically used if yarn.lock is present. pnpmSystem-installed pnpm. Automatically used if pnpm-lock.yaml is present. bunSystem-installed bun. Automatically used if bun.lockb is present. - staticRegistryDeprecated. Use --registryType json. ## peer diff --git a/src/cli-options.ts b/src/cli-options.ts index 75d7d7bc..e658b963 100755 --- a/src/cli-options.ts +++ b/src/cli-options.ts @@ -423,7 +423,6 @@ const extendedHelpPackageManager: ExtendedHelp = ({ markdown }) => { ['yarn', `System-installed yarn. Automatically used if yarn.lock is present.`], ['pnpm', `System-installed pnpm. Automatically used if pnpm-lock.yaml is present.`], ['bun', `System-installed bun. Automatically used if bun.lockb is present.`], - ['staticRegistry', `Deprecated. Use --registryType json.`], ], }) From 84ce6eaf32567bddbfd5a92624f756705af60325 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 15 Mar 2024 20:32:08 +0000 Subject: [PATCH 50/60] Fix peer dependencies for versions with range operators (#1378). getPeerDependencies and getPeerDependenciesFromRegistry expect exact versions, not version ranges. --- src/lib/upgradePackageDefinitions.ts | 4 +++- src/package-managers/npm.ts | 6 +----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib/upgradePackageDefinitions.ts b/src/lib/upgradePackageDefinitions.ts index 38632565..4a78583f 100644 --- a/src/lib/upgradePackageDefinitions.ts +++ b/src/lib/upgradePackageDefinitions.ts @@ -46,8 +46,10 @@ export async function upgradePackageDefinitions( return !options.jsonUpgraded || !options.minimal || !satisfies(latestVersions[dep], currentDependencies[dep]) }) + const filteredLatestDependencies = pickBy(latestVersions, (spec, dep) => filteredUpgradedDependencies[dep]) + if (options.peer && !isEmpty(filteredUpgradedDependencies)) { - const upgradedPeerDependencies = await getPeerDependenciesFromRegistry(filteredUpgradedDependencies, options) + const upgradedPeerDependencies = await getPeerDependenciesFromRegistry(filteredLatestDependencies, options) const peerDependencies = { ...options.peerDependencies, ...upgradedPeerDependencies } if (!isEqual(options.peerDependencies, peerDependencies)) { const [newUpgradedDependencies, newLatestVersions, newPeerDependencies] = await upgradePackageDefinitions( diff --git a/src/package-managers/npm.ts b/src/package-managers/npm.ts index 45fe5c24..514afda2 100644 --- a/src/package-managers/npm.ts +++ b/src/package-managers/npm.ts @@ -638,11 +638,7 @@ export const greatest: GetVersion = async ( * @returns Promised {packageName: version} collection */ export const getPeerDependencies = async (packageName: string, version: Version): Promise> => { - // if version number uses >, omit the version and find latest - // otherwise, it will error out in the shell - // https://github.com/raineorshine/npm-check-updates/issues/1181 - const atVersion = !version.startsWith('>') ? `@${version}` : '' - const args = ['view', `${packageName}${atVersion}`, 'peerDependencies'] + const args = ['view', `${packageName}@${version}`, 'peerDependencies'] const result = await spawnNpm(args, {}, { rejectOnError: false }) return result ? parseJson(result, { command: [...args, '--json'].join(' ') }) : {} } From 8ac7df2c937130b9b86fa367ba497415ab0351fa Mon Sep 17 00:00:00 2001 From: Jason O'Neill Date: Thu, 21 Mar 2024 07:36:26 -0700 Subject: [PATCH 51/60] Loosen --format repo URL restrictions (#1385) --- src/lib/getRepoUrl.ts | 3 ++- test/getRepoUrl.test.ts | 16 ++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/lib/getRepoUrl.ts b/src/lib/getRepoUrl.ts index 9638a416..f6851985 100644 --- a/src/lib/getRepoUrl.ts +++ b/src/lib/getRepoUrl.ts @@ -67,7 +67,7 @@ async function getRepoUrl( // It may already be a valid Repo URL const url = new URL(gitURL) // Some packages put a full URL in this field although it's not spec compliant. Let's detect that and use it if present - if (['github.com', 'gitlab.com', 'bitbucket.org'].includes(url.hostname) && url.protocol === 'https:') { + if (url.protocol === 'https:' || url.protocol === 'http:') { return gitURL } } catch (e) {} @@ -84,6 +84,7 @@ async function getRepoUrl( // Remove the default branch path (/tree/HEAD) from a git url return hostedGitURL.replace(/\/$/, '').replace(/\/tree\/HEAD$/, '') } + return gitURL } return null } diff --git a/test/getRepoUrl.test.ts b/test/getRepoUrl.test.ts index 579502d3..06b80669 100644 --- a/test/getRepoUrl.test.ts +++ b/test/getRepoUrl.test.ts @@ -13,17 +13,13 @@ describe('getRepoUrl', () => { it('return null repository field is unknown type', async () => { should.equal(await getRepoUrl('package-name', { repository: true as any /* allow to compile */ }), null) }) - it('return url directly from repository field if valid github url', async () => { + it('return url directly from repository field if valid https url', async () => { const url = await getRepoUrl('package-name', { repository: 'https://github.com/user/repo' }) url!.should.equal('https://github.com/user/repo') }) - it('return url directly from repository field if valid gitlab url', async () => { - const url = await getRepoUrl('package-name', { repository: 'https://gitlab.com/user/repo' }) - url!.should.equal('https://gitlab.com/user/repo') - }) - it('return url directly from repository field if valid bitbucket url', async () => { - const url = await getRepoUrl('package-name', { repository: 'https://bitbucket.org/user/repo' }) - url!.should.equal('https://bitbucket.org/user/repo') + it('return url directly from repository field if valid http url', async () => { + const url = await getRepoUrl('package-name', { repository: 'http://anything.com/user/repo' }) + url!.should.equal('http://anything.com/user/repo') }) it('return url constructed from github shortcut syntax string', async () => { const url = await getRepoUrl('package-name', { repository: 'user/repo' }) @@ -33,6 +29,10 @@ describe('getRepoUrl', () => { const url = await getRepoUrl('package-name', { repository: 'github:user/repo' }) url!.should.equal('https://github.com/user/repo') }) + it('return url directly from url field if not a known git host', async () => { + const url = await getRepoUrl('package-name', { repository: { url: 'https://any.website.com/some/path' } }) + url!.should.equal('https://any.website.com/some/path') + }) it('return url constructed from git-https protocol', async () => { const url = await getRepoUrl('package-name', { repository: { url: 'git+https://github.com/user/repo.git' } }) url!.should.equal('https://github.com/user/repo') From c9fe90816a9804cfb30118a009119531d179da6d Mon Sep 17 00:00:00 2001 From: Jason O'Neill Date: Fri, 22 Mar 2024 14:23:37 -0700 Subject: [PATCH 52/60] Fix circular peer dependencies blocking updates (#1383) --- src/lib/getPeerDependencies.ts | 30 ---------- src/lib/getPeerDependenciesFromRegistry.ts | 66 ++++++++++++++++++---- src/lib/runLocal.ts | 17 ++++-- test/peer.test.ts | 58 ++++++++----------- test/test-data/peer-lock/package.json | 7 +++ 5 files changed, 98 insertions(+), 80 deletions(-) delete mode 100644 src/lib/getPeerDependencies.ts create mode 100644 test/test-data/peer-lock/package.json diff --git a/src/lib/getPeerDependencies.ts b/src/lib/getPeerDependencies.ts deleted file mode 100644 index 8c42b0ac..00000000 --- a/src/lib/getPeerDependencies.ts +++ /dev/null @@ -1,30 +0,0 @@ -import fs from 'fs/promises' -import jph from 'json-parse-helpfulerror' -import { print } from '../lib/logging' -import { Index } from '../types/IndexType' -import { Options } from '../types/Options' -import { VersionSpec } from '../types/VersionSpec' -import getCurrentDependencies from './getCurrentDependencies' - -/** Get peer dependencies from installed packages */ -async function getPeerDependencies(current: Index, options: Options): Promise>> { - const basePath = options.cwd || './' - const accum: Index> = {} - - for (const dep in current) { - const path = basePath + `node_modules/${dep}/package.json` - let peers: Index = {} - try { - const pkgData = await fs.readFile(path, 'utf-8') - const pkg = jph.parse(pkgData) - peers = getCurrentDependencies(pkg, { ...options, dep: 'peer' }) - } catch (e) { - print(options, `Could not read peer dependencies for package ${dep}. Is this package installed?`, 'warn') - } - accum[dep] = peers - } - - return accum -} - -export default getPeerDependencies diff --git a/src/lib/getPeerDependenciesFromRegistry.ts b/src/lib/getPeerDependenciesFromRegistry.ts index 9ba112df..23bdd071 100644 --- a/src/lib/getPeerDependenciesFromRegistry.ts +++ b/src/lib/getPeerDependenciesFromRegistry.ts @@ -1,9 +1,46 @@ import ProgressBar from 'progress' import { Index } from '../types/IndexType' import { Options } from '../types/Options' -import { VersionSpec } from '../types/VersionSpec' +import { Version } from '../types/Version' import getPackageManager from './getPackageManager' +type CircularData = + | { + isCircular: true + offendingPackage: string + } + | { + isCircular: false + } + +/** + * Checks if the specified package will create a loop of peer dependencies by traversing all paths to find a cycle + * + * If a cycle was found, the offending peer dependency of the specified package is returned + */ +function isCircularPeer(peerDependencies: Index>, packageName: string): CircularData { + let queue = [[packageName]] + while (queue.length > 0) { + const nextQueue: string[][] = [] + for (const path of queue) { + const parents = Object.keys(peerDependencies[path[0]] ?? {}) + for (const name of parents) { + if (name === path.at(-1)) { + return { + isCircular: true, + offendingPackage: path[0], + } + } + nextQueue.push([name, ...path]) + } + } + queue = nextQueue + } + return { + isCircular: false, + } +} + /** * Get the latest or greatest versions from the NPM repository based on the version target. * @@ -11,7 +48,7 @@ import getPackageManager from './getPackageManager' * @param [options={}] Options. * @returns Promised {packageName: peer dependencies} collection */ -async function getPeerDependenciesFromRegistry(packageMap: Index, options: Options) { +async function getPeerDependenciesFromRegistry(packageMap: Index, options: Options) { const packageManager = getPackageManager(options, options.packageManager) if (!packageManager.getPeerDependencies) return {} @@ -22,14 +59,23 @@ async function getPeerDependenciesFromRegistry(packageMap: Index, o bar.render() } - return Object.entries(packageMap).reduce(async (accumPromise, [pkg, version]) => { - const dep = await packageManager.getPeerDependencies!(pkg, version) - if (bar) { - bar.tick() - } - const accum = await accumPromise - return { ...accum, [pkg]: dep } - }, {}) + const peerDependencies: Index> = Object.entries(packageMap).reduce( + async (accumPromise, [pkg, version]) => { + const dep = await packageManager.getPeerDependencies!(pkg, version) + if (bar) { + bar.tick() + } + const accum = await accumPromise + const newAcc: Index> = { ...accum, [pkg]: dep } + const circularData = isCircularPeer(newAcc, pkg) + if (circularData.isCircular) { + delete newAcc[pkg][circularData.offendingPackage] + } + return newAcc + }, + {}, + ) + return peerDependencies } export default getPeerDependenciesFromRegistry diff --git a/src/lib/runLocal.ts b/src/lib/runLocal.ts index e6d25616..d1ea876f 100644 --- a/src/lib/runLocal.ts +++ b/src/lib/runLocal.ts @@ -4,7 +4,7 @@ import get from 'lodash/get' import isEmpty from 'lodash/isEmpty' import pick from 'lodash/pick' import prompts from 'prompts-ncu' -import { satisfies } from 'semver' +import nodeSemver from 'semver' import { Index } from '../types/IndexType' import { Maybe } from '../types/Maybe' import { Options } from '../types/Options' @@ -15,7 +15,7 @@ import chalk from './chalk' import getCurrentDependencies from './getCurrentDependencies' import getIgnoredUpgrades from './getIgnoredUpgrades' import getPackageManager from './getPackageManager' -import getPeerDependencies from './getPeerDependencies' +import getPeerDependenciesFromRegistry from './getPeerDependenciesFromRegistry' import keyValueBy from './keyValueBy' import { print, printIgnoredUpdates, printJson, printSorted, printUpgrades, toDependencyTable } from './logging' import programError from './programError' @@ -183,7 +183,14 @@ async function runLocal( } if (options.peer) { - options.peerDependencies = await getPeerDependencies(current, options) + options.peerDependencies = await getPeerDependenciesFromRegistry( + Object.fromEntries( + Object.entries(current).map(([packageName, versionSpec]) => { + return [packageName, nodeSemver.minVersion(versionSpec)?.version ?? versionSpec] + }), + ), + options, + ) } const [upgraded, latestResults, upgradedPeerDependencies] = await upgradePackageDefinitions(current, options) @@ -210,7 +217,9 @@ async function runLocal( // filter out satisfied deps when using --minimal const filteredUpgraded = options.minimal - ? keyValueBy(upgraded, (dep, version) => (!satisfies(latest[dep], current[dep]) ? { [dep]: version } : null)) + ? keyValueBy(upgraded, (dep, version) => + !nodeSemver.satisfies(latest[dep], current[dep]) ? { [dep]: version } : null, + ) : upgraded const ownersChangedDeps = (options.format || []).includes('ownerChanged') diff --git a/test/peer.test.ts b/test/peer.test.ts index 6fe3cfd6..bd654336 100644 --- a/test/peer.test.ts +++ b/test/peer.test.ts @@ -1,52 +1,38 @@ -import fs from 'fs/promises' import path from 'path' import ncu from '../src/' -import spawnNpm from '../src/package-managers/npm' import chaiSetup from './helpers/chaiSetup' chaiSetup() describe('peer dependencies', function () { - it('peer dependencies of installed packages are ignored by default', async () => { + it('peer dependencies are ignored by default', async () => { const cwd = path.join(__dirname, 'test-data/peer/') - try { - await spawnNpm('install', {}, {}, { cwd }) - const upgrades = await ncu({ cwd }) - upgrades!.should.deep.equal({ - 'ncu-test-return-version': '2.0.0', - }) - } finally { - await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) - await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) - } + const upgrades = await ncu({ cwd }) + upgrades!.should.deep.equal({ + 'ncu-test-return-version': '2.0.0', + }) }) - it('peer dependencies of installed packages are checked when using option peer', async () => { + it('peer dependencies are checked when using option peer', async () => { const cwd = path.join(__dirname, 'test-data/peer/') - try { - await spawnNpm('install', {}, {}, { cwd }) - const upgrades = await ncu({ cwd, peer: true }) - upgrades!.should.deep.equal({ - 'ncu-test-return-version': '1.1.0', - }) - } finally { - await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) - await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) - } + const upgrades = await ncu({ cwd, peer: true }) + upgrades!.should.deep.equal({ + 'ncu-test-return-version': '1.1.0', + }) }) - it('peer dependencies of installed packages are checked iteratively when using option peer', async () => { + it('peer dependencies are checked iteratively when using option peer', async () => { const cwd = path.join(__dirname, 'test-data/peer-update/') - try { - await spawnNpm('install', {}, {}, { cwd }) - const upgrades = await ncu({ cwd, peer: true }) - upgrades!.should.deep.equal({ - 'ncu-test-return-version': '1.1.0', - 'ncu-test-peer-update': '1.1.0', - }) - } finally { - await fs.rm(path.join(cwd, 'node_modules'), { recursive: true, force: true }) - await fs.rm(path.join(cwd, 'package-lock.json'), { recursive: true, force: true }) - } + const upgrades = await ncu({ cwd, peer: true }) + upgrades!.should.deep.equal({ + 'ncu-test-return-version': '1.1.0', + 'ncu-test-peer-update': '1.1.0', + }) + }) + + it('circular peer dependencies are ignored', async () => { + const cwd = path.join(__dirname, 'test-data/peer-lock/') + const upgrades = await ncu({ cwd, peer: true }) + upgrades!.should.contain.keys('@vitest/ui', 'vitest') }) }) diff --git a/test/test-data/peer-lock/package.json b/test/test-data/peer-lock/package.json new file mode 100644 index 00000000..f3bb0bed --- /dev/null +++ b/test/test-data/peer-lock/package.json @@ -0,0 +1,7 @@ +{ + "license": "MIT", + "dependencies": { + "@vitest/ui": "^1.3.1", + "vitest": "^1.3.1" + } +} From e97b0a29db6fc2f7dfd016972418ec11eb35bb68 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 22 Mar 2024 21:33:25 +0000 Subject: [PATCH 53/60] 17.0.0-2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19fe5299..764b358b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "17.0.0-1", + "version": "17.0.0-2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "17.0.0-1", + "version": "17.0.0-2", "license": "Apache-2.0", "dependencies": { "@typescript-eslint/eslint-plugin": "^7.2.0", diff --git a/package.json b/package.json index 8a0772d5..c8d7c280 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "17.0.0-1", + "version": "17.0.0-2", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [ From e57579152aa20b9da3b89800e1fa83ddb53e90e6 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Fri, 22 Mar 2024 21:27:16 +0000 Subject: [PATCH 54/60] Add e2e test with verdaccio. --- .github/workflows/test.yml | 14 +- package-lock.json | 2806 ++++++++++++++++++++++++++++++++++-- package.json | 5 +- test/e2e.sh | 72 + 4 files changed, 2733 insertions(+), 164 deletions(-) create mode 100755 test/e2e.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3c7b7843..c0d37bcb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,15 +47,19 @@ jobs: - name: Build run: npm run build - - name: Run tests - run: npm run test + - name: E2E Tests + run: npm run test:e2e + if: startsWith(matrix.os, 'ubuntu') && matrix.node == env.NODE_COV + + - name: Unit Tests + run: npm run test:unit if: (!(startsWith(matrix.os, 'ubuntu') && matrix.node == env.NODE_COV)) - - name: Run tests with coverage - run: npx c8 -- npm test + - name: Tests with coverage + run: npx c8 -- npm run test:unit if: startsWith(matrix.os, 'ubuntu') && matrix.node == env.NODE_COV - - name: Run Coveralls + - name: Coveralls uses: coverallsapp/github-action@v1.1.2 if: startsWith(matrix.os, 'ubuntu') && matrix.node == env.NODE_COV with: diff --git a/package-lock.json b/package-lock.json index 764b358b..70adc22f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,6 +95,7 @@ "ts-node": "^10.9.2", "typescript": "^5.4.2", "typescript-json-schema": "^0.63.0", + "verdaccio": "^5.29.2", "yarn": "^1.22.22" }, "engines": { @@ -375,6 +376,18 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", @@ -510,6 +523,49 @@ "node": ">=12" } }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.42.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz", @@ -1744,106 +1800,96 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, - "node_modules/@yarnpkg/parsers": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", - "integrity": "sha512-48GtaB/WqUQSLSmlk7Evawx+r0rht6Pe91TXdjFQquC7ZV5RUbwA5pm6wnoWXiwE3tEzvGj6e/0/YLBrlBaqfg==", + "node_modules/@verdaccio/commons-api": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@verdaccio/commons-api/-/commons-api-10.2.0.tgz", + "integrity": "sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==", "dev": true, "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^1.13.0" + "http-errors": "2.0.0", + "http-status-codes": "2.2.0" }, "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + "node": ">=8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "node_modules/@verdaccio/commons-api/node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==", + "dev": true }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@verdaccio/config": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/config/-/config-7.0.0-next-7.10.tgz", + "integrity": "sha512-mB3qaf8wW4sUgS0h3Z4TXYH/V9spjjFA33kNqWl78IMJHipBddbyBvdmfh/vo/NGtfju8DrDbRZlhKCl6293Qg==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/utils": "7.0.0-next-7.10", + "debug": "4.3.4", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "minimatch": "7.4.6", + "yup": "0.32.11" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "node": ">=12" }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/@verdaccio/config/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", "dev": true, - "license": "MIT", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", + "node_modules/@verdaccio/core": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/core/-/core-7.0.0-next-7.10.tgz", + "integrity": "sha512-kS7/x5y9knbkSksHeawRV5Af8p/g0qk9GgQOZjuvOtv08kMFSttYk/eDglE9++SbvqP34+sDraUIMB/C3tZ2fw==", + "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "ajv": "8.12.0", + "core-js": "3.35.0", + "http-errors": "2.0.0", + "http-status-codes": "2.3.0", + "process-warning": "1.0.0", + "semver": "7.5.4" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@verdaccio/core/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { @@ -1851,133 +1897,616 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } + "node_modules/@verdaccio/core/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", + "node_modules/@verdaccio/core/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": ">=8" + "node": ">=10" } }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", + "node_modules/@verdaccio/core/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", + "node_modules/@verdaccio/file-locking": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@verdaccio/file-locking/-/file-locking-10.3.1.tgz", + "integrity": "sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==", + "dev": true, "dependencies": { - "ansi-regex": "^5.0.1" + "lockfile": "1.0.4" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/@verdaccio/local-storage": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/@verdaccio/local-storage/-/local-storage-10.3.3.tgz", + "integrity": "sha512-/n0FH+1hxVg80YhYBfJuW7F2AuvLY2fra8/DTCilWDll9Y5yZDxwntZfcKHJLerCA4atrbJtvaqpWkoV3Q9x8w==", "dev": true, - "license": "MIT", + "dependencies": { + "@verdaccio/commons-api": "10.2.0", + "@verdaccio/file-locking": "10.3.1", + "@verdaccio/streams": "10.2.1", + "async": "3.2.4", + "debug": "4.3.4", + "lodash": "4.17.21", + "lowdb": "1.0.0", + "mkdirp": "1.0.4" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", + "node_modules/@verdaccio/local-storage/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/@verdaccio/logger-7": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/logger-7/-/logger-7-7.0.0-next-7.10.tgz", + "integrity": "sha512-UgbZnnapLmvcVMz7HzJhsyMTFLhVcAKTwKW/5dtaSwD2XrP721YawdTwJEPZnhcNrTcD9dUvRGfW4Dr/5QzJcg==", + "dev": true, + "dependencies": { + "@verdaccio/logger-commons": "7.0.0-next-7.10", + "pino": "7.11.0" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@verdaccio/logger-commons": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/logger-commons/-/logger-commons-7.0.0-next-7.10.tgz", + "integrity": "sha512-RTA4K6KvoCrgqA1aVP4n8IDZfUQtaza2FcPjEsBShLQg0rHFJi/5/yQg+J4MpOvYlKbrusOy9pwN86h9pCe+CA==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/logger-prettify": "7.0.0-next.1", + "colorette": "2.0.20", + "debug": "4.3.4" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@verdaccio/logger-prettify": { + "version": "7.0.0-next.1", + "resolved": "https://registry.npmjs.org/@verdaccio/logger-prettify/-/logger-prettify-7.0.0-next.1.tgz", + "integrity": "sha512-ZF71AS2k0OiSnKVT05+NUWARZ+yn0keGAlpkgNWU7SHiYeFS1ZDVpapi9PXR23gJ5U756fyPKaqvlRcYgEpsgA==", "dev": true, - "license": "ISC", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "colorette": "2.0.20", + "dayjs": "1.11.7", + "lodash": "4.17.21", + "pino-abstract-transport": "1.0.0", + "sonic-boom": "3.3.0" }, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/@verdaccio/middleware": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/middleware/-/middleware-7.0.0-next-7.10.tgz", + "integrity": "sha512-NBQxi6ag2zSIoUUmnQn/n0YwJDnnHqqtyV5c73YTdQV5RSPn5i2YKz+8DSA+iJYa2ff8G4fx8hOdJR+QZZQ24w==", "dev": true, + "dependencies": { + "@verdaccio/config": "7.0.0-next-7.10", + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/url": "12.0.0-next-7.10", + "@verdaccio/utils": "7.0.0-next-7.10", + "debug": "4.3.4", + "express": "4.18.2", + "express-rate-limit": "5.5.1", + "lodash": "4.17.21", + "lru-cache": "7.18.3", + "mime": "2.6.0" + }, "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" } }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "node_modules/@verdaccio/middleware/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=14" + "node": ">=12" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "node_modules/@verdaccio/middleware/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, - "license": "MIT" + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@verdaccio/search": { + "version": "7.0.0-next.2", + "resolved": "https://registry.npmjs.org/@verdaccio/search/-/search-7.0.0-next.2.tgz", + "integrity": "sha512-NoGSpubKB+SB4gRMIoEl3E3NkoKE5f0DnANghB3SnMtVxpJGdwZgylosqDxt8swhQ80+16hYdAp6g44uhjVE6Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/signature": { + "version": "7.0.0-next.3", + "resolved": "https://registry.npmjs.org/@verdaccio/signature/-/signature-7.0.0-next.3.tgz", + "integrity": "sha512-egs1VmEe+COUUZ83I6gzDy79Jo3b/AExPvp9EDuJHkmwxJj+9gb231Rv4wk+UoNPrQRNLljUepQwVrDmbqP5DQ==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "jsonwebtoken": "9.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/streams": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@verdaccio/streams/-/streams-10.2.1.tgz", + "integrity": "sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==", + "dev": true, + "engines": { + "node": ">=12", + "npm": ">=5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/tarball": { + "version": "12.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/tarball/-/tarball-12.0.0-next-7.10.tgz", + "integrity": "sha512-kxctkPREUpe0oRDsTelKcLsWGv2llRBcK2AlyCAX7UENKGWvVqITTk81PkVpzlwXOpcRWdLJQmEE+dtXGwLr6Q==", + "dev": true, + "dependencies": { + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/url": "12.0.0-next-7.10", + "@verdaccio/utils": "7.0.0-next-7.10", + "debug": "4.3.4", + "lodash": "4.17.21" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/ui-theme": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/ui-theme/-/ui-theme-7.0.0-next-7.10.tgz", + "integrity": "sha512-I1War/XBg3WzzAojXDtEDjZw/1qPKW0d8EIsJD3h6Xi5Atzvz/xBTbHjgbwApjmISyDWQ8Vevp8zOtGO33zLSw==", + "dev": true + }, + "node_modules/@verdaccio/url": { + "version": "12.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/url/-/url-12.0.0-next-7.10.tgz", + "integrity": "sha512-AiFG+W/H1iD+iXkh4b6zm3AsZdGdI7tiAPCHymN7jSV6dAvWTuhIEK30mmFyCSmOE0iwyn8ZN4xqsf9Qcu1emw==", + "dev": true, + "dependencies": { + "@verdaccio/core": "7.0.0-next-7.10", + "debug": "4.3.4", + "lodash": "4.17.21", + "validator": "13.11.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/utils": { + "version": "7.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/@verdaccio/utils/-/utils-7.0.0-next-7.10.tgz", + "integrity": "sha512-3sGyBj0leN3RjwPJPDkdsD9j1ahzQccHPj86IlIJqUJFhAcOT/nD6z9+W3sBAiro6Q2psWyWHxBJ8H3LhtlLeA==", + "dev": true, + "dependencies": { + "@verdaccio/core": "7.0.0-next-7.10", + "lodash": "4.17.21", + "minimatch": "7.4.6", + "semver": "7.5.4" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/@verdaccio/utils/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/@verdaccio/utils/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@verdaccio/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@yarnpkg/parsers": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", + "integrity": "sha512-48GtaB/WqUQSLSmlk7Evawx+r0rht6Pe91TXdjFQquC7ZV5RUbwA5pm6wnoWXiwE3tEzvGj6e/0/YLBrlBaqfg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/apache-md5": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz", + "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", @@ -1999,6 +2528,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, "node_modules/array-includes": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", @@ -2102,6 +2637,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -2112,6 +2665,12 @@ "node": "*" } }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2119,6 +2678,15 @@ "dev": true, "license": "MIT" }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -2132,12 +2700,62 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2148,6 +2766,81 @@ "node": ">=8" } }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/boxen": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", @@ -2198,6 +2891,36 @@ "dev": true, "license": "ISC" }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2225,6 +2948,15 @@ "semver": "^7.0.0" } }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/c8": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", @@ -2466,6 +3198,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, "node_modules/chai": { "version": "4.3.10", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", @@ -2658,6 +3396,18 @@ "node": ">=8" } }, + "node_modules/clipanion": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/clipanion/-/clipanion-3.2.1.tgz", + "integrity": "sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==", + "dev": true, + "dependencies": { + "typanion": "^3.8.0" + }, + "peerDependencies": { + "typanion": "*" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2785,6 +3535,12 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2815,6 +3571,57 @@ "node": ">= 12.0.0" } }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2855,6 +3662,27 @@ "url": "https://github.com/yeoman/configstore?sponsor=1" } }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -2862,6 +3690,64 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-js": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz", + "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -2956,6 +3842,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3077,6 +3981,25 @@ "node": ">=0.4.0" } }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -3125,18 +4048,78 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "license": "MIT" }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "license": "MIT" }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -3147,6 +4130,15 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -3168,6 +4160,18 @@ "node": ">=6" } }, + "node_modules/envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -3302,6 +4306,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3953,12 +4963,138 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "license": "Apache-2.0" }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-rate-limit": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-5.5.1.tgz", + "integrity": "sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4008,6 +5144,21 @@ "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", "license": "MIT" }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -4041,6 +5192,39 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4179,6 +5363,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -4203,6 +5396,15 @@ "node": ">= 14.17" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/fp-and-or": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fp-and-or/-/fp-and-or-1.0.2.tgz", @@ -4211,6 +5413,15 @@ "node": "^16.10.0 || >=18.0.0" } }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/fs-minipass": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", @@ -4362,6 +5573,15 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, "node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", @@ -4514,6 +5734,36 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "license": "MIT" }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4645,6 +5895,42 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "license": "BSD-2-Clause" }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "dev": true + }, "node_modules/http2-wrapper": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", @@ -4658,6 +5944,19 @@ "node": ">=10.19.0" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4671,6 +5970,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -4777,6 +6096,15 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "license": "MIT" }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -5041,6 +6369,12 @@ "node": ">=8" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -5164,6 +6498,12 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "license": "ISC" }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -5252,6 +6592,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", @@ -5303,6 +6649,12 @@ "jju": "^1.1.0" } }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5314,6 +6666,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "license": "MIT" }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -5347,6 +6705,59 @@ ], "license": "MIT" }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -5354,6 +6765,39 @@ "dev": true, "license": "MIT" }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/keyv": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", @@ -5462,6 +6906,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lockfile": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", + "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "dev": true, + "dependencies": { + "signal-exit": "^3.0.2" + } + }, "node_modules/lockfile-lint": { "version": "4.13.2", "resolved": "https://registry.npmjs.org/lockfile-lint/-/lockfile-lint-4.13.2.tgz", @@ -5633,6 +7086,12 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true + }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -5640,11 +7099,53 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5725,6 +7226,22 @@ "get-func-name": "^2.0.0" } }, + "node_modules/lowdb": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", + "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3", + "is-promise": "^2.1.0", + "lodash": "4", + "pify": "^3.0.0", + "steno": "^0.4.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -5885,6 +7402,15 @@ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -5894,6 +7420,12 @@ "node": ">= 0.10.0" } }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5903,6 +7435,15 @@ "node": ">= 8" } }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -5927,6 +7468,18 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -6294,11 +7847,52 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, + "node_modules/mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", + "dev": true, + "dependencies": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mv/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", + "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", + "dev": true + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "dev": true, + "bin": { + "ncp": "bin/ncp" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -6308,6 +7902,12 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -6357,6 +7957,26 @@ "type-detect": "4.0.8" } }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-gyp": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", @@ -6851,6 +8471,15 @@ "which": "bin/which" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -6945,6 +8574,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7116,6 +8772,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-equal": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", @@ -7208,6 +8873,12 @@ "node": "*" } }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, "node_modules/picomatch": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", @@ -7242,6 +8913,72 @@ "node": ">=4" } }, + "node_modules/pino": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", + "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.0.0", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.15.1" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dev": true, + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==", + "dev": true + }, + "node_modules/pino/node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "dev": true, + "dependencies": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + } + }, + "node_modules/pino/node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -7275,6 +9012,21 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==", + "dev": true + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -7325,12 +9077,37 @@ "node": ">=6" } }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "dev": true + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "license": "ISC" }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7363,6 +9140,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7383,6 +9181,12 @@ ], "license": "MIT" }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "dev": true + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -7405,6 +9209,51 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -7550,6 +9399,22 @@ "semver": "bin/semver" } }, + "node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -7575,6 +9440,21 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", @@ -7648,6 +9528,12 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -7723,6 +9609,56 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "dev": true, + "dependencies": { + "glob": "^6.0.1" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", @@ -7844,8 +9780,8 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT", - "optional": true + "devOptional": true, + "license": "MIT" }, "node_modules/semver": { "version": "7.6.0", @@ -7891,9 +9827,66 @@ "yallist": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" } }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -7904,6 +9897,27 @@ "randombytes": "^2.1.0" } }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8099,6 +10113,15 @@ "npm": ">= 3.0.0" } }, + "node_modules/sonic-boom": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", + "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", + "dev": true, + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -8171,12 +10194,46 @@ "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "license": "CC0-1.0" }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ssri": { "version": "10.0.4", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", @@ -8198,6 +10255,39 @@ "node": ">=8" } }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/steno": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", + "integrity": "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -8523,6 +10613,21 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "license": "MIT" }, + "node_modules/thread-stream": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", + "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", + "dev": true, + "dependencies": { + "real-require": "^0.1.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -8545,6 +10650,42 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "dev": true + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -8633,6 +10774,15 @@ "json5": "lib/cli.js" } }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/tuf-js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", @@ -8646,6 +10796,30 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/typanion": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/typanion/-/typanion-3.14.0.tgz", + "integrity": "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -8680,6 +10854,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", @@ -9003,6 +11190,19 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -9064,6 +11264,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", @@ -9106,6 +11330,40 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -9178,6 +11436,214 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verdaccio": { + "version": "5.29.2", + "resolved": "https://registry.npmjs.org/verdaccio/-/verdaccio-5.29.2.tgz", + "integrity": "sha512-Ra9Bv8mMsGaFnvFJl80gSNg6yhHRFUYATA03xpVrfqC1Z1IDZt/f0jZ94tPnfyaY1ljUS5jKsZsj6ihN/ZSVbQ==", + "dev": true, + "dependencies": { + "@cypress/request": "3.0.1", + "@verdaccio/config": "7.0.0-next-7.10", + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/local-storage": "10.3.3", + "@verdaccio/logger-7": "7.0.0-next-7.10", + "@verdaccio/middleware": "7.0.0-next-7.10", + "@verdaccio/search": "7.0.0-next.2", + "@verdaccio/signature": "7.0.0-next.3", + "@verdaccio/streams": "10.2.1", + "@verdaccio/tarball": "12.0.0-next-7.10", + "@verdaccio/ui-theme": "7.0.0-next-7.10", + "@verdaccio/url": "12.0.0-next-7.10", + "@verdaccio/utils": "7.0.0-next-7.10", + "async": "3.2.5", + "clipanion": "3.2.1", + "compression": "1.7.4", + "cookies": "0.9.1", + "cors": "2.8.5", + "debug": "^4.3.4", + "envinfo": "7.11.0", + "express": "4.18.2", + "express-rate-limit": "5.5.1", + "fast-safe-stringify": "2.1.1", + "handlebars": "4.7.8", + "js-yaml": "4.1.0", + "JSONStream": "1.3.5", + "jsonwebtoken": "9.0.2", + "kleur": "4.1.5", + "lodash": "4.17.21", + "lru-cache": "7.18.3", + "mime": "3.0.0", + "mkdirp": "1.0.4", + "mv": "2.1.1", + "pkginfo": "0.4.1", + "semver": "7.5.4", + "validator": "13.11.0", + "verdaccio-audit": "12.0.0-next-7.10", + "verdaccio-htpasswd": "12.0.0-next-7.10" + }, + "bin": { + "verdaccio": "bin/verdaccio" + }, + "engines": { + "node": ">=12.18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/verdaccio-audit": { + "version": "12.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/verdaccio-audit/-/verdaccio-audit-12.0.0-next-7.10.tgz", + "integrity": "sha512-inL8J7c4y9BpFIkqLsw9yrdh8/CBKWbBrREiQHQ9ZnD7jLkHxTWsWW8jt4aUt9t2azc6eO5rUIqdo1W6VsYKeA==", + "dev": true, + "dependencies": { + "@verdaccio/config": "7.0.0-next-7.10", + "@verdaccio/core": "7.0.0-next-7.10", + "express": "4.18.2", + "https-proxy-agent": "5.0.1", + "node-fetch": "cjs" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/verdaccio-htpasswd": { + "version": "12.0.0-next-7.10", + "resolved": "https://registry.npmjs.org/verdaccio-htpasswd/-/verdaccio-htpasswd-12.0.0-next-7.10.tgz", + "integrity": "sha512-+P7kxWgWSxRyTlP+IFySwgvQjt529zXTetNmupUgYtu09qCZMffdZ74aGASuCvWa4Vcqavmytzg8McqCNheFiA==", + "dev": true, + "dependencies": { + "@verdaccio/core": "7.0.0-next-7.10", + "@verdaccio/file-locking": "12.0.0-next.1", + "apache-md5": "1.1.8", + "bcryptjs": "2.4.3", + "core-js": "3.35.0", + "debug": "4.3.4", + "http-errors": "2.0.0", + "unix-crypt-td-js": "1.1.4" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/verdaccio-htpasswd/node_modules/@verdaccio/file-locking": { + "version": "12.0.0-next.1", + "resolved": "https://registry.npmjs.org/@verdaccio/file-locking/-/file-locking-12.0.0-next.1.tgz", + "integrity": "sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==", + "dev": true, + "dependencies": { + "lockfile": "1.0.4" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/verdaccio" + } + }, + "node_modules/verdaccio/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/verdaccio/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/verdaccio/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/verdaccio/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/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -9245,6 +11711,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -9556,6 +12028,24 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yup": { + "version": "0.32.11", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", + "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } } } } diff --git a/package.json b/package.json index c8d7c280..a7edfc96 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,9 @@ "prepare": "src/scripts/install-hooks && test/bun-setup.sh", "prepublishOnly": "npm run build", "prettier": "prettier . --check", - "test": "mocha test test/package-managers/*", + "test": "npm run test:unit && npm run test:e2e", + "test:unit": "mocha test test/package-managers/*", + "test:e2e": "./test/e2e.sh", "ncu": "node build/src/bin/cli.js" }, "bin": { @@ -142,6 +144,7 @@ "ts-node": "^10.9.2", "typescript": "^5.4.2", "typescript-json-schema": "^0.63.0", + "verdaccio": "^5.29.2", "yarn": "^1.22.22" }, "files": [ diff --git a/test/e2e.sh b/test/e2e.sh new file mode 100755 index 00000000..8108483f --- /dev/null +++ b/test/e2e.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +temp_dir=$(mktemp -d) +registry_port=4873 +registry_local="http://localhost:$registry_port" +registry_log=$temp_dir/verdaccio.log +verdaccio_config=$temp_dir/verdaccio-config.yaml + +# cleanup on exit +cleanup() { + + # shut down verdaccio + verdaccio_pid=$(lsof -t -i :$registry_port) + if [ -n "$verdaccio_pid" ]; then + echo Shutting down verdaccio + kill -9 $verdaccio_pid + wait $verdaccio_pid 2>/dev/null + fi + + # delete authToken + # WARNING: The original authToken cannot be restored because it is protected and cannot be read with 'npm config get'. + npm config delete "//localhost:$registry_port/:_authToken" + + # remove temp directory + rm -rf $temp_dir + + echo Done +} + +trap cleanup EXIT + +# create verdaccio config +# - store packages in temp directory so they are deleted on exit +# - allow anyone to publish to avoid npm login +echo " +storage: $temp_dir/storage +packages: + npm-check-updates: + access: \$all + publish: \$all +" >$verdaccio_config + +# start verdaccio and wait for it to boot +echo Starting local registry +nohup verdaccio -l $registry_port -c $verdaccio_config &>$registry_log & +grep -q 'http address' <(tail -f $registry_log) + +# set dummy authToken which is required to publish +# https://github.com/verdaccio/verdaccio/issues/212#issuecomment-308578500 +npm config set "//localhost:$registry_port/:_authToken=e2e_dummy" + +# publish to local registry +echo Publishing to local registry +npm publish --registry $registry_local --ignore-scripts + +# Test: ncu -v +echo ncu -v +npx --registry $registry_local npm-check-updates -v + +# Test: ncu +# Create a package.json file with a dependency on npm-check-updates since it is already published to the local registry +echo ncu +echo '{ + "dependencies": { + "npm-check-updates": "1.0.0" + } +}' >$temp_dir/package.json + +# --configFilePath to avoid reading the repo .ncurc +# --cwd to point to the temp package file +# --pre 1 to ensure that an upgrade is always suggested even if npm-check-updates is on a prerelease version +npx --registry $registry_local npm-check-updates --configFilePath $temp_dir --cwd $temp_dir --pre 1 --registry $registry_local From 8da36a54bdfdeb7cda91870e17a12f1a980fdecb Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 23 Mar 2024 15:44:43 +0000 Subject: [PATCH 55/60] e2e: cjs test --- test/e2e.sh | 39 +++++++++++++++++++++++++++++++++++---- test/e2e/cjs/index.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 test/e2e/cjs/index.js diff --git a/test/e2e.sh b/test/e2e.sh index 8108483f..54fe7cc3 100755 --- a/test/e2e.sh +++ b/test/e2e.sh @@ -1,5 +1,7 @@ #!/bin/bash +cwd=$(pwd) +e2e_dir=$(dirname "$(readlink -f "$0")") temp_dir=$(mktemp -d) registry_port=4873 registry_local="http://localhost:$registry_port" @@ -9,6 +11,8 @@ verdaccio_config=$temp_dir/verdaccio-config.yaml # cleanup on exit cleanup() { + exit_status=$? + # shut down verdaccio verdaccio_pid=$(lsof -t -i :$registry_port) if [ -n "$verdaccio_pid" ]; then @@ -24,7 +28,14 @@ cleanup() { # remove temp directory rm -rf $temp_dir - echo Done + # return to working directory + cd $cwd + + if [ $exit_status -ne 0 ]; then + echo Error + else + echo Done + fi } trap cleanup EXIT @@ -38,6 +49,12 @@ packages: npm-check-updates: access: \$all publish: \$all + '**': + access: \$all + proxy: npmjs +uplinks: + npmjs: + url: https://registry.npmjs.org/ " >$verdaccio_config # start verdaccio and wait for it to boot @@ -51,15 +68,15 @@ npm config set "//localhost:$registry_port/:_authToken=e2e_dummy" # publish to local registry echo Publishing to local registry -npm publish --registry $registry_local --ignore-scripts +npm publish --registry $registry_local # Test: ncu -v echo ncu -v npx --registry $registry_local npm-check-updates -v -# Test: ncu +# Test: cli # Create a package.json file with a dependency on npm-check-updates since it is already published to the local registry -echo ncu +echo Test: cli echo '{ "dependencies": { "npm-check-updates": "1.0.0" @@ -70,3 +87,17 @@ echo '{ # --cwd to point to the temp package file # --pre 1 to ensure that an upgrade is always suggested even if npm-check-updates is on a prerelease version npx --registry $registry_local npm-check-updates --configFilePath $temp_dir --cwd $temp_dir --pre 1 --registry $registry_local + +rm $temp_dir/package.json +cp -r $e2e_dir/e2e $temp_dir + +# Test: cjs +echo Test: cjs +cd $temp_dir/e2e/cjs + +echo Installing +echo "{}" >package.json +npm i npm-check-updates@latest --registry $registry_local + +echo Running test +REGISTRY=$registry_local node $temp_dir/e2e/cjs/index.js diff --git a/test/e2e/cjs/index.js b/test/e2e/cjs/index.js new file mode 100644 index 00000000..5f74ee9b --- /dev/null +++ b/test/e2e/cjs/index.js @@ -0,0 +1,29 @@ +/** NOTE: This script is copied into a temp directory by the e2e test and dependencies are installed from the local verdaccio registry. */ + +const ncu = require('npm-check-updates') +const assert = require('assert') + +const registry = process.env.REGISTRY || 'http://localhost:4873' + +// must exit with error code on unhandledRejection, otherwise script will exit with 0 if an assertion fails in the async block +process.on('unhandledRejection', (reason, p) => { + process.exit(1) +}) + +// test +;(async () => { + const upgraded = await ncu.run({ + // --pre 1 to ensure that an upgrade is always suggested even if npm-check-updates is on a prerelease version + pre: true, + packageData: JSON.stringify({ + dependencies: { + 'npm-check-updates': '1.0.0', + }, + }), + registry, + }) + + console.info(upgraded) + + assert.notStrictEqual(upgraded['npm-check-updates'], '1.0.0', 'npm-check-updates should be upgraded') +})() From 077d46663c9e230c45324187085add5d3024494b Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sat, 23 Mar 2024 16:00:47 +0000 Subject: [PATCH 56/60] e2e: esm test --- test/e2e.sh | 11 ++++++++++- test/e2e/cjs/index.js | 1 - test/e2e/cjs/package.json | 1 + test/e2e/esm/index.js | 28 ++++++++++++++++++++++++++++ test/e2e/esm/package.json | 3 +++ 5 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test/e2e/cjs/package.json create mode 100644 test/e2e/esm/index.js create mode 100644 test/e2e/esm/package.json diff --git a/test/e2e.sh b/test/e2e.sh index 54fe7cc3..99e7b769 100755 --- a/test/e2e.sh +++ b/test/e2e.sh @@ -96,8 +96,17 @@ echo Test: cjs cd $temp_dir/e2e/cjs echo Installing -echo "{}" >package.json npm i npm-check-updates@latest --registry $registry_local echo Running test REGISTRY=$registry_local node $temp_dir/e2e/cjs/index.js + +# Test: esm +echo Test: esm +cd $temp_dir/e2e/esm + +echo Installing +npm i npm-check-updates@latest --registry $registry_local + +echo Running test +REGISTRY=$registry_local node $temp_dir/e2e/esm/index.js diff --git a/test/e2e/cjs/index.js b/test/e2e/cjs/index.js index 5f74ee9b..dd767bb7 100644 --- a/test/e2e/cjs/index.js +++ b/test/e2e/cjs/index.js @@ -1,5 +1,4 @@ /** NOTE: This script is copied into a temp directory by the e2e test and dependencies are installed from the local verdaccio registry. */ - const ncu = require('npm-check-updates') const assert = require('assert') diff --git a/test/e2e/cjs/package.json b/test/e2e/cjs/package.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/test/e2e/cjs/package.json @@ -0,0 +1 @@ +{} diff --git a/test/e2e/esm/index.js b/test/e2e/esm/index.js new file mode 100644 index 00000000..b966005b --- /dev/null +++ b/test/e2e/esm/index.js @@ -0,0 +1,28 @@ +/** NOTE: This script is copied into a temp directory by the e2e test and dependencies are installed from the local verdaccio registry. */ +import assert from 'assert' +import ncu from 'npm-check-updates' + +const registry = process.env.REGISTRY || 'http://localhost:4873' + +// must exit with error code on unhandledRejection, otherwise script will exit with 0 if an assertion fails in the async block +process.on('unhandledRejection', (reason, p) => { + process.exit(1) +}) + +// test +;(async () => { + const upgraded = await ncu.run({ + // --pre 1 to ensure that an upgrade is always suggested even if npm-check-updates is on a prerelease version + pre: true, + packageData: JSON.stringify({ + dependencies: { + 'npm-check-updates': '1.0.0', + }, + }), + registry, + }) + + console.info(upgraded) + + assert.notStrictEqual(upgraded['npm-check-updates'], '1.0.0', 'npm-check-updates should be upgraded') +})() diff --git a/test/e2e/esm/package.json b/test/e2e/esm/package.json new file mode 100644 index 00000000..3dbc1ca5 --- /dev/null +++ b/test/e2e/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} From f18cd461e33dd0a53a40018b8beccf13f1d366b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20R=C3=A8gne?= Date: Mon, 25 Mar 2024 16:17:53 +0100 Subject: [PATCH 57/60] fix: Add types of semver-utils (#1387) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a7edfc96..8ef1df35 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "@yarnpkg/parsers": "2.6.0" }, "dependencies": { + "@types/semver-utils": "^1.1.3", "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", "chalk": "^5.3.0", @@ -117,7 +118,6 @@ "@types/prompts": "^2.4.9", "@types/remote-git-tags": "^4.0.2", "@types/semver": "^7.5.8", - "@types/semver-utils": "^1.1.3", "@types/sinon": "^17.0.3", "@types/update-notifier": "^6.0.8", "c8": "^9.1.0", From 6b1663f8e633b5602f9757b22709462669c4bf2d Mon Sep 17 00:00:00 2001 From: Wout Mertens Date: Mon, 25 Mar 2024 19:27:59 +0100 Subject: [PATCH 58/60] build a bundle using vite (#1380) --- .hooks/post-commit | 4 +- .hooks/pre-push | 2 +- package-lock.json | 2391 +++++++++++++++++----- package.json | 93 +- src/bin/cli.ts | 6 +- src/lib/figgy-pudding/index.js | 4 +- src/lib/libnpmconfig/index.js | 13 +- src/scripts/install-hooks | 2 +- test/bin.test.ts | 2 +- test/bun-setup.sh | 3 +- test/deep.test.ts | 2 +- test/doctor.test.ts | 2 +- test/filter.test.ts | 2 +- test/filterVersion.test.ts | 2 +- test/format.test.ts | 2 +- test/global.test.ts | 2 +- test/group.test.ts | 2 +- test/install.test.ts | 2 +- test/interactive.test.ts | 2 +- test/package-managers/deno/index.test.ts | 2 +- test/rc-config.test.ts | 2 +- test/timeout.test.ts | 2 +- test/workspaces.test.ts | 2 +- tsconfig.json | 2 +- vite.config.mts | 31 + 25 files changed, 2039 insertions(+), 540 deletions(-) create mode 100644 vite.config.mts diff --git a/.hooks/post-commit b/.hooks/post-commit index 9d784771..b45e62db 100755 --- a/.hooks/post-commit +++ b/.hooks/post-commit @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash SHORT_SHA=$(git rev-parse HEAD) LINT_LOG="$TMPDIR"/lint."$SHORT_SHA".log @@ -12,7 +12,7 @@ notify() { # if osascript is not supported, do nothing if [ -f /usr/bin/osascript ]; then # read back in the lint errors - ERRORS=$(cat "$LINT_LOG" | sed 1,4d) + ERRORS=$(sed 1,4d "$LINT_LOG") # Trigger apple- or OSA-script on supported platforms /usr/bin/osascript -e "display notification \"$ERRORS\" with title \"$*\"" diff --git a/.hooks/pre-push b/.hooks/pre-push index af781112..0717d9e5 100755 --- a/.hooks/pre-push +++ b/.hooks/pre-push @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh fail=0 npm run lint || fail=1 diff --git a/package-lock.json b/package-lock.json index 70adc22f..a773160a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,46 +9,15 @@ "version": "17.0.0-2", "license": "Apache-2.0", "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "chalk": "^5.3.0", - "cli-table3": "^0.6.3", - "commander": "^12.0.0", - "fast-glob": "^3.3.2", - "fast-memoize": "^2.5.2", - "find-up": "5.0.0", - "fp-and-or": "^1.0.2", - "hosted-git-info": "^7.0.1", - "ini": "^4.1.2", - "js-yaml": "^4.1.0", - "json-parse-helpfulerror": "^1.0.3", - "jsonlines": "^0.1.1", - "lodash": "^4.17.21", - "make-fetch-happen": "^13.0.0", - "p-map": "^4.0.0", - "pacote": "17.0.6", - "parse-github-url": "^1.0.2", - "picomatch": "^4.0.1", - "progress": "^2.0.3", - "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.3", - "remote-git-tags": "^3.0.0", - "semver": "^7.6.0", - "semver-utils": "^1.1.4", - "source-map-support": "^0.5.21", - "spawn-please": "^3.0.0", - "strip-ansi": "^7.1.0", - "strip-json-comments": "^5.0.1", - "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "node-gyp": "^10.0.1" }, "bin": { - "ncu": "build/src/bin/cli.js", - "npm-check-updates": "build/src/bin/cli.js" + "ncu": "build/cli.js", + "npm-check-updates": "build/cli.js" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@types/chai": "^4.3.12", + "@types/chai": "^4.3.14", "@types/chai-as-promised": "^7.1.8", "@types/chai-string": "^1.4.5", "@types/cli-table": "^0.3.4", @@ -60,7 +29,7 @@ "@types/lodash": "^4.17.0", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.27", + "@types/node": "^20.11.30", "@types/pacote": "^11.1.8", "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", @@ -71,10 +40,15 @@ "@types/semver-utils": "^1.1.3", "@types/sinon": "^17.0.3", "@types/update-notifier": "^6.0.8", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", + "chalk": "^5.3.0", + "cli-table3": "^0.6.3", + "commander": "^12.0.0", "cross-env": "^7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", @@ -84,18 +58,48 @@ "eslint-plugin-jsdoc": "^48.2.1", "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", + "fast-glob": "^3.3.2", + "fast-memoize": "^2.5.2", + "find-up": "5.0.0", + "fp-and-or": "^1.0.2", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", + "js-yaml": "^4.1.0", + "json-parse-helpfulerror": "^1.0.3", + "jsonlines": "^0.1.1", "lockfile-lint": "^4.13.2", + "lodash": "^4.17.21", + "make-fetch-happen": "^13.0.0", "markdownlint-cli": "^0.39.0", "mocha": "^10.3.0", "npm-run-all": "^4.1.5", + "p-map": "^4.0.0", + "pacote": "17.0.6", + "parse-github-url": "^1.0.2", + "picomatch": "^4.0.1", "prettier": "^3.2.5", + "progress": "^2.0.3", + "prompts-ncu": "^3.0.0", + "rc-config-loader": "^4.1.3", + "remote-git-tags": "^3.0.0", + "rollup-plugin-node-externals": "^7.1.0", + "semver": "^7.6.0", + "semver-utils": "^1.1.4", "should": "^13.2.3", "sinon": "^17.0.1", + "source-map-support": "^0.5.21", + "spawn-please": "^3.0.0", "strip-ansi": "^7.1.0", + "strip-json-comments": "^5.0.1", "ts-node": "^10.9.2", - "typescript": "^5.4.2", + "typescript": "^5.4.3", "typescript-json-schema": "^0.63.0", + "untildify": "^4.0.0", + "update-notifier": "^7.0.0", "verdaccio": "^5.29.2", + "vite": "^5.2.4", + "vite-node": "^1.4.0", + "vite-plugin-dts": "^3.7.3", "yarn": "^1.22.22" }, "engines": { @@ -107,6 +111,7 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -364,11 +369,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -504,6 +508,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, "license": "MIT", "optional": true, "engines": { @@ -580,154 +585,535 @@ "node": ">=16" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=12" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.1.tgz", - "integrity": "sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==", - "license": "MIT", + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "node_modules/@esbuild/freebsd-arm64": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "license": "Apache-2.0", + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.1.tgz", + "integrity": "sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -739,7 +1125,8 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -798,31 +1185,146 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.39.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.39.0.tgz", + "integrity": "sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.28.3", + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.62.0", + "@rushstack/rig-package": "0.5.1", + "@rushstack/ts-command-line": "4.17.1", + "colors": "~1.2.1", + "lodash": "~4.17.15", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.3.3" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz", + "integrity": "sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.62.0" + } + }, + "node_modules/@microsoft/api-extractor/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/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", "dev": true, - "license": "MIT" + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -836,6 +1338,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -845,6 +1348,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -941,6 +1445,7 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", + "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", @@ -959,6 +1464,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, "engines": { "node": ">=16" } @@ -967,6 +1473,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, "engines": { "node": "14 || >=16.14" } @@ -975,6 +1482,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, "dependencies": { "isexe": "^3.1.1" }, @@ -989,6 +1497,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, "license": "ISC", "dependencies": { "npm-bundled": "^3.0.0", @@ -1001,140 +1510,444 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.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==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.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==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.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": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "dev": true, + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "dev": true, + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "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==", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@rushstack/node-core-library": { + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz", + "integrity": "sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==", + "dev": true, "dependencies": { - "isexe": "^3.1.1" + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "z-schema": "~5.0.2" }, - "bin": { - "node-which": "bin/which.js" + "peerDependencies": { + "@types/node": "*" }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "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==", + "node_modules/@rushstack/node-core-library/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": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^4.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" + "node": ">=10" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, "dependencies": { - "isexe": "^3.1.1" + "lru-cache": "^6.0.0" }, "bin": { - "node-which": "bin/which.js" + "semver": "bin/semver.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "node_modules/@rushstack/rig-package": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz", + "integrity": "sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==", + "dev": true, + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" } }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "license": "MIT", + "node_modules/@rushstack/rig-package/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { - "node": ">=12.22.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "license": "MIT", + "node_modules/@rushstack/ts-command-line": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz", + "integrity": "sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==", + "dev": true, "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "colors": "~1.2.1", + "string-argv": "~0.3.1" } }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "license": "MIT", + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" + "sprintf-js": "~1.0.2" } }, "node_modules/@sigstore/bundle": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", + "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.3.0" }, @@ -1146,6 +1959,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", + "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } @@ -1154,6 +1968,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", + "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -1162,6 +1977,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", + "dev": true, "dependencies": { "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", @@ -1176,6 +1992,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", + "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.3.0", "tuf-js": "^2.2.0" @@ -1188,6 +2005,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", + "dev": true, "dependencies": { "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", @@ -1201,7 +2019,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "license": "MIT", + "dev": true, "engines": { "node": ">=14.16" }, @@ -1262,7 +2080,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", + "dev": true, "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -1325,6 +2143,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } @@ -1333,6 +2152,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", "minimatch": "^9.0.3" @@ -1341,10 +2161,16 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, "node_modules/@types/chai": { - "version": "4.3.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.12.tgz", - "integrity": "sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==", + "version": "4.3.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz", + "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==", "dev": true }, "node_modules/@types/chai-as-promised": { @@ -1378,6 +2204,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/hosted-git-info": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz", @@ -1385,10 +2217,10 @@ "dev": true }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "license": "MIT" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true }, "node_modules/@types/ini": { "version": "4.1.0", @@ -1419,6 +2251,7 @@ "version": "7.0.12", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true, "license": "MIT" }, "node_modules/@types/json5": { @@ -1460,9 +2293,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.27.tgz", - "integrity": "sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==", + "version": "20.11.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz", + "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1569,7 +2402,8 @@ "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true }, "node_modules/@types/semver-utils": { "version": "1.1.3", @@ -1614,15 +2448,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", - "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.3.1.tgz", + "integrity": "sha512-STEDMVQGww5lhCuNXVSQfbfuNII5E08QWkvAw5Qwf+bj2WT+JkG1uc+5/vXA3AOYMDHVOSpL+9rcbEUiHIm2dw==", + "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/type-utils": "7.3.1", + "@typescript-eslint/utils": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1631,7 +2466,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1648,18 +2483,19 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.3.1.tgz", + "integrity": "sha512-Rq49+pq7viTRCH48XAbTA+wdLRrB/3sRq4Lpk0oGDm0VmnjBrAOVXH/Laalmwsv2VpekiEfVFwJYVk6/e8uvQw==", + "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1675,15 +2511,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.3.1.tgz", + "integrity": "sha512-fVS6fPxldsKY2nFvyT7IP78UO1/I2huG+AYu5AMjCT9wtl6JFiDnsv4uad4jQ0GTFzcUV5HShVeN96/17bTBag==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1691,17 +2528,18 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.3.1.tgz", + "integrity": "sha512-iFhaysxFsMDQlzJn+vr3OrxN8NmdQkHks4WaqD4QBnt5hsq234wcYdyQ9uquzJJIDAj5W4wQne3yEsYA6OmXGw==", + "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", + "@typescript-eslint/typescript-estree": "7.3.1", + "@typescript-eslint/utils": "7.3.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1717,11 +2555,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.3.1.tgz", + "integrity": "sha512-2tUf3uWggBDl4S4183nivWQ2HqceOZh1U4hhu4p1tPiIJoRRXrab7Y+Y0p+dozYwZVvLPRI6r5wKe9kToF9FIw==", + "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1729,12 +2568,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.3.1.tgz", + "integrity": "sha512-tLpuqM46LVkduWP7JO7yVoWshpJuJzxDOPYIVWUUZbW+4dBpgGeUdl/fQkhuV0A8eGnphYw3pp8d2EnvPOfxmQ==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/visitor-keys": "7.3.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1743,7 +2583,7 @@ "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1756,20 +2596,21 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.3.1.tgz", + "integrity": "sha512-jIERm/6bYQ9HkynYlNZvXpzmXWZGhMbrOvq3jJzOSOlKXsVjrrolzWBjDW6/TvT5Q3WqaN4EkmcfdQwi9tDjBQ==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/scope-manager": "7.3.1", + "@typescript-eslint/types": "7.3.1", + "@typescript-eslint/typescript-estree": "7.3.1", "semver": "^7.5.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1780,15 +2621,16 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.3.1.tgz", + "integrity": "sha512-9RMXwQF8knsZvfv9tdi+4D/j7dMG28X/wMJ8Jj6eOHyHWwDW4ngQJcqEczSsqIKKjFiLFr40Mnr7a5ulDD3vmw==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/types": "7.3.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1798,7 +2640,8 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "node_modules/@verdaccio/commons-api": { "version": "10.2.0", @@ -2227,6 +3070,88 @@ "node": ">=10" } }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.21", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" + } + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==", + "dev": true + }, "node_modules/@yarnpkg/parsers": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.6.0.tgz", @@ -2305,6 +3230,7 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2317,6 +3243,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2360,6 +3287,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2375,6 +3303,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.1.0" @@ -2384,6 +3313,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2393,12 +3323,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/ansi-align/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -2413,6 +3345,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -2512,6 +3445,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { @@ -2557,6 +3491,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "engines": { "node": ">=8" } @@ -2845,6 +3780,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "dev": true, "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", @@ -2876,6 +3812,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.0.1" @@ -2925,6 +3862,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -2943,6 +3881,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.0.0" @@ -3114,6 +4053,15 @@ "node": ">=12" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cacache": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", @@ -3140,21 +4088,21 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "license": "MIT", + "dev": true, "engines": { "node": ">=14.16" } }, "node_modules/cacheable-request": { - "version": "10.2.12", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz", - "integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==", - "license": "MIT", + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, "dependencies": { - "@types/http-cache-semantics": "^4.0.1", + "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", + "keyv": "^4.5.3", "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" @@ -3181,6 +4129,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3190,6 +4139,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -3249,6 +4199,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -3332,6 +4283,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -3344,6 +4296,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, "license": "MIT", "dependencies": { "string-width": "^4.2.0" @@ -3359,6 +4312,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3368,12 +4322,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/cli-table3/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -3388,6 +4344,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3541,6 +4498,15 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -3558,6 +4524,7 @@ "version": "12.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "dev": true, "engines": { "node": ">=18" } @@ -3622,16 +4589,23 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "license": "MIT", + "dev": true, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -3641,13 +4615,13 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" + "dev": true }, "node_modules/configstore": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "license": "BSD-2-Clause", + "dev": true, "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -3819,7 +4793,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "license": "MIT", + "dev": true, "dependencies": { "type-fest": "^1.0.1" }, @@ -3834,7 +4808,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "license": "(MIT OR CC0-1.0)", + "dev": true, "engines": { "node": ">=10" }, @@ -3860,6 +4834,12 @@ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==", "dev": true }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3894,7 +4874,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", + "dev": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -3909,7 +4889,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", + "dev": true, "engines": { "node": ">=10" }, @@ -3934,6 +4914,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4.0.0" @@ -3943,13 +4924,14 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, "license": "MIT" }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", + "dev": true, "engines": { "node": ">=10" } @@ -4014,6 +4996,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -4025,6 +5008,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" @@ -4037,7 +5021,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "license": "MIT", + "dev": true, "dependencies": { "is-obj": "^2.0.0" }, @@ -4284,6 +5268,44 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4298,7 +5320,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "license": "MIT", + "dev": true, "engines": { "node": ">=12" }, @@ -4316,6 +5338,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -4328,6 +5351,7 @@ "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4732,6 +5756,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4744,6 +5769,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4753,6 +5779,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -4768,6 +5795,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -4778,6 +5806,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -4794,6 +5823,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -4806,12 +5836,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -4828,6 +5860,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -4837,6 +5870,7 @@ "version": "13.20.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -4852,6 +5886,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -4864,6 +5899,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4876,6 +5912,7 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -4888,6 +5925,7 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -4917,6 +5955,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -4929,6 +5968,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -4938,6 +5978,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -4950,14 +5991,22 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -5098,12 +6147,14 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5119,6 +6170,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5130,18 +6182,21 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT" }, "node_modules/fast-memoize": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "dev": true, "license": "MIT" }, "node_modules/fast-redact": { @@ -5163,6 +6218,7 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -5172,6 +6228,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" @@ -5184,6 +6241,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5229,6 +6287,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^6.0.0", @@ -5255,6 +6314,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.1.0", @@ -5268,6 +6328,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -5278,6 +6339,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -5298,6 +6360,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -5310,6 +6373,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -5325,6 +6389,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, "license": "ISC" }, "node_modules/for-each": { @@ -5391,7 +6456,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "license": "MIT", + "dev": true, "engines": { "node": ">= 14.17" } @@ -5409,6 +6474,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/fp-and-or/-/fp-and-or-1.0.2.tgz", "integrity": "sha512-jRuhDpN/8LaE2ghHYKuj11SqUcfus38Rhsd+m9EReVes4KQdLErmHoP5FAWUBg+kci56ucryVryKda7cCyHT6A==", + "dev": true, "engines": { "node": "^16.10.0 || >=18.0.0" } @@ -5422,6 +6488,29 @@ "node": ">= 0.6" } }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/fs-minipass": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", @@ -5446,12 +6535,13 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5466,6 +6556,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5536,7 +6627,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", + "dev": true, "engines": { "node": ">=10" }, @@ -5607,6 +6698,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -5619,7 +6711,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "license": "MIT", + "dev": true, "dependencies": { "ini": "2.0.0" }, @@ -5634,7 +6726,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", + "dev": true, "engines": { "node": ">=10" } @@ -5669,6 +6761,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5701,7 +6794,7 @@ "version": "12.6.1", "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "license": "MIT", + "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -5732,6 +6825,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, "license": "MIT" }, "node_modules/handlebars": { @@ -5790,6 +6884,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5854,6 +6949,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -5875,6 +6971,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, "dependencies": { "lru-cache": "^10.0.1" }, @@ -5932,10 +7029,10 @@ "dev": true }, "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "license": "MIT", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dev": true, "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -5994,6 +7091,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, "engines": { "node": ">= 4" } @@ -6002,6 +7100,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", + "dev": true, "license": "ISC", "dependencies": { "minimatch": "^9.0.0" @@ -6014,6 +7113,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -6030,6 +7130,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6057,6 +7158,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6065,12 +7167,14 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -6202,6 +7306,7 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, "dependencies": { "hasown": "^2.0.0" }, @@ -6229,6 +7334,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6247,6 +7353,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -6259,6 +7366,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-in-ci/-/is-in-ci-0.1.0.tgz", "integrity": "sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==", + "dev": true, "bin": { "is-in-ci": "cli.js" }, @@ -6273,7 +7381,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", + "dev": true, "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -6308,7 +7416,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "license": "MIT", + "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6320,6 +7428,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -6345,7 +7454,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", + "dev": true, "engines": { "node": ">=8" } @@ -6354,6 +7463,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6457,6 +7567,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, "license": "MIT" }, "node_modules/is-unicode-supported": { @@ -6571,6 +7682,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, "license": "MIT" }, "node_modules/js-tokens": { @@ -6584,6 +7696,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -6624,7 +7737,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" + "dev": true }, "node_modules/json-parse-better-errors": { "version": "1.0.2", @@ -6644,6 +7757,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==", + "dev": true, "license": "MIT", "dependencies": { "jju": "^1.1.0" @@ -6658,12 +7772,14 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, "license": "MIT" }, "node_modules/json-stringify-safe": { @@ -6676,6 +7792,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -6690,16 +7807,27 @@ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonlines": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz", "integrity": "sha512-ekDrAGso79Cvf+dtm+mL8OBI2bmAOt3gssYs833De/C9NmIpWDWyUO4zPgB5x2/OhY366dkhgfPMYfwZF7yOZA==", + "dev": true, "license": "MIT" }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, "engines": [ "node >= 0.2.0" ], @@ -6799,10 +7927,10 @@ } }, "node_modules/keyv": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", - "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", - "license": "MIT", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "dependencies": { "json-buffer": "3.0.1" } @@ -6817,11 +7945,17 @@ "node": ">=6" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, "node_modules/latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "license": "MIT", + "dev": true, "dependencies": { "package-json": "^8.1.0" }, @@ -6836,6 +7970,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", @@ -6895,6 +8030,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^5.0.0" @@ -7084,6 +8220,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash-es": { @@ -7111,6 +8248,12 @@ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", "dev": true }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, "node_modules/lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", @@ -7138,7 +8281,8 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/lodash.once": { "version": "4.1.1", @@ -7246,7 +8390,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", + "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7430,6 +8574,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -7448,6 +8593,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.2", @@ -7461,6 +8607,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -7507,7 +8654,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "license": "MIT", + "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7534,6 +8681,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7625,6 +8773,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", @@ -7635,6 +8784,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -7847,6 +8997,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, "node_modules/mv": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", @@ -7879,10 +9035,29 @@ "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", "dev": true }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/ncp": { "version": "2.0.0", @@ -7999,64 +9174,13 @@ "engines": { "node": "^16.14.0 || >=18.0.0" } - }, - "node_modules/node-gyp/node_modules/cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/node-gyp/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==", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=16" } }, "node_modules/node-gyp/node_modules/which": { @@ -8091,6 +9215,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", @@ -8105,6 +9230,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, "dependencies": { "lru-cache": "^10.0.1" }, @@ -8116,6 +9242,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, "engines": { "node": "14 || >=16.14" } @@ -8131,10 +9258,10 @@ } }, "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "license": "MIT", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, "engines": { "node": ">=14.16" }, @@ -8146,6 +9273,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, "license": "ISC", "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -8158,6 +9286,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, "dependencies": { "semver": "^7.1.1" }, @@ -8169,6 +9298,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -8178,6 +9308,7 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", @@ -8192,6 +9323,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, "dependencies": { "lru-cache": "^10.0.1" }, @@ -8203,6 +9335,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, "engines": { "node": "14 || >=16.14" } @@ -8211,6 +9344,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", + "dev": true, "dependencies": { "ignore-walk": "^6.0.0" }, @@ -8222,6 +9356,7 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -8236,6 +9371,7 @@ "version": "16.1.0", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, "dependencies": { "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", @@ -8253,6 +9389,7 @@ "version": "18.0.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -8275,6 +9412,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, "engines": { "node": "14 || >=16.14" } @@ -8283,6 +9421,7 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", @@ -8605,6 +9744,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -8613,6 +9753,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", @@ -8630,7 +9771,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", + "dev": true, "engines": { "node": ">=12.20" } @@ -8639,6 +9780,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -8654,6 +9796,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^3.0.2" @@ -8684,7 +9827,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "license": "MIT", + "dev": true, "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -8702,6 +9845,7 @@ "version": "17.0.6", "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", @@ -8733,6 +9877,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -8745,6 +9890,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", + "dev": true, "license": "MIT", "bin": { "parse-github-url": "cli.js" @@ -8781,6 +9927,12 @@ "node": ">= 0.8" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-equal": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", @@ -8792,6 +9944,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8801,6 +9954,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8858,11 +10012,18 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -8879,10 +10040,17 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", + "dev": true, "engines": { "node": ">=12" }, @@ -8979,10 +10147,39 @@ "node": ">= 0.4.0" } }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8.0" @@ -9031,6 +10228,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -9040,6 +10238,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, "license": "ISC" }, "node_modules/promise-retry": { @@ -9059,6 +10258,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/prompts-ncu/-/prompts-ncu-3.0.0.tgz", "integrity": "sha512-qyz9UxZ5MlPKWVhWrCmSZ1ahm2GVYdjLb8og2sg0IPth1KRuhcggHGuijz0e41dkx35p1t1q3GRISGH7QGALFA==", + "dev": true, "license": "MIT", "dependencies": { "kleur": "^4.0.1", @@ -9072,6 +10272,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -9087,7 +10288,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "license": "ISC" + "dev": true }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -9112,6 +10313,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -9129,7 +10331,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "license": "MIT", + "dev": true, "dependencies": { "escape-goat": "^4.0.0" }, @@ -9165,6 +10367,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -9191,7 +10394,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", + "dev": true, "engines": { "node": ">=10" }, @@ -9258,7 +10461,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -9273,6 +10476,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", + "dev": true, "license": "MIT", "dependencies": { "debug": "^4.3.4", @@ -9285,13 +10489,13 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" + "dev": true }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9300,6 +10504,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, "dependencies": { "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", @@ -9314,6 +10519,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, "license": "ISC", "dependencies": { "json-parse-even-better-errors": "^3.0.0", @@ -9327,6 +10533,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9336,6 +10543,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9477,7 +10685,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", - "license": "MIT", + "dev": true, "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -9489,7 +10697,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "license": "MIT", + "dev": true, "dependencies": { "rc": "1.2.8" }, @@ -9504,6 +10712,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/remote-git-tags/-/remote-git-tags-3.0.0.tgz", "integrity": "sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9523,6 +10732,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -9555,12 +10765,13 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" + "dev": true }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -9579,7 +10790,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "license": "MIT", + "dev": true, "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -9603,6 +10814,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -9659,6 +10871,50 @@ "node": "*" } }, + "node_modules/rollup": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-node-externals": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-externals/-/rollup-plugin-node-externals-7.1.0.tgz", + "integrity": "sha512-DD2COM7+UIllmGYKWn7GAm8oL2Gzrbcugl1eckYg1XWCKBY5XofK6mk1Okuxt/4K74B5rlDcs69Hov2tPNqD3w==", + "dev": true, + "engines": { + "node": ">= 21 || ^20.6.0 || ^18.19.0" + }, + "peerDependencies": { + "rollup": "^3.0.0 || ^4.0.0" + } + }, "node_modules/run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", @@ -9692,6 +10948,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -9801,7 +11058,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "license": "MIT", + "dev": true, "dependencies": { "semver": "^7.3.5" }, @@ -9816,6 +11073,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz", "integrity": "sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==", + "dev": true, "license": "APACHEv2" }, "node_modules/semver/node_modules/lru-cache": { @@ -10028,12 +11286,14 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, "license": "ISC" }, "node_modules/sigstore": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", + "dev": true, "dependencies": { "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", @@ -10079,12 +11339,14 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { "node": ">=8" } @@ -10132,10 +11394,20 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -10146,6 +11418,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -10155,6 +11428,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spawn-please/-/spawn-please-3.0.0.tgz", "integrity": "sha512-XFHEGgEG9R/MCypDDQVWoSSQoGAz5LFYcGoFpdYvnqgYDumHvapPDj54C5Xv7tqTkzEC17AY7Iz90KgrDfj7Gg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.3" }, @@ -10166,6 +11440,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -10176,12 +11451,14 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -10192,6 +11469,7 @@ "version": "3.0.13", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true, "license": "CC0-1.0" }, "node_modules/split2": { @@ -10288,6 +11566,15 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -10464,6 +11751,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -10476,6 +11764,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -10611,6 +11900,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, "license": "MIT" }, "node_modules/thread-stream": { @@ -10642,6 +11932,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -10690,6 +11981,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, "engines": { "node": ">=16" }, @@ -10787,6 +12079,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "dev": true, "dependencies": { "@tufjs/models": "2.0.0", "debug": "^4.3.4", @@ -10824,6 +12117,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" @@ -10846,6 +12140,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" @@ -10940,15 +12235,16 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", + "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11253,7 +12549,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "license": "MIT", + "dev": true, "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -11292,7 +12588,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "license": "MIT", + "dev": true, "engines": { "node": ">=8" } @@ -11301,6 +12597,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-7.0.0.tgz", "integrity": "sha512-Hv25Bh+eAbOLlsjJreVPOs4vd51rrtCrmhyOJtbpAojro34jS4KQaEp4/EvlHJX7jSO42VvEFpkastVyXyIsdQ==", + "dev": true, "dependencies": { "boxen": "^7.1.1", "chalk": "^5.3.0", @@ -11326,6 +12623,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -11418,6 +12716,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -11428,6 +12727,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, "license": "ISC", "dependencies": { "builtins": "^5.0.0" @@ -11628,6 +12928,136 @@ "extsprintf": "^1.2.0" } }, + "node_modules/vite": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.4.tgz", + "integrity": "sha512-vjFghvHWidBTinu5TCymJk/lRHlR5ljqB83yugr0HA1xspUPdOZHqbqDLnZ8f9/jINrtFHTCYYyIUi+o+Q5iyg==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.36", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.4.0.tgz", + "integrity": "sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-dts": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.7.3.tgz", + "integrity": "sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor": "7.39.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/language-core": "^1.8.26", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "vue-tsc": "^1.8.26" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -11700,6 +13130,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, "license": "MIT", "dependencies": { "string-width": "^5.0.1" @@ -11848,13 +13279,14 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", + "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -11866,7 +13298,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "license": "MIT", + "dev": true, "engines": { "node": ">=12" }, @@ -12021,6 +13453,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -12046,6 +13479,36 @@ "engines": { "node": ">=10" } + }, + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "dev": true, + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" + } + }, + "node_modules/z-schema/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } } } } diff --git a/package.json b/package.json index 8ef1df35..68e026d7 100644 --- a/package.json +++ b/package.json @@ -29,11 +29,11 @@ "node": "^18.18.0 || >=20.0.0", "npm": ">=8.12.1" }, - "main": "build/src/index.js", + "main": "build/index.js", + "types": "build/index.d.ts", "scripts": { - "build": "npm run build:ts && npm run build:options", - "build:ts": "tsc", - "build:options": "node build/src/scripts/build-options.js && tsc", + "build": "npm run build:options && vite build", + "build:options": "vite-node src/scripts/build-options.ts", "lint": "cross-env FORCE_COLOR=1 npm-run-all --parallel --aggregate-output lint:*", "lint:lockfile": "lockfile-lint", "lint:markdown": "markdownlint \"**/*.md\" --ignore node_modules --ignore build --config .markdownlint.js", @@ -44,11 +44,11 @@ "test": "npm run test:unit && npm run test:e2e", "test:unit": "mocha test test/package-managers/*", "test:e2e": "./test/e2e.sh", - "ncu": "node build/src/bin/cli.js" + "ncu": "node build/cli.js" }, "bin": { - "npm-check-updates": "build/src/bin/cli.js", - "ncu": "build/src/bin/cli.js" + "npm-check-updates": "build/cli.js", + "ncu": "build/cli.js" }, "repository": { "type": "git", @@ -61,44 +61,15 @@ "overrides": { "@yarnpkg/parsers": "2.6.0" }, + "dependencies_annotation": { + "node-gyp": "required for pacote which uses @npmcli/run-script" + }, "dependencies": { - "@types/semver-utils": "^1.1.3", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "chalk": "^5.3.0", - "cli-table3": "^0.6.3", - "commander": "^12.0.0", - "fast-glob": "^3.3.2", - "fast-memoize": "^2.5.2", - "find-up": "5.0.0", - "fp-and-or": "^1.0.2", - "hosted-git-info": "^7.0.1", - "ini": "^4.1.2", - "js-yaml": "^4.1.0", - "json-parse-helpfulerror": "^1.0.3", - "jsonlines": "^0.1.1", - "lodash": "^4.17.21", - "make-fetch-happen": "^13.0.0", - "p-map": "^4.0.0", - "pacote": "17.0.6", - "parse-github-url": "^1.0.2", - "picomatch": "^4.0.1", - "progress": "^2.0.3", - "prompts-ncu": "^3.0.0", - "rc-config-loader": "^4.1.3", - "remote-git-tags": "^3.0.0", - "semver": "^7.6.0", - "semver-utils": "^1.1.4", - "source-map-support": "^0.5.21", - "spawn-please": "^3.0.0", - "strip-ansi": "^7.1.0", - "strip-json-comments": "^5.0.1", - "untildify": "^4.0.0", - "update-notifier": "^7.0.0" + "node-gyp": "^10.0.1" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", - "@types/chai": "^4.3.12", + "@types/chai": "^4.3.14", "@types/chai-as-promised": "^7.1.8", "@types/chai-string": "^1.4.5", "@types/cli-table": "^0.3.4", @@ -110,7 +81,7 @@ "@types/lodash": "^4.17.0", "@types/make-fetch-happen": "^10.0.4", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.27", + "@types/node": "^20.11.30", "@types/pacote": "^11.1.8", "@types/parse-github-url": "^1.0.3", "@types/picomatch": "^2.3.3", @@ -118,12 +89,18 @@ "@types/prompts": "^2.4.9", "@types/remote-git-tags": "^4.0.2", "@types/semver": "^7.5.8", + "@types/semver-utils": "^1.1.3", "@types/sinon": "^17.0.3", "@types/update-notifier": "^6.0.8", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", "c8": "^9.1.0", "chai": "^4.3.10", "chai-as-promised": "^7.1.1", "chai-string": "^1.5.0", + "chalk": "^5.3.0", + "cli-table3": "^0.6.3", + "commander": "^12.0.0", "cross-env": "^7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", @@ -133,18 +110,48 @@ "eslint-plugin-jsdoc": "^48.2.1", "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", + "fast-glob": "^3.3.2", + "fast-memoize": "^2.5.2", + "find-up": "5.0.0", + "fp-and-or": "^1.0.2", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", + "js-yaml": "^4.1.0", + "json-parse-helpfulerror": "^1.0.3", + "jsonlines": "^0.1.1", "lockfile-lint": "^4.13.2", + "lodash": "^4.17.21", + "make-fetch-happen": "^13.0.0", "markdownlint-cli": "^0.39.0", "mocha": "^10.3.0", "npm-run-all": "^4.1.5", + "p-map": "^4.0.0", + "pacote": "17.0.6", + "parse-github-url": "^1.0.2", + "picomatch": "^4.0.1", "prettier": "^3.2.5", + "progress": "^2.0.3", + "prompts-ncu": "^3.0.0", + "rc-config-loader": "^4.1.3", + "remote-git-tags": "^3.0.0", + "rollup-plugin-node-externals": "^7.1.0", + "semver": "^7.6.0", + "semver-utils": "^1.1.4", "should": "^13.2.3", "sinon": "^17.0.1", + "source-map-support": "^0.5.21", + "spawn-please": "^3.0.0", "strip-ansi": "^7.1.0", + "strip-json-comments": "^5.0.1", "ts-node": "^10.9.2", - "typescript": "^5.4.2", + "typescript": "^5.4.3", "typescript-json-schema": "^0.63.0", + "untildify": "^4.0.0", + "update-notifier": "^7.0.0", "verdaccio": "^5.29.2", + "vite": "^5.2.4", + "vite-node": "^1.4.0", + "vite-plugin-dts": "^3.7.3", "yarn": "^1.22.22" }, "files": [ diff --git a/src/bin/cli.ts b/src/bin/cli.ts index fde8b6e2..fef98ae6 100755 --- a/src/bin/cli.ts +++ b/src/bin/cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import Commander, { Help, program } from 'commander' +import { Help, Option, program } from 'commander' import cloneDeep from 'lodash/cloneDeep' import pickBy from 'lodash/pickBy' import semver from 'semver' @@ -116,7 +116,7 @@ ${chalk.dim.underline( : Help.prototype.optionDescription(option), }) // add hidden -v alias for --V/--version - .addOption(new Commander.Option('-v, --versionAlias').hideHelp()) + .addOption(new Option('-v, --versionAlias').hideHelp()) .on('option:versionAlias', () => { console.info(pkg.version) process.exit(0) @@ -135,7 +135,7 @@ ${chalk.dim.underline( // add --no- prefixed boolean options // necessary for overriding booleans set to true in the ncurc if (type === 'boolean') { - program.addOption(new Commander.Option(`--no-${long}`).default(false).hideHelp()) + program.addOption(new Option(`--no-${long}`).default(false).hideHelp()) } }) diff --git a/src/lib/figgy-pudding/index.js b/src/lib/figgy-pudding/index.js index a419c269..b35d0ab8 100644 --- a/src/lib/figgy-pudding/index.js +++ b/src/lib/figgy-pudding/index.js @@ -55,7 +55,6 @@ class FiggyPudding { ) } } -const util = require('util') function pudGet(pud, key, validate) { let spec = pud.__specs[key] @@ -99,8 +98,7 @@ const proxyHandler = { }, } -module.exports = figgyPudding -function figgyPudding(specs, opts) { +export default function figgyPudding(specs, opts) { function factory(...providers) { return new Proxy(new FiggyPudding(specs, opts, providers), proxyHandler) } diff --git a/src/lib/libnpmconfig/index.js b/src/lib/libnpmconfig/index.js index 80f8b229..5706e1d1 100644 --- a/src/lib/libnpmconfig/index.js +++ b/src/lib/libnpmconfig/index.js @@ -5,13 +5,12 @@ This is a copy of the deprecated libnpmconfig library. It has been brought into https://github.com/npm/libnpmconfig */ - -const fs = require('fs') -const figgyPudding = require('../figgy-pudding') -const findUp = require('find-up') -const ini = require('ini') -const os = require('os') -const path = require('path') +import findUp from 'find-up' +import ini from 'ini' +import fs from 'node:fs' +import os from 'node:os' +import path from 'node:path' +import figgyPudding from '../figgy-pudding' const NpmConfig = figgyPudding( {}, diff --git a/src/scripts/install-hooks b/src/scripts/install-hooks index ed372096..acce0593 100755 --- a/src/scripts/install-hooks +++ b/src/scripts/install-hooks @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Use a simple bash script to install git hooks. # husky was slow and did not play nice with nvm. diff --git a/test/bin.test.ts b/test/bin.test.ts index 1c0d52cf..bc5b3f60 100644 --- a/test/bin.test.ts +++ b/test/bin.test.ts @@ -9,7 +9,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('bin', async function () { it('fetch latest version from registry (not stubbed)', async () => { diff --git a/test/bun-setup.sh b/test/bun-setup.sh index 42d43a23..62f5571b 100755 --- a/test/bun-setup.sh +++ b/test/bun-setup.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # Install bun if not installed. # Must be run in a prepare script instead of devDependencies to avoid npm install failing on Windows. bun -v &> /dev/null @@ -9,4 +10,4 @@ fi # Always return success, even if the install script fails. # Windows is expected to fail and the bun tests will be skipped. -exit 0 \ No newline at end of file +exit 0 diff --git a/test/deep.test.ts b/test/deep.test.ts index 43a94a6a..bddadeaa 100644 --- a/test/deep.test.ts +++ b/test/deep.test.ts @@ -10,7 +10,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') /** Creates a temp directory with nested package files for --deep testing. Returns the temp directory name (should be removed by caller). * diff --git a/test/doctor.test.ts b/test/doctor.test.ts index e4cb4ef7..ac19ae3c 100644 --- a/test/doctor.test.ts +++ b/test/doctor.test.ts @@ -10,7 +10,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') const doctorTests = path.join(__dirname, 'test-data/doctor') const mockNpmVersions = { diff --git a/test/filter.test.ts b/test/filter.test.ts index 80b7add3..31903c41 100644 --- a/test/filter.test.ts +++ b/test/filter.test.ts @@ -8,7 +8,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('filter', () => { describe('module', () => { diff --git a/test/filterVersion.test.ts b/test/filterVersion.test.ts index 8a3993b3..983c5cf6 100644 --- a/test/filterVersion.test.ts +++ b/test/filterVersion.test.ts @@ -6,7 +6,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('filterVersion', () => { describe('module', () => { diff --git a/test/format.test.ts b/test/format.test.ts index 7a23f33d..e0896f6a 100644 --- a/test/format.test.ts +++ b/test/format.test.ts @@ -8,7 +8,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('format', () => { it('--format time', async () => { diff --git a/test/global.test.ts b/test/global.test.ts index 5baada4e..70868189 100644 --- a/test/global.test.ts +++ b/test/global.test.ts @@ -5,7 +5,7 @@ import chaiSetup from './helpers/chaiSetup' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('global', () => { // TODO: Hangs on Windows diff --git a/test/group.test.ts b/test/group.test.ts index f2f75a16..819171e8 100644 --- a/test/group.test.ts +++ b/test/group.test.ts @@ -8,7 +8,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') /** * Sets up and tears down the temporary directories required to run each test diff --git a/test/install.test.ts b/test/install.test.ts index 0087be9d..4f1974d1 100644 --- a/test/install.test.ts +++ b/test/install.test.ts @@ -11,7 +11,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('install', () => { describe('non-interactive', () => { diff --git a/test/interactive.test.ts b/test/interactive.test.ts index 60ea12ae..732d2883 100644 --- a/test/interactive.test.ts +++ b/test/interactive.test.ts @@ -7,7 +7,7 @@ import stubNpmView from './helpers/stubNpmView' const should = chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('--interactive', () => { let stub: { restore: () => void } diff --git a/test/package-managers/deno/index.test.ts b/test/package-managers/deno/index.test.ts index e6e752af..36780486 100644 --- a/test/package-managers/deno/index.test.ts +++ b/test/package-managers/deno/index.test.ts @@ -7,7 +7,7 @@ import chaiSetup from '../../helpers/chaiSetup' chaiSetup() -const bin = path.join(__dirname, '../../../build/src/bin/cli.js') +const bin = path.join(__dirname, '../../../build/cli.js') describe('deno', async function () { it('handle import map', async () => { diff --git a/test/rc-config.test.ts b/test/rc-config.test.ts index 418ac595..7b6b21a3 100644 --- a/test/rc-config.test.ts +++ b/test/rc-config.test.ts @@ -7,7 +7,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('rc-config', () => { // before/after must be placed within the describe block, otherwise they will apply to tests in other files diff --git a/test/timeout.test.ts b/test/timeout.test.ts index 08e34017..507e516e 100644 --- a/test/timeout.test.ts +++ b/test/timeout.test.ts @@ -7,7 +7,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') describe('timeout', function () { it('throw an exception instead of printing to the console when timeout is exceeded', async () => { diff --git a/test/workspaces.test.ts b/test/workspaces.test.ts index 15cfd757..a66df108 100644 --- a/test/workspaces.test.ts +++ b/test/workspaces.test.ts @@ -8,7 +8,7 @@ import stubNpmView from './helpers/stubNpmView' chaiSetup() -const bin = path.join(__dirname, '../build/src/bin/cli.js') +const bin = path.join(__dirname, '../build/cli.js') /** Creates a temp directory with nested package files for --workspaces testing. Returns the temp directory name (should be removed by caller). * diff --git a/tsconfig.json b/tsconfig.json index fa5ea892..0d900ee3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "include": ["src", "test"], + "include": ["src", "test", "vite.config.mts"], "exclude": ["test/deep", "test/doctor"], "compilerOptions": { "allowJs": true, diff --git a/vite.config.mts b/vite.config.mts new file mode 100644 index 00000000..f3272821 --- /dev/null +++ b/vite.config.mts @@ -0,0 +1,31 @@ +import { nodeExternals } from 'rollup-plugin-node-externals' +import { defineConfig } from 'vite' +import dts from 'vite-plugin-dts' + +export default defineConfig(({ mode }) => ({ + plugins: [ + dts({ + entryRoot: 'src', + rollupTypes: true, + include: ['src'], + }), + nodeExternals(), + ], + ssr: { + // bundle and treeshake everything + noExternal: true, + // except our one dependency + external: ['node-gyp'], + }, + build: { + ssr: true, + lib: { + entry: ['src/index.ts', 'src/bin/cli.ts'], + formats: ['cjs'], + }, + target: 'node18', + outDir: 'build', + sourcemap: true, + minify: mode === 'production' && 'esbuild', + }, +})) From bea2b634728019a25782f97d5a8a812c7258cb5b Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Mon, 25 Mar 2024 18:52:26 +0000 Subject: [PATCH 59/60] Clear build folder. --- package-lock.json | 99 ++++++++++++++++++++++++++++------------------- package.json | 3 +- 2 files changed, 61 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index a773160a..d17a4e86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,6 +82,7 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", + "rimraf": "^5.0.5", "rollup-plugin-node-externals": "^7.1.0", "semver": "^7.6.0", "semver-utils": "^1.1.4", @@ -9017,6 +9018,44 @@ "node": ">=0.8.0" } }, + "node_modules/mv/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/mv/node_modules/glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mv/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mv/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -9029,6 +9068,18 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mv/node_modules/rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "dev": true, + "dependencies": { + "glob": "^6.0.1" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/nanoclone": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", @@ -10822,53 +10873,21 @@ } }, "node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { - "glob": "^6.0.1" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "dev": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": "*" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "node": ">=14" }, - "engines": { - "node": "*" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rollup": { diff --git a/package.json b/package.json index 68e026d7..b85f5d8c 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "main": "build/index.js", "types": "build/index.d.ts", "scripts": { - "build": "npm run build:options && vite build", + "build": "rimraf build && npm run build:options && vite build", "build:options": "vite-node src/scripts/build-options.ts", "lint": "cross-env FORCE_COLOR=1 npm-run-all --parallel --aggregate-output lint:*", "lint:lockfile": "lockfile-lint", @@ -134,6 +134,7 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.3", "remote-git-tags": "^3.0.0", + "rimraf": "^5.0.5", "rollup-plugin-node-externals": "^7.1.0", "semver": "^7.6.0", "semver-utils": "^1.1.4", From 9ac6902a8fe74732c5e7ca0f6e16d666edf61a0b Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Wed, 27 Mar 2024 20:25:53 +0000 Subject: [PATCH 60/60] 17.0.0-3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d17a4e86..3921d59e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "npm-check-updates", - "version": "17.0.0-2", + "version": "17.0.0-3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "npm-check-updates", - "version": "17.0.0-2", + "version": "17.0.0-3", "license": "Apache-2.0", "dependencies": { "node-gyp": "^10.0.1" diff --git a/package.json b/package.json index b85f5d8c..eebaa564 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check-updates", - "version": "17.0.0-2", + "version": "17.0.0-3", "author": "Tomas Junnonen ", "license": "Apache-2.0", "contributors": [