diff --git a/package-lock.json b/package-lock.json index dc7ebc50..5640a426 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,12 +12,12 @@ "./packages/*" ], "devDependencies": { - "commitizen": "^4.3.0", + "commitizen": "^4.3.1", "conventional-changelog-cli": "^5.0.0", "cz-conventional-changelog": "^3.3.0", "lerna": "^8.1.6", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0" + "metapak-nfroidure": "19.0.1" }, "engines": { "node": ">=20.11.1" @@ -368,9 +368,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -416,13 +416,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -551,12 +551,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -802,16 +802,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.3.tgz", + "integrity": "sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -829,9 +829,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -1686,45 +1686,48 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-3.0.1.tgz", - "integrity": "sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.2.tgz", + "integrity": "sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/confirm": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-4.0.1.tgz", - "integrity": "sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", + "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0" + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", - "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", - "dependencies": { - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^22.5.5", - "@types/wrap-ansi": "^3.0.0", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.0.tgz", + "integrity": "sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==", + "dependencies": { + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", @@ -1743,11 +1746,11 @@ } }, "node_modules/@inquirer/core/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@inquirer/core/node_modules/signal-exit": { @@ -1775,29 +1778,35 @@ } }, "node_modules/@inquirer/editor": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-3.0.1.tgz", - "integrity": "sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.1.0.tgz", + "integrity": "sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", "external-editor": "^3.1.0" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/expand": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-3.0.1.tgz", - "integrity": "sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.2.tgz", + "integrity": "sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/figures": { @@ -1809,121 +1818,134 @@ } }, "node_modules/@inquirer/input": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-3.0.1.tgz", - "integrity": "sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.0.2.tgz", + "integrity": "sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0" + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-2.0.1.tgz", - "integrity": "sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.2.tgz", + "integrity": "sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0" + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-3.0.1.tgz", - "integrity": "sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.2.tgz", + "integrity": "sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/prompts": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-6.0.1.tgz", - "integrity": "sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", + "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", "dependencies": { - "@inquirer/checkbox": "^3.0.1", - "@inquirer/confirm": "^4.0.1", - "@inquirer/editor": "^3.0.1", - "@inquirer/expand": "^3.0.1", - "@inquirer/input": "^3.0.1", - "@inquirer/number": "^2.0.1", - "@inquirer/password": "^3.0.1", - "@inquirer/rawlist": "^3.0.1", - "@inquirer/search": "^2.0.1", - "@inquirer/select": "^3.0.1" + "@inquirer/checkbox": "^4.0.2", + "@inquirer/confirm": "^5.0.2", + "@inquirer/editor": "^4.1.0", + "@inquirer/expand": "^4.0.2", + "@inquirer/input": "^4.0.2", + "@inquirer/number": "^3.0.2", + "@inquirer/password": "^4.0.2", + "@inquirer/rawlist": "^4.0.2", + "@inquirer/search": "^3.0.2", + "@inquirer/select": "^4.0.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-3.0.1.tgz", - "integrity": "sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.2.tgz", + "integrity": "sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/type": "^3.0.1", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/search": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-2.0.1.tgz", - "integrity": "sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.2.tgz", + "integrity": "sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/select": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-3.0.1.tgz", - "integrity": "sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.2.tgz", + "integrity": "sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/figures": "^1.0.6", - "@inquirer/type": "^2.0.0", + "@inquirer/core": "^10.1.0", + "@inquirer/figures": "^1.0.8", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@inquirer/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", - "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", - "dependencies": { - "mute-stream": "^1.0.0" - }, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", + "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", "engines": { "node": ">=18" - } - }, - "node_modules/@inquirer/type/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "node_modules/@isaacs/cliui": { @@ -3028,18 +3050,6 @@ "node": ">=10" } }, - "node_modules/@lerna/create/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@lerna/create/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -3088,18 +3098,6 @@ "node": ">=4" } }, - "node_modules/@lerna/create/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@lerna/create/node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -3242,25 +3240,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mole-inc/bin-wrapper": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", - "integrity": "sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==", - "dev": true, - "dependencies": { - "bin-check": "^4.1.0", - "bin-version-check": "^5.0.0", - "content-disposition": "^0.5.4", - "ext-name": "^5.0.0", - "file-type": "^17.1.6", - "filenamify": "^5.0.2", - "got": "^11.8.5", - "os-filter-obj": "^2.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/@napi-rs/nice": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", @@ -4408,6 +4387,12 @@ "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", "hasInstallScript": true }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true + }, "node_modules/@sigstore/bundle": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", @@ -4489,12 +4474,12 @@ "dev": true }, "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" @@ -4519,17 +4504,17 @@ } }, "node_modules/@swc/cli": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.4.0.tgz", - "integrity": "sha512-4JdVrPtF/4rCMXp6Q1h5I6YkYZrCCcqod7Wk97ZQq7K8vNGzJUryBv4eHCvqx5sJOJBrbYm9fcswe1B0TygNoA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.5.2.tgz", + "integrity": "sha512-ul2qIqjM5bfe9zWLqFDmHZCf9HXXSZZAlZLe4czn+lH4PewO+OWZnQcYCscnJKlbx6MuWjzXVR7gkspjNEJwJA==", "dev": true, "dependencies": { - "@mole-inc/bin-wrapper": "^8.0.1", "@swc/counter": "^0.1.3", + "@xhmikosr/bin-wrapper": "^13.0.5", "commander": "^8.3.0", "fast-glob": "^3.2.5", "minimatch": "^9.0.3", - "piscina": "^4.3.0", + "piscina": "^4.3.1", "semver": "^7.3.8", "slash": "3.0.0", "source-map": "^0.7.3" @@ -4553,9 +4538,9 @@ } }, "node_modules/@swc/core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.3.tgz", - "integrity": "sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.0.tgz", + "integrity": "sha512-+CuuTCmQFfzaNGg1JmcZvdUVITQXJk9sMnl1C2TiDLzOSVOJRwVD4dNo5dljX/qxpMAN+2BIYlwjlSkoGi6grg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -4570,16 +4555,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.9.3", - "@swc/core-darwin-x64": "1.9.3", - "@swc/core-linux-arm-gnueabihf": "1.9.3", - "@swc/core-linux-arm64-gnu": "1.9.3", - "@swc/core-linux-arm64-musl": "1.9.3", - "@swc/core-linux-x64-gnu": "1.9.3", - "@swc/core-linux-x64-musl": "1.9.3", - "@swc/core-win32-arm64-msvc": "1.9.3", - "@swc/core-win32-ia32-msvc": "1.9.3", - "@swc/core-win32-x64-msvc": "1.9.3" + "@swc/core-darwin-arm64": "1.10.0", + "@swc/core-darwin-x64": "1.10.0", + "@swc/core-linux-arm-gnueabihf": "1.10.0", + "@swc/core-linux-arm64-gnu": "1.10.0", + "@swc/core-linux-arm64-musl": "1.10.0", + "@swc/core-linux-x64-gnu": "1.10.0", + "@swc/core-linux-x64-musl": "1.10.0", + "@swc/core-win32-arm64-msvc": "1.10.0", + "@swc/core-win32-ia32-msvc": "1.10.0", + "@swc/core-win32-x64-msvc": "1.10.0" }, "peerDependencies": { "@swc/helpers": "*" @@ -4591,9 +4576,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.3.tgz", - "integrity": "sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.0.tgz", + "integrity": "sha512-wCeUpanqZyzvgqWRtXIyhcFK3CqukAlYyP+fJpY2gWc/+ekdrenNIfZMwY7tyTFDkXDYEKzvn3BN/zDYNJFowQ==", "cpu": [ "arm64" ], @@ -4608,9 +4593,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.9.3.tgz", - "integrity": "sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.0.tgz", + "integrity": "sha512-0CZPzqTynUBO+SHEl/qKsFSahp2Jv/P2ZRjFG0gwZY5qIcr1+B/v+o74/GyNMBGz9rft+F2WpU31gz2sJwyF4A==", "cpu": [ "x64" ], @@ -4625,9 +4610,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.3.tgz", - "integrity": "sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.0.tgz", + "integrity": "sha512-oq+DdMu5uJOFPtRkeiITc4kxmd+QSmK+v+OBzlhdGkSgoH3yRWZP+H2ao0cBXo93ZgCr2LfjiER0CqSKhjGuNA==", "cpu": [ "arm" ], @@ -4642,9 +4627,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.3.tgz", - "integrity": "sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.0.tgz", + "integrity": "sha512-Y6+PC8knchEViRxiCUj3j8wsGXaIhuvU+WqrFqV834eiItEMEI9+Vh3FovqJMBE3L7d4E4ZQtgImHCXjrHfxbw==", "cpu": [ "arm64" ], @@ -4659,9 +4644,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.3.tgz", - "integrity": "sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.0.tgz", + "integrity": "sha512-EbrX9A5U4cECCQQfky7945AW9GYnTXtCUXElWTkTYmmyQK87yCyFfY8hmZ9qMFIwxPOH6I3I2JwMhzdi8Qoz7g==", "cpu": [ "arm64" ], @@ -4676,9 +4661,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.3.tgz", - "integrity": "sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.0.tgz", + "integrity": "sha512-TaxpO6snTjjfLXFYh5EjZ78se69j2gDcqEM8yB9gguPYwkCHi2Ylfmh7iVaNADnDJFtjoAQp0L41bTV/Pfq9Cg==", "cpu": [ "x64" ], @@ -4693,9 +4678,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.3.tgz", - "integrity": "sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.0.tgz", + "integrity": "sha512-IEGvDd6aEEKEyZFZ8oCKuik05G5BS7qwG5hO5PEMzdGeh8JyFZXxsfFXbfeAqjue4UaUUrhnoX+Ze3M2jBVMHw==", "cpu": [ "x64" ], @@ -4710,9 +4695,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.3.tgz", - "integrity": "sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.0.tgz", + "integrity": "sha512-UkQ952GSpY+Z6XONj9GSW8xGSkF53jrCsuLj0nrcuw7Dvr1a816U/9WYZmmcYS8tnG2vHylhpm6csQkyS8lpCw==", "cpu": [ "arm64" ], @@ -4727,9 +4712,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.3.tgz", - "integrity": "sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.0.tgz", + "integrity": "sha512-a2QpIZmTiT885u/mUInpeN2W9ClCnqrV2LnMqJR1/Fgx1Afw/hAtiDZPtQ0SqS8yDJ2VR5gfNZo3gpxWMrqdVA==", "cpu": [ "ia32" ], @@ -4744,9 +4729,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.3.tgz", - "integrity": "sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.0.tgz", + "integrity": "sha512-tZcCmMwf483nwsEBfUk5w9e046kMa1iSik4bP9Kwi2FGtOfHuDfIcwW4jek3hdcgF5SaBW1ktnK/lgQLDi5AtA==", "cpu": [ "x64" ], @@ -4802,15 +4787,15 @@ } }, "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, "dependencies": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, "node_modules/@tokenizer/token": { @@ -4906,21 +4891,9 @@ } }, "node_modules/@types/bytes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.4.tgz", - "integrity": "sha512-A0uYgOj3zNc4hNjHc5lYUfJQ/HVyBXiUMKdXd7ysclaE6k9oJdavQzODHuwjpUu2/boCP8afjQYi8z/GtvNCWA==" - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.5.tgz", + "integrity": "sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==" }, "node_modules/@types/connect": { "version": "3.4.38", @@ -5059,15 +5032,6 @@ "@types/node": "*" } }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", @@ -5117,14 +5081,6 @@ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, - "node_modules/@types/mute-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@types/negotiator/-/negotiator-0.6.3.tgz", @@ -5163,15 +5119,6 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -5226,11 +5173,6 @@ "@types/node": "*" } }, - "node_modules/@types/wrap-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", - "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==" - }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -5247,31 +5189,31 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz", + "integrity": "sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/type-utils": "8.17.0", + "@typescript-eslint/utils": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -5279,57 +5221,27 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "node_modules/@typescript-eslint/parser": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", + "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/typescript-estree": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", + "debug": "^4.3.4" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -5337,78 +5249,43 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", + "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz", + "integrity": "sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" + "@typescript-eslint/typescript-estree": "8.17.0", + "@typescript-eslint/utils": "8.17.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -5416,53 +5293,36 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "node_modules/@typescript-eslint/types": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", + "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", "dev": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", + "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/visitor-keys": "8.17.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5474,264 +5334,41 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "node_modules/@typescript-eslint/utils": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz", + "integrity": "sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.17.0", + "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/typescript-estree": "8.17.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz", - "integrity": "sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", + "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.16.0.tgz", - "integrity": "sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz", - "integrity": "sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/visitor-keys": "8.16.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.16.0.tgz", - "integrity": "sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.16.0", - "@typescript-eslint/types": "8.16.0", - "@typescript-eslint/typescript-estree": "8.16.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz", - "integrity": "sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.16.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.17.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5805,6 +5442,154 @@ "resolved": "packages/whook", "link": true }, + "node_modules/@xhmikosr/archive-type": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-7.0.0.tgz", + "integrity": "sha512-sIm84ZneCOJuiy3PpWR5bxkx3HaNt1pqaN+vncUBZIlPZCq8ASZH+hBVdu5H8znR7qYC6sKwx+ie2Q7qztJTxA==", + "dev": true, + "dependencies": { + "file-type": "^19.0.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, + "node_modules/@xhmikosr/bin-check": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@xhmikosr/bin-check/-/bin-check-7.0.3.tgz", + "integrity": "sha512-4UnCLCs8DB+itHJVkqFp9Zjg+w/205/J2j2wNBsCEAm/BuBmtua2hhUOdAMQE47b1c7P9Xmddj0p+X1XVsfHsA==", + "dev": true, + "dependencies": { + "execa": "^5.1.1", + "isexe": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/bin-wrapper": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@xhmikosr/bin-wrapper/-/bin-wrapper-13.0.5.tgz", + "integrity": "sha512-DT2SAuHDeOw0G5bs7wZbQTbf4hd8pJ14tO0i4cWhRkIJfgRdKmMfkDilpaJ8uZyPA0NVRwasCNAmMJcWA67osw==", + "dev": true, + "dependencies": { + "@xhmikosr/bin-check": "^7.0.3", + "@xhmikosr/downloader": "^15.0.1", + "@xhmikosr/os-filter-obj": "^3.0.0", + "bin-version-check": "^5.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/decompress": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress/-/decompress-10.0.1.tgz", + "integrity": "sha512-6uHnEEt5jv9ro0CDzqWlFgPycdE+H+kbJnwyxgZregIMLQ7unQSCNVsYG255FoqU8cP46DyggI7F7LohzEl8Ag==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^8.0.1", + "@xhmikosr/decompress-tarbz2": "^8.0.1", + "@xhmikosr/decompress-targz": "^8.0.1", + "@xhmikosr/decompress-unzip": "^7.0.0", + "graceful-fs": "^4.2.11", + "make-dir": "^4.0.0", + "strip-dirs": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/decompress-tar": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tar/-/decompress-tar-8.0.1.tgz", + "integrity": "sha512-dpEgs0cQKJ2xpIaGSO0hrzz3Kt8TQHYdizHsgDtLorWajuHJqxzot9Hbi0huRxJuAGG2qiHSQkwyvHHQtlE+fg==", + "dev": true, + "dependencies": { + "file-type": "^19.0.0", + "is-stream": "^2.0.1", + "tar-stream": "^3.1.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/decompress-tarbz2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-tarbz2/-/decompress-tarbz2-8.0.1.tgz", + "integrity": "sha512-OF+6DysDZP5YTDO8uHuGG6fMGZjc+HszFPBkVltjoje2Cf60hjBg/YP5OQndW1hfwVWOdP7f3CnJiPZHJUTtEg==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^8.0.1", + "file-type": "^19.0.0", + "is-stream": "^2.0.1", + "seek-bzip": "^2.0.0", + "unbzip2-stream": "^1.4.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/decompress-targz": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-targz/-/decompress-targz-8.0.1.tgz", + "integrity": "sha512-mvy5AIDIZjQ2IagMI/wvauEiSNHhu/g65qpdM4EVoYHUJBAmkQWqcPJa8Xzi1aKVTmOA5xLJeDk7dqSjlHq8Mg==", + "dev": true, + "dependencies": { + "@xhmikosr/decompress-tar": "^8.0.1", + "file-type": "^19.0.0", + "is-stream": "^2.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/decompress-unzip": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/decompress-unzip/-/decompress-unzip-7.0.0.tgz", + "integrity": "sha512-GQMpzIpWTsNr6UZbISawsGI0hJ4KA/mz5nFq+cEoPs12UybAqZWKbyIaZZyLbJebKl5FkLpsGBkrplJdjvUoSQ==", + "dev": true, + "dependencies": { + "file-type": "^19.0.0", + "get-stream": "^6.0.1", + "yauzl": "^3.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/downloader": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@xhmikosr/downloader/-/downloader-15.0.1.tgz", + "integrity": "sha512-fiuFHf3Dt6pkX8HQrVBsK0uXtkgkVlhrZEh8b7VgoDqFf+zrgFBPyrwCqE/3nDwn3hLeNz+BsrS7q3mu13Lp1g==", + "dev": true, + "dependencies": { + "@xhmikosr/archive-type": "^7.0.0", + "@xhmikosr/decompress": "^10.0.1", + "content-disposition": "^0.5.4", + "defaults": "^3.0.0", + "ext-name": "^5.0.0", + "file-type": "^19.0.0", + "filenamify": "^6.0.0", + "get-stream": "^6.0.1", + "got": "^13.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@xhmikosr/os-filter-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@xhmikosr/os-filter-obj/-/os-filter-obj-3.0.0.tgz", + "integrity": "sha512-siPY6BD5dQ2SZPl3I0OZBHL27ZqZvLEosObsZRQ1NUB8qcxegwt0T9eKtV96JMFQpIz1elhkzqOg4c/Ri6Dp9A==", + "dev": true, + "dependencies": { + "arch": "^3.0.0" + }, + "engines": { + "node": "^14.14.0 || >=16.0.0" + } + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -5998,27 +5783,6 @@ "node": ">=6" } }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -6085,13 +5849,13 @@ "integrity": "sha512-GmkOcb5he2x5gat+TuiTvabnBf1m4jzdecal3XbXBh/Jg+kx4hcvO3TTDFQ9CuTprtzdcVyA11iqG7iOMOt7vA==" }, "node_modules/application-services": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/application-services/-/application-services-6.1.0.tgz", - "integrity": "sha512-aMuOwj+Inv6XlsCE5DA/KOk2eDT6X3ODPkROFMynxFXNBfqcUG85zA/6cm1G2z5//T5j89WoDh05pP2NT03Mjw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/application-services/-/application-services-7.0.0.tgz", + "integrity": "sha512-w0Hb7O3TPSYy1dAA/IgZtZ67bXaoQ7Rj2UG8i0XkLosHAmQENOHYWqh7J3ay7/C92CW4qsm8jELBtfeNXydPGg==", "dependencies": { - "common-services": "^16.0.4", - "dotenv": "^16.4.5", - "knifecycle": "^17.0.3", + "common-services": "^17.0.0", + "dotenv": "^16.4.7", + "knifecycle": "^18.0.0", "pkg-dir": "^8.0.0", "yerror": "^8.0.0" }, @@ -6106,9 +5870,9 @@ "dev": true }, "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-3.0.0.tgz", + "integrity": "sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q==", "dev": true, "funding": [ { @@ -6227,15 +5991,21 @@ } }, "node_modules/axios": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", - "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -6360,6 +6130,13 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "dev": true, + "optional": true + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -6386,19 +6163,6 @@ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, - "node_modules/bin-check": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", - "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", - "dev": true, - "dependencies": { - "execa": "^0.7.0", - "executable": "^4.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/bin-links": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", @@ -6423,112 +6187,53 @@ "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/bin-links/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/bin-version": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-6.0.0.tgz", - "integrity": "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "find-versions": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version-check": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-5.1.0.tgz", - "integrity": "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==", - "dev": true, - "dependencies": { - "bin-version": "^6.0.0", - "semver": "^7.5.3", - "semver-truncate": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bin-version/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/bin-version/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/bin-links/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/bin-version/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/bin-version": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-6.0.0.tgz", + "integrity": "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==", "dev": true, + "dependencies": { + "execa": "^5.0.0", + "find-versions": "^5.0.0" + }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bin-version/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/bin-version-check": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-5.1.0.tgz", + "integrity": "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==", "dev": true, "dependencies": { - "path-key": "^3.0.0" + "bin-version": "^6.0.0", + "semver": "^7.5.3", + "semver-truncate": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/binary-extensions": { @@ -6696,6 +6401,15 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "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", @@ -6768,68 +6482,50 @@ } }, "node_modules/cache-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", - "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-3.0.0.tgz", + "integrity": "sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==", "dev": true, "dependencies": { - "array-back": "^4.0.1", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" + "array-back": "^6.2.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/cache-point/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "^0.1.1" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, "engines": { - "node": ">=10.6.0" + "node": ">=14.16" } }, "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "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": { - "pump": "^3.0.0" + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.16" } }, "node_modules/cachedir": { @@ -6920,9 +6616,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001685", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001685.tgz", - "integrity": "sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==", + "version": "1.0.30001686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", + "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", "dev": true, "funding": [ { @@ -6967,6 +6663,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -7185,18 +6896,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cmd-shim": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", @@ -7216,19 +6915,6 @@ "node": ">= 0.12.0" } }, - "node_modules/collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, - "dependencies": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", @@ -7285,91 +6971,41 @@ } }, "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", + "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "dev": true, "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", + "array-back": "^6.2.2", + "find-replace": "^5.0.2", "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "typical": "^7.2.0" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", - "dev": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" + "node": ">=12.20" }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-tool/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "dependencies": { - "typical": "^2.6.1" + "peerDependencies": { + "@75lb/nature": "latest" }, - "engines": { - "node": ">=4" + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", - "dev": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, "dependencies": { - "typical": "^2.6.1" + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" }, "engines": { - "node": ">=4" + "node": ">=12.20.0" } }, "node_modules/commander": { @@ -7418,41 +7054,28 @@ "dev": true }, "node_modules/common-sequence": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", - "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-3.0.0.tgz", + "integrity": "sha512-g/CgSYk93y+a1IKm50tKl7kaT/OjjTYVQlEbUlt/49ZLV1mcKpUU7iyDiqTAeLdb4QDtQfq3ako8y8v//fzrWQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.17" } }, "node_modules/common-services": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/common-services/-/common-services-16.0.4.tgz", - "integrity": "sha512-tgMsd87t+Du0b4GyM2DX0rSvQjrHoCmwyN1s68cXfe84iZZha9ySHlvXvYIUXY4o3gLI6c5/LKLg9UbNUlnZFQ==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/common-services/-/common-services-17.0.0.tgz", + "integrity": "sha512-vKQvvvvNfrpofrpWDj0/a8+5MMjHvYfg47apcWGsKaPeTItp2O07RN0Dp1wAyVt1GNBwAQtWMCxre8Z1loWxHQ==", "dependencies": { - "@types/node": "^20.11.20", - "knifecycle": "^17.0.3", - "type-fest": "^4.21.0", + "@types/node": "^22.10.1", + "knifecycle": "^18.0.0", + "type-fest": "^4.30.0", "yerror": "^8.0.0" }, "engines": { "node": ">=20.11.1" } }, - "node_modules/common-services/node_modules/@types/node": { - "version": "20.17.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", - "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/common-services/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" - }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -8218,6 +7841,15 @@ "node": ">=4" } }, + "node_modules/current-module-paths": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz", + "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==", + "dev": true, + "engines": { + "node": ">=12.17" + } + }, "node_modules/cz-conventional-changelog": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", @@ -8467,17 +8099,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/default-gateway/node_modules/human-signals": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", @@ -8559,12 +8180,12 @@ } }, "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-3.0.0.tgz", + "integrity": "sha512-RsqXDEAALjfRTro+IFNKpcPCt0/Cy2FqHSIlnomiJp9YGadpQnrtbRpSgN2+np21qHcIKiva4fiOQGjS9/qR/A==", "dev": true, - "dependencies": { - "clone": "^1.0.2" + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8663,9 +8284,9 @@ } }, "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, "engines": { "node": ">=0.3.1" @@ -8693,26 +8314,29 @@ } }, "node_modules/dmd": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.3.tgz", - "integrity": "sha512-SIEkjrG7cZ9GWZQYk/mH+mWtcRPly/3ibVuXO/tP/MFoWz6KiRK77tSMq6YQBPl7RljPtXPQ/JhxbNuCdi1bNw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-7.1.1.tgz", + "integrity": "sha512-Ap2HP6iuOek7eShReDLr9jluNJm9RMZESlt29H/Xs1qrVMkcS9X6m5h1mBC56WMxNiSo0wvjGICmZlYUSFjwZQ==", "dev": true, "dependencies": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "common-sequence": "^2.0.2", - "file-set": "^4.0.2", + "cache-point": "^3.0.0", + "common-sequence": "^3.0.0", + "file-set": "^5.2.2", "handlebars": "^4.7.8", "marked": "^4.3.0", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" + "walk-back": "^5.1.1" }, "engines": { - "node": ">=12" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/dot-prop": { @@ -8728,9 +8352,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "engines": { "node": ">=12" }, @@ -8811,9 +8435,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.67", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", - "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "version": "1.5.68", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.68.tgz", + "integrity": "sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==", "dev": true }, "node_modules/emittery": { @@ -9292,116 +8916,49 @@ } }, "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/execa/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/execa/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" } }, - "node_modules/execa/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "pify": "^2.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/exit": { @@ -9572,6 +9129,12 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -9672,42 +9235,70 @@ } }, "node_modules/file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-5.2.2.tgz", + "integrity": "sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==", "dev": true, "dependencies": { - "array-back": "^5.0.0", - "glob": "^7.1.6" + "array-back": "^6.2.2", + "fast-glob": "^3.3.2" }, "engines": { - "node": ">=10" + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, - "node_modules/file-set/node_modules/array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "node_modules/file-type": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-19.6.0.tgz", + "integrity": "sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==", "dev": true, + "dependencies": { + "get-stream": "^9.0.1", + "strtok3": "^9.0.1", + "token-types": "^6.0.0", + "uint8array-extras": "^1.3.0" + }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/file-type": { - "version": "17.1.6", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.6.tgz", - "integrity": "sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==", + "node_modules/file-type/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, "dependencies": { - "readable-web-to-node-stream": "^3.0.2", - "strtok3": "^7.0.0-alpha.9", - "token-types": "^5.0.0-alpha.2" + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-type/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/filelist": { @@ -9744,17 +9335,15 @@ } }, "node_modules/filenamify": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", - "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-6.0.0.tgz", + "integrity": "sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==", "dev": true, "dependencies": { - "filename-reserved-regex": "^3.0.0", - "strip-outer": "^2.0.0", - "trim-repeated": "^2.0.0" + "filename-reserved-regex": "^3.0.0" }, "engines": { - "node": ">=12.20" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9813,24 +9402,20 @@ } }, "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-replace/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, "engines": { - "node": ">=6" + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/find-root": { @@ -9910,6 +9495,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/first-chunk-stream/node_modules/uint8array-extras": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-0.5.1.tgz", + "integrity": "sha512-dlgj8+9+Rak3JzT1Rg77nIccp0a5kBKjQ7tworiwKxkXIhqgdd+oZLkK8rcDb+Fq5tq+oUVjPbq4V/dMD6cnlA==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -9998,6 +9594,15 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "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==", + "dev": true, + "engines": { + "node": ">= 14.17" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -10084,15 +9689,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -10289,12 +9885,14 @@ } }, "node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-tsconfig": { @@ -10338,6 +9936,15 @@ "node": ">=4" } }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/git-semver-tags": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-8.0.0.tgz", @@ -10551,25 +10158,25 @@ } }, "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", "dev": true, "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -10683,9 +10290,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -10794,13 +10401,13 @@ } }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "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.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -11157,6 +10764,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inspect-with-kind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", + "integrity": "sha512-MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + } + }, "node_modules/internal-ip": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-8.0.0.tgz", @@ -11404,12 +11020,15 @@ } }, "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-text-path": { @@ -11652,65 +11271,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", @@ -12278,18 +11838,18 @@ } }, "node_modules/jsarch": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsarch/-/jsarch-6.1.0.tgz", - "integrity": "sha512-61L0kBxU+gLyoAH8G62clOUQu726C2hmdq/LAKskUO/ebndgwAMgr4vwBVEHWE0TPmhtF6+LUBBMrqDe8/Flnw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/jsarch/-/jsarch-6.1.2.tgz", + "integrity": "sha512-RN9d45OvW3vBeRij/5335dtFXV1HPMrVt7a7nwsC7pFRHKObucabCbTm0cKosAxT0o9qDVvxr7K9+rd/cX4Bkw==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.1", + "@babel/parser": "^7.26.2", "ast-types": "^0.16.1", "commander": "^12.1.0", "debug": "^4.3.7", "deep-extend": "^0.6.0", "glob": "^11.0.0", - "knifecycle": "^17.0.3", + "knifecycle": "^18.0.0", "pkg-dir": "^8.0.0", "rc": "^1.2.8", "yerror": "^8.0.0" @@ -12424,76 +11984,74 @@ } }, "node_modules/jsdoc-api": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.1.1.tgz", - "integrity": "sha512-yas9E4h8NHp1CTEZiU/DPNAvLoUcip+Hl8Xi1RBYzHqSrgsF+mImAZNtwymrXvgbrgl4bNGBU9syulM0JzFeHQ==", + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-9.3.4.tgz", + "integrity": "sha512-di8lggLACEttpyAZ6WjKKafUP4wC4prAGjt40nMl7quDpp2nD7GmLt6/WxhRu9Q6IYoAAySsNeidBXYVAMwlqg==", "dev": true, "dependencies": { "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^4.0.3", + "cache-point": "^3.0.0", + "current-module-paths": "^1.1.2", + "file-set": "^5.2.2", + "jsdoc": "^4.0.4", "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" + "walk-back": "^5.1.1" }, "engines": { "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/jsdoc-parse": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz", - "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==", - "dev": true, - "dependencies": { - "array-back": "^6.2.2", - "find-replace": "^5.0.1", - "lodash.omit": "^4.5.0", - "sort-array": "^5.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jsdoc-parse/node_modules/find-replace": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", - "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", - "dev": true, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@75lb/nature": "latest" + "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==", + "dev": true, + "dependencies": { + "array-back": "^6.2.2", + "find-replace": "^5.0.1", + "lodash.omit": "^4.5.0", + "sort-array": "^5.0.0" }, - "peerDependenciesMeta": { - "@75lb/nature": { - "optional": true - } + "engines": { + "node": ">=12" } }, "node_modules/jsdoc-to-markdown": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.3.tgz", - "integrity": "sha512-JGYYd5xygnQt1DIxH+HUI+X/ynL8qWihzIF0n15NSCNtM6MplzawURRcaLI2WkiS2hIjRIgsphCOfM7FkaWiNg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-9.1.1.tgz", + "integrity": "sha512-QqYVSo58iHXpD5Jwi1u4AFeuMcQp4jfk7SmWzvXKc3frM9Kop17/OHudmi0phzkT/K137Rlroc9Q0y+95XpUsw==", "dev": true, "dependencies": { "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.3", "config-master": "^3.1.0", - "dmd": "^6.2.3", - "jsdoc-api": "^8.1.1", - "jsdoc-parse": "^6.2.1", - "walk-back": "^5.1.0" + "dmd": "^7.1.1", + "jsdoc-api": "^9.3.4", + "jsdoc-parse": "^6.2.4", + "walk-back": "^5.1.1" }, "bin": { "jsdoc2md": "bin/cli.js" }, "engines": { "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/jsdoc/node_modules/escape-string-regexp": { @@ -12683,15 +12241,15 @@ } }, "node_modules/jwt-service": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/jwt-service/-/jwt-service-10.1.1.tgz", - "integrity": "sha512-Uy62NQS69Lyzfh06tLdCH9DLzHmgWkQixujEAgB6fZ5qVzA1efQZq0CIBDMM4GRFVD0XhAlXHLDv4QV3CYAIEA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/jwt-service/-/jwt-service-11.0.0.tgz", + "integrity": "sha512-SbxqlJmoGVOpaBHARgjTCs84hJrOWXDCbdZcnGwaD9zmHeTlU9i7H9OMRIfm6FNi+9GKw3bqDw1SQjXD27uClQ==", "dependencies": { - "@types/jsonwebtoken": "^9.0.6", + "@types/jsonwebtoken": "^9.0.7", "@types/ms": "^0.7.34", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "jsonwebtoken": "^9.0.2", - "knifecycle": "^17.0.3", + "knifecycle": "^18.0.0", "ms": "^2.1.3", "yerror": "^8.0.0" }, @@ -12736,9 +12294,9 @@ } }, "node_modules/knifecycle": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/knifecycle/-/knifecycle-17.3.0.tgz", - "integrity": "sha512-C4Q4/fqm553XNNeaJQBxlbe1fgf94LFKHin4f89FgGBMuNZs4k4zfI43Hdh/vkO2xIPyVOUsLJEXoIzF/ncaGA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/knifecycle/-/knifecycle-18.0.0.tgz", + "integrity": "sha512-7DAEhllxcQaMnGzVfvtQYhNFuIuh6Rv5/qt4RENPF1GVFLUbgW/G48ucQkeUu2Tto+AFgqgUtnelpDcLHW23yA==", "dependencies": { "debug": "^4.3.5", "yerror": "^8.0.0" @@ -13322,18 +12880,6 @@ "node": ">=10" } }, - "node_modules/lerna/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lerna/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -13382,18 +12928,6 @@ "node": ">=4" } }, - "node_modules/lerna/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lerna/node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -13751,12 +13285,6 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", - "dev": true - }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -13833,12 +13361,15 @@ } }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -14000,23 +13531,23 @@ } }, "node_modules/metapak": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/metapak/-/metapak-6.0.1.tgz", - "integrity": "sha512-QKgdlu2kIJaWpvw8lQNpZsF1GEHYHj0TqIsxJ8oggH+Z6xZ+Z6+G2jzfrjCzTygfSadi6Cjyz/rp48QJp/Y+og==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/metapak/-/metapak-6.0.2.tgz", + "integrity": "sha512-vw5OrFlLY1MXi7I12+KgSSaq5+a15/1F0Lo44LuaaLjd1qdv5sLtvUdw1g2sCWgliEltX6BLdj/X8xcBy2gzDw==", "dev": true, "dependencies": { - "application-services": "^6.1.0", + "application-services": "^7.0.0", "chalk": "^5.3.0", - "commander": "^12.0.0", - "common-services": "^16.0.4", - "debug": "^4.3.5", - "diff": "^5.2.0", + "commander": "^12.1.0", + "common-services": "^17.0.0", + "debug": "^4.3.7", + "diff": "^7.0.0", "glob": "^11.0.0", - "knifecycle": "^17.0.3", + "knifecycle": "^18.0.0", "mkdirp": "^3.0.1", "pkg-dir": "^8.0.0", - "sort-keys": "^5.0.0", - "type-fest": "^4.21.0", + "sort-keys": "^5.1.0", + "type-fest": "^4.30.0", "yerror": "^8.0.0" }, "bin": { @@ -14027,9 +13558,9 @@ } }, "node_modules/metapak-nfroidure": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/metapak-nfroidure/-/metapak-nfroidure-18.2.0.tgz", - "integrity": "sha512-6KNRD+dO4LSCtaxl1A/ibyEDlSxezc6MZ8wuGUle50tIx4TLpzp80FceerOlYPNfdkNQcXcjuVcTiTt664AgXg==", + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/metapak-nfroidure/-/metapak-nfroidure-19.0.1.tgz", + "integrity": "sha512-WWGpvKbumkz6xkd4z2t8VCxd5JZ1y8jhLT6QrfI3bEXFNsBHpvbxd04O0xms8SPvDtZx7lHqVJcBGZS/l+juuw==", "dev": true, "dependencies": { "escape-string-regexp": "^5.0.0", @@ -14234,12 +13765,15 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "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==", "dev": true, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/min-indent": { @@ -14471,12 +14005,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -14583,9 +14111,9 @@ } }, "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz", + "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -14707,12 +14235,12 @@ } }, "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "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": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14813,24 +14341,15 @@ } }, "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/nx": { @@ -14960,18 +14479,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/nx/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nx/node_modules/ora": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", @@ -14994,6 +14501,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nx/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/nx/node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -15011,12 +14534,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, "node_modules/object-inspect": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", @@ -15254,18 +14771,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/os-filter-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", - "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", - "dev": true, - "dependencies": { - "arch": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -15275,12 +14780,12 @@ } }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/p-event": { @@ -15646,6 +15151,12 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -15665,12 +15176,15 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pirates": { @@ -15683,9 +15197,9 @@ } }, "node_modules/piscina": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", - "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, "optionalDependencies": { "@napi-rs/nice": "^1.0.1" @@ -15768,9 +15282,9 @@ } }, "node_modules/prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -15929,22 +15443,6 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -16013,6 +15511,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -16372,22 +15876,6 @@ "node": ">= 6" } }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dev": true, - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -16413,61 +15901,6 @@ "node": ">=8" } }, - "node_modules/reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", - "dev": true, - "dependencies": { - "test-value": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reduce-without/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/reduce-without/node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", - "dev": true, - "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexp-tpl": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexp-tpl/-/regexp-tpl-2.0.1.tgz", @@ -16582,21 +16015,24 @@ } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16810,6 +16246,28 @@ "node": ">=20.11.1" } }, + "node_modules/seek-bzip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz", + "integrity": "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==", + "dev": true, + "dependencies": { + "commander": "^6.0.0" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/seek-bzip/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -17113,15 +16571,6 @@ } } }, - "node_modules/sort-array/node_modules/typical": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", - "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", - "dev": true, - "engines": { - "node": ">=12.17" - } - }, "node_modules/sort-keys": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", @@ -17309,40 +16758,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "dependencies": { - "array-back": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-connect/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", - "dev": true, - "dependencies": { - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/streamtest": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/streamtest/-/streamtest-2.0.0.tgz", @@ -17355,6 +16770,20 @@ "node": ">=10.19.0" } }, + "node_modules/streamx": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", + "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/strict-qs": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/strict-qs/-/strict-qs-8.0.3.tgz", @@ -17455,10 +16884,20 @@ "node": ">=8" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "node_modules/strip-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", + "integrity": "sha512-I0sdgcFTfKQlUPZyAqPJmSG3HLO9rWDFnxonnIbskYNM3DwFOeTNB5KzVq3dA1GdRAc/25b5Y7UO2TQfKWw4aQ==", + "dev": true, + "dependencies": { + "inspect-with-kind": "^1.0.5", + "is-plain-obj": "^1.1.0" + } + }, + "node_modules/strip-dirs/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17497,18 +16936,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-outer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", - "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", @@ -17527,13 +16954,13 @@ } }, "node_modules/strtok3": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.1.1.tgz", - "integrity": "sha512-mKX8HA/cdBqMKUr0MMZAFssCkIGoZeSCMXgnt79yKxNFguMLVFgRe6wB+fsL0NmoHDbeyZXczy7vEPSoo3rkzg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-9.1.1.tgz", + "integrity": "sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==", "dev": true, "dependencies": { "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.1.3" + "peek-readable": "^5.3.1" }, "engines": { "node": ">=16" @@ -17608,31 +17035,16 @@ } }, "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, "dependencies": { - "typical": "^2.6.1" + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" }, "engines": { - "node": ">=4" + "node": ">=12.17" } }, "node_modules/tar": { @@ -17653,19 +17065,14 @@ } }, "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, "node_modules/tar/node_modules/fs-minipass": { @@ -17722,12 +17129,6 @@ "node": ">=4" } }, - "node_modules/temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", - "dev": true - }, "node_modules/tempfile": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-5.0.0.tgz", @@ -17788,30 +17189,11 @@ "node": "*" } }, - "node_modules/test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/test-value/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "dependencies": { - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4" - } + "node_modules/text-decoder": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", + "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "dev": true }, "node_modules/text-extensions": { "version": "1.9.0", @@ -17920,9 +17302,9 @@ } }, "node_modules/token-types": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.0.0.tgz", + "integrity": "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==", "dev": true, "dependencies": { "@tokenizer/token": "^0.3.0", @@ -17959,30 +17341,6 @@ "node": ">=8" } }, - "node_modules/trim-repeated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", - "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ts-api-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", @@ -18501,9 +17859,9 @@ } }, "node_modules/type-fest": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.1.tgz", - "integrity": "sha512-Y1zUveI92UYM/vo1EFlQSsNf74+hfKH+7saZJslF0Fw92FRaiTAnHPIvo9d7SLxXt/gAYqA4RXyDTioMQCCp0A==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", + "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", "engines": { "node": ">=16" }, @@ -18542,82 +17900,24 @@ } }, "node_modules/typescript-eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.18.0.tgz", - "integrity": "sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz", + "integrity": "sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.18.0", - "@typescript-eslint/parser": "7.18.0", - "@typescript-eslint/utils": "7.18.0" + "@typescript-eslint/eslint-plugin": "8.17.0", + "@typescript-eslint/parser": "8.17.0", + "@typescript-eslint/utils": "8.17.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -18625,63 +17925,15 @@ } } }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/typescript-eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12.17" } }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", - "dev": true - }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -18702,9 +17954,10 @@ } }, "node_modules/uint8array-extras": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-0.5.1.tgz", - "integrity": "sha512-dlgj8+9+Rak3JzT1Rg77nIccp0a5kBKjQ7tworiwKxkXIhqgdd+oZLkK8rcDb+Fq5tq+oUVjPbq4V/dMD6cnlA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz", + "integrity": "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==", + "dev": true, "engines": { "node": ">=18" }, @@ -18712,6 +17965,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/underscore": { "version": "1.13.7", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", @@ -18853,6 +18116,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -18943,6 +18207,18 @@ "defaults": "^1.0.3" } }, + "node_modules/wcwidth/node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -19004,25 +18280,12 @@ "dev": true }, "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", - "dev": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12.17" } }, "node_modules/wrap-ansi": { @@ -19267,6 +18530,19 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/yerror": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/yerror/-/yerror-8.0.0.tgz", @@ -19319,22 +18595,22 @@ "@whook/http-transaction": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "debug": "^4.3.7", "fs-extra": "^11.2.0", "ignore": "^5.3.1", - "inquirer": "^11.1.0", + "inquirer": "^12.1.0", "internal-ip": "^8.0.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "miniquery": "^1.1.2", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "portfinder": "^1.0.32", "schema2dts": "^7.0.2", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yargs-parser": "^21.1.1", "yerror": "^8.0.0" }, @@ -19342,37 +18618,37 @@ "whook": "bin/whook.js" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@types/fs-extra": "^11.0.4", "@types/inquirer": "^9.0.7", "@types/streamtest": "^1.2.2", "@types/yargs-parser": "^21.0.3", - "esbuild-node-externals": "^1.14.0", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "jsdoc-to-markdown": "^8.0.0", + "jsarch": "^6.1.2", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" }, "peerDependencies": { - "esbuild": ">=0.23.0", - "esbuild-node-externals": ">=1.14.0" + "esbuild": ">=0.24.0", + "esbuild-node-externals": ">=1.15.0" } }, "packages/whook-authorization": { @@ -19381,30 +18657,30 @@ "license": "MIT", "dependencies": { "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19415,7 +18691,7 @@ "version": "17.1.1", "license": "MIT", "dependencies": { - "@types/aws-lambda": "^8.10.145", + "@types/aws-lambda": "^8.10.146", "@types/bytes": "^3.1.4", "@whook/cors": "^17.0.2", "@whook/http-router": "^17.0.2", @@ -19423,44 +18699,56 @@ "@whook/whook": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "bytes": "^3.1.2", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "cpr": "3.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", - "uuid": "^10.0.0", + "type-fest": "^4.30.0", + "uuid": "^11.0.3", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" } }, + "packages/whook-aws-lambda/node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "packages/whook-cors": { "name": "@whook/cors", "version": "17.0.2", @@ -19469,28 +18757,28 @@ "@apidevtools/swagger-parser": "^10.1.0", "@whook/http-router": "^17.0.2", "@whook/whook": "^17.0.2", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19502,12 +18790,12 @@ "license": "MIT", "dependencies": { "@whook/example": "^17.0.2", - "axios": "^1.7.7", - "common-services": "^16.0.4", + "axios": "^1.7.9", + "common-services": "^17.0.0", "debug": "^4.3.7", "fs-extra": "^11.2.0", - "inquirer": "^11.1.0", - "knifecycle": "^17.3.0", + "inquirer": "^12.1.0", + "knifecycle": "^18.0.0", "ora": "^8.1.0", "yerror": "^8.0.0" }, @@ -19515,22 +18803,23 @@ "create": "bin/create.js" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "@types/node": "22.10.1", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19550,29 +18839,31 @@ } }, "packages/whook-create/node_modules/inquirer": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-11.1.0.tgz", - "integrity": "sha512-CmLAZT65GG/v30c+D2Fk8+ceP6pxD6RL+hIUOWAltCmeyEqWYwqu9v76q03OvjyZ3AB0C1Ala2stn1z/rMqGEw==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.1.0.tgz", + "integrity": "sha512-3/iexk64jn3EF0tjWYfOJi/DNWtcSSwg4ER67cnopO2xlCTUQjFCTMH9NBNQAMO/+dC3sEvKJtGJsqXnCkSsFg==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/prompts": "^6.0.1", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", + "@inquirer/core": "^10.1.0", + "@inquirer/prompts": "^7.1.0", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "run-async": "^3.0.0", "rxjs": "^7.8.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "packages/whook-create/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "packages/whook-create/node_modules/run-async": { @@ -19596,41 +18887,41 @@ "@whook/http-transaction": "^17.0.2", "@whook/swagger-ui": "^17.0.2", "@whook/whook": "^17.0.2", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", + "jsarch": "^6.1.2", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19646,35 +18937,35 @@ "@whook/whook": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "cpr": "3.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "strict-qs": "^8.0.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19687,30 +18978,30 @@ "dependencies": { "@whook/whook": "^17.0.2", "apollo-server-module-graphiql": "^1.4.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@whook/http-router": "^17.0.2", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19724,34 +19015,34 @@ "@apollo/server": "^4.11.2", "@whook/http-transaction": "^17.0.2", "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@whook/authorization": "^17.0.2", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "graphql": "^16.9.0", "graphql-tag": "^2.12.6", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19765,81 +19056,89 @@ "@apidevtools/swagger-parser": "^10.1.0", "@types/content-type": "^1.1.8", "@types/negotiator": "^0.6.3", - "@types/qs": "^6.9.16", + "@types/qs": "^6.9.17", "@whook/http-transaction": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "bytes": "^3.1.2", "camelcase": "^8.0.0", "content-type": "^1.0.5", "first-chunk-stream": "^6.0.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "miniquery": "^1.1.2", "ms": "^2.1.3", - "negotiator": "^0.6.3", + "negotiator": "^1.0.0", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "siso": "^6.0.2", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" } }, + "packages/whook-http-router/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "engines": { + "node": ">= 0.6" + } + }, "packages/whook-http-server": { "name": "@whook/http-server", "version": "17.0.2", "license": "MIT", "dependencies": { "@whook/http-router": "^17.0.2", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "ms": "^2.1.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19850,36 +19149,36 @@ "version": "17.0.2", "license": "MIT", "dependencies": { - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "ms": "^2.1.3", "openapi-types": "^12.1.3", "statuses": "^2.0.1", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@types/streamtest": "^1.2.0", - "eslint": "^9.7.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "jsdoc-to-markdown": "^8.0.0", + "jsarch": "^6.1.2", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19892,28 +19191,28 @@ "dependencies": { "@whook/http-transaction": "^17.0.2", "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19927,33 +19226,33 @@ "@whook/authorization": "^17.0.2", "@whook/whook": "^17.0.2", "camelcase": "^8.0.0", - "common-services": "^16.0.4", - "cookie": "^1.0.1", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "cookie": "^1.0.2", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "http-auth-utils": "^6.0.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -19968,31 +19267,31 @@ "@types/swagger-ui": "3.52.4", "@whook/http-router": "^17.0.2", "@whook/whook": "^17.0.2", - "axios": "^1.7.7", + "axios": "^1.7.9", "ecstatic": "^4.1.4", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "swagger-ui-dist": "^5.17.14", - "type-fest": "^4.26.1" + "swagger-ui-dist": "^5.18.2", + "type-fest": "^4.30.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -20004,30 +19303,30 @@ "license": "MIT", "dependencies": { "@whook/whook": "^17.0.2", - "application-services": "^6.1.0", - "knifecycle": "^17.3.0", + "application-services": "^7.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "semver": "^7.6.3", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "engines": { "node": ">=20.11.1" @@ -20047,29 +19346,31 @@ } }, "packages/whook/node_modules/inquirer": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-11.1.0.tgz", - "integrity": "sha512-CmLAZT65GG/v30c+D2Fk8+ceP6pxD6RL+hIUOWAltCmeyEqWYwqu9v76q03OvjyZ3AB0C1Ala2stn1z/rMqGEw==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.1.0.tgz", + "integrity": "sha512-3/iexk64jn3EF0tjWYfOJi/DNWtcSSwg4ER67cnopO2xlCTUQjFCTMH9NBNQAMO/+dC3sEvKJtGJsqXnCkSsFg==", "dependencies": { - "@inquirer/core": "^9.2.1", - "@inquirer/prompts": "^6.0.1", - "@inquirer/type": "^2.0.0", - "@types/mute-stream": "^0.0.4", + "@inquirer/core": "^10.1.0", + "@inquirer/prompts": "^7.1.0", + "@inquirer/type": "^3.0.1", "ansi-escapes": "^4.3.2", - "mute-stream": "^1.0.0", + "mute-stream": "^2.0.0", "run-async": "^3.0.0", "rxjs": "^7.8.1" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" } }, "packages/whook/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "packages/whook/node_modules/run-async": { diff --git a/package.json b/package.json index 3c66b15c..708ef88b 100644 --- a/package.json +++ b/package.json @@ -58,12 +58,12 @@ }, "homepage": "https://github.com/nfroidure/whook", "devDependencies": { - "commitizen": "^4.3.0", + "commitizen": "^4.3.1", "conventional-changelog-cli": "^5.0.0", "cz-conventional-changelog": "^3.3.0", "lerna": "^8.1.6", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0" + "metapak-nfroidure": "19.0.1" }, "contributors": [ { diff --git a/packages/whook-authorization/eslint.config.js b/packages/whook-authorization/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-authorization/eslint.config.js +++ b/packages/whook-authorization/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-authorization/package.json b/packages/whook-authorization/package.json index 72d74c09..43ab65f3 100644 --- a/packages/whook-authorization/package.json +++ b/packages/whook-authorization/package.json @@ -54,30 +54,30 @@ "homepage": "https://github.com/nfroidure/whook", "dependencies": { "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -139,6 +139,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-aws-lambda/eslint.config.js b/packages/whook-aws-lambda/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-aws-lambda/eslint.config.js +++ b/packages/whook-aws-lambda/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-aws-lambda/package.json b/packages/whook-aws-lambda/package.json index 2bfc7d68..dde90cc4 100644 --- a/packages/whook-aws-lambda/package.json +++ b/packages/whook-aws-lambda/package.json @@ -43,7 +43,7 @@ }, "homepage": "https://github.com/nfroidure/whook", "dependencies": { - "@types/aws-lambda": "^8.10.145", + "@types/aws-lambda": "^8.10.146", "@types/bytes": "^3.1.4", "@whook/cors": "^17.0.2", "@whook/http-router": "^17.0.2", @@ -51,39 +51,39 @@ "@whook/whook": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "bytes": "^3.1.2", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "cpr": "3.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", - "uuid": "^10.0.0", + "type-fest": "^4.30.0", + "uuid": "^11.0.3", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -145,6 +145,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-aws-lambda/src/index.ts b/packages/whook-aws-lambda/src/index.ts index 572edb0d..6399d2db 100644 --- a/packages/whook-aws-lambda/src/index.ts +++ b/packages/whook-aws-lambda/src/index.ts @@ -449,7 +449,11 @@ async function ensureFile( return; } } catch (err) { - log('debug', `🗀 - Write new file: "${path}".`); + log( + 'debug', + `🗀 - Write new file: "${path}".`, + printStackTrace(err as YError), + ); return await writeFile(path, content); } log('debug', `🗀 - Write changed file: "${path}".`); diff --git a/packages/whook-aws-lambda/src/services/HANDLER.ts b/packages/whook-aws-lambda/src/services/HANDLER.ts index bce4e53a..11c91108 100644 --- a/packages/whook-aws-lambda/src/services/HANDLER.ts +++ b/packages/whook-aws-lambda/src/services/HANDLER.ts @@ -1,8 +1,7 @@ -import { autoService, name } from 'knifecycle'; -import { noop, applyWrappers } from '@whook/whook'; -import type { WhookWrapper } from '@whook/whook'; -import type { WhookHandler } from '@whook/http-transaction'; -import type { LogService } from 'common-services'; +import { autoService, name, location } from 'knifecycle'; +import { noop, applyWrappers, type WhookWrapper } from '@whook/whook'; +import { type WhookHandler } from '@whook/http-transaction'; +import { type LogService } from 'common-services'; export type WhookHandlerDependencies<T extends WhookHandler> = { WRAPPERS: WhookWrapper<T>[]; @@ -13,7 +12,10 @@ export type WhookHandlerDependencies<T extends WhookHandler> = { export const DEFAULT_WRAPPERS = []; -export default name('HANDLER', autoService(initHandler)); +export default location( + name('HANDLER', autoService(initHandler)), + import.meta.url, +); /** * Initialize one Whook handler diff --git a/packages/whook-aws-lambda/src/services/_autoload.ts b/packages/whook-aws-lambda/src/services/_autoload.ts index 8eda8fd4..da3553fa 100644 --- a/packages/whook-aws-lambda/src/services/_autoload.ts +++ b/packages/whook-aws-lambda/src/services/_autoload.ts @@ -7,6 +7,7 @@ import { wrapInitializer, constant, alsoInject, + location, } from 'knifecycle'; import { printStackTrace, YError } from 'yerror'; import { @@ -94,10 +95,7 @@ const initializerWrapper: ServiceInitializerWrapper< }: WhookAWSLambdaAutoloadDependencies, $autoload: Autoloader<Initializer<Dependencies, Service>>, ): Promise< - (serviceName: string) => Promise<{ - initializer: Initializer<Dependencies, Service>; - path: string; - }> + (serviceName: string) => Promise<Initializer<Dependencies, Service>> > => { let API: OpenAPIV3_1.Document; let OPERATION_APIS: WhookRawOperation<WhookAPIOperationAWSLambdaConfig>[]; @@ -108,10 +106,9 @@ const initializerWrapper: ServiceInitializerWrapper< > = (() => { return async (serviceName) => { const cleanedName = serviceName.split('_').pop(); - // eslint-disable-next-line + API = API || (await $injector(['API'])).API; - // eslint-disable-next-line OPERATION_APIS = OPERATION_APIS || getOpenAPIOperations<WhookAPIOperationAWSLambdaConfig>(API); @@ -130,7 +127,6 @@ const initializerWrapper: ServiceInitializerWrapper< throw new YError('E_OPERATION_NOT_FOUND', serviceName, cleanedName); } - // eslint-disable-next-line const OPERATION_API: OpenAPIV3_1.Document = cleanupOpenAPI({ ...API, paths: { @@ -176,10 +172,7 @@ const initializerWrapper: ServiceInitializerWrapper< ', ', )}) can give unpredictable results!`, ); - return { - initializer: constant(serviceName, undefined), - path: `constant://${serviceName}`, - }; + return constant(serviceName, undefined); } try { @@ -200,26 +193,20 @@ const initializerWrapper: ServiceInitializerWrapper< 'debug', `🤖 - Reusing a constant initializer directly from the Knifecycle instance: "${serviceName}".`, ); - return { - initializer, - path: `instance://${serviceName}`, - }; + return initializer; } if (serviceName.startsWith('OPERATION_API_')) { const [, , OPERATION_API] = await getAPIOperation(serviceName); - return { - initializer: constant(serviceName, OPERATION_API), - path: `api://${serviceName}`, - }; + return constant(serviceName, OPERATION_API); } if (serviceName.startsWith('OPERATION_WRAPPER_')) { const [type] = await getAPIOperation(serviceName); - return { - initializer: alsoInject( + return location( + alsoInject( [ `OPERATION_API>${serviceName.replace( 'OPERATION_WRAPPER_', @@ -228,17 +215,15 @@ const initializerWrapper: ServiceInitializerWrapper< ], AWS_WRAPPERS[type].initializer as any, ) as any, - path: `@whook/aws-lambda/dist/wrappers/${AWS_WRAPPERS[type].name}.js`, - }; + `@whook/aws-lambda/dist/wrappers/${AWS_WRAPPERS[type].name}.js`, + ); } if (serviceName.startsWith('OPERATION_HANDLER_')) { const [type, operationId] = await getAPIOperation(serviceName); - return { - name: serviceName, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - initializer: alsoInject( + return location( + alsoInject( [ `mainWrapper>OPERATION_WRAPPER_${serviceName.replace( 'OPERATION_HANDLER_', @@ -253,15 +238,12 @@ const initializerWrapper: ServiceInitializerWrapper< ], initHandler, ) as any, - path: '@whook/aws-lambda/dist/services/HANDLER.js', - }; + '@whook/aws-lambda/dist/services/HANDLER.js', + ); } if (BUILD_CONSTANTS[serviceName]) { - return { - initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]), - path: `constant://${serviceName}`, - }; + return constant(serviceName, BUILD_CONSTANTS[serviceName]); } return $autoload(serviceName); diff --git a/packages/whook-aws-lambda/src/services/log.ts b/packages/whook-aws-lambda/src/services/log.ts index 6c2153c6..2c4ab45d 100644 --- a/packages/whook-aws-lambda/src/services/log.ts +++ b/packages/whook-aws-lambda/src/services/log.ts @@ -1,4 +1,7 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { log } from 'node:console'; -export default service(async () => log, 'log'); +export default location( + service(async () => log, 'log'), + import.meta.url, +); diff --git a/packages/whook-aws-lambda/src/wrappers/awsHTTPLambda.ts b/packages/whook-aws-lambda/src/wrappers/awsHTTPLambda.ts index 0f0dfad6..ec1918c3 100644 --- a/packages/whook-aws-lambda/src/wrappers/awsHTTPLambda.ts +++ b/packages/whook-aws-lambda/src/wrappers/awsHTTPLambda.ts @@ -260,7 +260,8 @@ async function handleForAWSHTTPLambda( event: APIGatewayProxyEvent, ) { const startTime = time(); - const bufferLimit = bytes.parse(BUFFER_LIMIT); + const bufferLimit = + bytes.parse(BUFFER_LIMIT) || (bytes.parse(DEFAULT_BUFFER_LIMIT) as number); const operationParameters = (operation.parameters || []).concat( ammendedParameters, ); diff --git a/packages/whook-cors/eslint.config.js b/packages/whook-cors/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-cors/eslint.config.js +++ b/packages/whook-cors/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-cors/package.json b/packages/whook-cors/package.json index 95e85fd9..e6c2af6f 100644 --- a/packages/whook-cors/package.json +++ b/packages/whook-cors/package.json @@ -55,28 +55,28 @@ "@apidevtools/swagger-parser": "^10.1.0", "@whook/http-router": "^17.0.2", "@whook/whook": "^17.0.2", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -138,6 +138,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-cors/src/handlers/optionsWithCORS.ts b/packages/whook-cors/src/handlers/optionsWithCORS.ts index dec74b72..e2f3ea80 100644 --- a/packages/whook-cors/src/handlers/optionsWithCORS.ts +++ b/packages/whook-cors/src/handlers/optionsWithCORS.ts @@ -1,11 +1,14 @@ -import { handler } from 'knifecycle'; +import { handler, location } from 'knifecycle'; /** * A simple Whook handler that just returns a 200 OK * HTTP response * @returns {Promise<Object>} The HTTP response object */ -export default handler(optionsWithCORS, 'optionsWithCORS', []); +export default location( + handler(optionsWithCORS, 'optionsWithCORS', []), + import.meta.url, +); async function optionsWithCORS() { return { diff --git a/packages/whook-cors/src/services/errorHandler.ts b/packages/whook-cors/src/services/errorHandler.ts index fa4a190e..e623ed61 100644 --- a/packages/whook-cors/src/services/errorHandler.ts +++ b/packages/whook-cors/src/services/errorHandler.ts @@ -1,5 +1,10 @@ import { initErrorHandler } from '@whook/http-router'; -import { wrapInitializer, alsoInject, ServiceInitializer } from 'knifecycle'; +import { + wrapInitializer, + alsoInject, + location, + type ServiceInitializer, +} from 'knifecycle'; import { noop } from '@whook/whook'; import { YHTTPError } from 'yhttperror'; import { printStackTrace } from 'yerror'; @@ -14,19 +19,22 @@ import type { WhookCORSConfig } from '../wrappers/wrapHandlerWithCORS.js'; type ErrorHandlerWrapperDependencies = WhookCORSConfig & { log?: LogService }; -export default alsoInject< - ErrorHandlerWrapperDependencies, - WhookErrorHandlerDependencies, - WhookErrorHandler ->( - ['?log', 'CORS'], - wrapInitializer( - wrapErrorHandlerForCORS as ServiceInitializer< - WhookErrorHandlerDependencies, - WhookErrorHandler - >, - initErrorHandler, +export default location( + alsoInject< + ErrorHandlerWrapperDependencies, + WhookErrorHandlerDependencies, + WhookErrorHandler + >( + ['?log', 'CORS'], + wrapInitializer( + wrapErrorHandlerForCORS as ServiceInitializer< + WhookErrorHandlerDependencies, + WhookErrorHandler + >, + initErrorHandler, + ), ), + import.meta.url, ); /** diff --git a/packages/whook-create/eslint.config.js b/packages/whook-create/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-create/eslint.config.js +++ b/packages/whook-create/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-create/package.json b/packages/whook-create/package.json index 80b86e68..bdf2c07b 100644 --- a/packages/whook-create/package.json +++ b/packages/whook-create/package.json @@ -69,32 +69,33 @@ "homepage": "https://github.com/nfroidure/whook", "dependencies": { "@whook/example": "^17.0.2", - "axios": "^1.7.7", - "common-services": "^16.0.4", + "axios": "^1.7.9", + "common-services": "^17.0.0", "debug": "^4.3.7", "fs-extra": "^11.2.0", - "inquirer": "^11.1.0", - "knifecycle": "^17.3.0", + "inquirer": "^12.1.0", + "knifecycle": "^18.0.0", "ora": "^8.1.0", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "@types/node": "22.10.1", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -142,6 +143,6 @@ "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap b/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap index b08bd9e1..b5b0d547 100644 --- a/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap +++ b/packages/whook-create/src/services/__snapshots__/createWhook.test.ts.snap @@ -137,39 +137,39 @@ DEV_MODE=1 "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "prettier": { "semi": true, @@ -206,7 +206,7 @@ DEV_MODE=1 "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } }", ], @@ -447,39 +447,39 @@ DEV_MODE=1 "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "prettier": { "semi": true, @@ -516,7 +516,7 @@ DEV_MODE=1 "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } }", ], @@ -795,39 +795,39 @@ DEV_MODE=1 "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "prettier": { "semi": true, @@ -864,7 +864,7 @@ DEV_MODE=1 "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } }", ], @@ -1126,39 +1126,39 @@ DEV_MODE=1 "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "prettier": { "semi": true, @@ -1195,7 +1195,7 @@ DEV_MODE=1 "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } }", ], diff --git a/packages/whook-create/src/services/createWhook.test.ts b/packages/whook-create/src/services/createWhook.test.ts index cfaba9d3..2b32220e 100644 --- a/packages/whook-create/src/services/createWhook.test.ts +++ b/packages/whook-create/src/services/createWhook.test.ts @@ -146,12 +146,12 @@ describe('initCreateWhook', () => { await createWhook(); expect( - JSON.parse( - outputFile.mock.calls - .find((call) => call[0].toString().endsWith('package.json'))?.[1] - ?.toString() || '', - ), - ).toMatchInlineSnapshot(` + JSON.parse( + outputFile.mock.calls. + find((call) => call[0].toString().endsWith('package.json'))?.[1]?. + toString() || '' + ) +).toMatchInlineSnapshot(` { "author": { "email": "wayne@warner.com", @@ -166,40 +166,40 @@ describe('initCreateWhook', () => { "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0", }, "description": "A new Whook project", "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0", }, "engines": { "node": ">=20.11.1", @@ -246,7 +246,7 @@ describe('initCreateWhook', () => { "main": "dist/index.js", "name": "super-project", "overrides": { - "eslint": "^9.7.0", + "eslint": "^9.16.0", }, "prettier": { "printWidth": 80, @@ -344,12 +344,12 @@ describe('initCreateWhook', () => { await createWhook(); expect( - JSON.parse( - outputFile.mock.calls - .find((call) => call[0].toString().endsWith('package.json'))?.[1] - ?.toString() || '', - ), - ).toMatchInlineSnapshot(` + JSON.parse( + outputFile.mock.calls. + find((call) => call[0].toString().endsWith('package.json'))?.[1]?. + toString() || '' + ) +).toMatchInlineSnapshot(` { "author": { "email": "wayne@warner.com", @@ -364,40 +364,40 @@ describe('initCreateWhook', () => { "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0", }, "description": "A new Whook project", "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0", }, "engines": { "node": ">=20.11.1", @@ -444,7 +444,7 @@ describe('initCreateWhook', () => { "main": "dist/index.js", "name": "super-project", "overrides": { - "eslint": "^9.7.0", + "eslint": "^9.16.0", }, "prettier": { "printWidth": 80, @@ -527,12 +527,12 @@ describe('initCreateWhook', () => { await createWhook(); expect( - JSON.parse( - outputFile.mock.calls - .find((call) => call[0].toString().endsWith('package.json'))?.[1] - ?.toString() || '', - ), - ).toMatchInlineSnapshot(` + JSON.parse( + outputFile.mock.calls. + find((call) => call[0].toString().endsWith('package.json'))?.[1]?. + toString() || '' + ) +).toMatchInlineSnapshot(` { "author": { "email": "wayne@warner.com", @@ -547,40 +547,40 @@ describe('initCreateWhook', () => { "@whook/http-transaction": "<current_version>", "@whook/swagger-ui": "<current_version>", "@whook/whook": "<current_version>", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0", }, "description": "A new Whook project", "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "prettier": "^3.3.3", + "jsarch": "^6.1.2", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0", + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0", }, "engines": { "node": ">=20.11.1", @@ -627,7 +627,7 @@ describe('initCreateWhook', () => { "main": "dist/index.js", "name": "super-project", "overrides": { - "eslint": "^9.7.0", + "eslint": "^9.16.0", }, "prettier": { "printWidth": 80, diff --git a/packages/whook-example/eslint.config.js b/packages/whook-example/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-example/eslint.config.js +++ b/packages/whook-example/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-example/package.json b/packages/whook-example/package.json index b0ab0d99..018f30ac 100644 --- a/packages/whook-example/package.json +++ b/packages/whook-example/package.json @@ -89,41 +89,41 @@ "@whook/http-transaction": "^17.0.2", "@whook/swagger-ui": "^17.0.2", "@whook/whook": "^17.0.2", - "application-services": "^6.1.0", - "common-services": "^16.0.4", + "application-services": "^7.0.0", + "common-services": "^17.0.0", "http-auth-utils": "^6.0.1", - "jwt-service": "^10.1.1", - "knifecycle": "^17.3.0", + "jwt-service": "^11.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", "chokidar": "^3.5.3", - "esbuild-node-externals": "^1.13.1", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", + "jsarch": "^6.1.2", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "schema2dts": "^7.0.2", "tsx": "^4.7.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -179,6 +179,6 @@ } }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-example/src/services/API.ts b/packages/whook-example/src/services/API.ts index c65b3638..0f4fb916 100644 --- a/packages/whook-example/src/services/API.ts +++ b/packages/whook-example/src/services/API.ts @@ -1,4 +1,4 @@ -import { name, autoService } from 'knifecycle'; +import { name, autoService, location } from 'knifecycle'; import { augmentAPIWithCORS } from '@whook/cors'; import { noop } from '@whook/whook'; import type { WhookConfig, WhookAPIDefinitions } from '@whook/whook'; @@ -22,7 +22,7 @@ export type APIDependencies = APIConfig & { log?: LogService; }; -export default name('API', autoService(initAPI)); +export default location(name('API', autoService(initAPI)), import.meta.url); /* Architecture Note #3: API Whook is all about APIs. diff --git a/packages/whook-example/src/services/FILTER_API_DEFINITION.ts b/packages/whook-example/src/services/FILTER_API_DEFINITION.ts index 7a1ff68f..6328a011 100644 --- a/packages/whook-example/src/services/FILTER_API_DEFINITION.ts +++ b/packages/whook-example/src/services/FILTER_API_DEFINITION.ts @@ -1,4 +1,4 @@ -import { name, autoService } from 'knifecycle'; +import { name, autoService, location } from 'knifecycle'; import { noop, identity } from '@whook/whook'; import type { LogService } from 'common-services'; import type { @@ -6,9 +6,9 @@ import type { WhookAPIDefinitionFilter, } from '@whook/whook'; -export default name( - 'FILTER_API_DEFINITION', - autoService(initFilterAPIDefinition), +export default location( + name('FILTER_API_DEFINITION', autoService(initFilterAPIDefinition)), + import.meta.url, ); export type FilterAPIDefinitionEnvVars = { diff --git a/packages/whook-example/src/services/MECHANISMS.ts b/packages/whook-example/src/services/MECHANISMS.ts index 6e12c7f3..ac2375f5 100644 --- a/packages/whook-example/src/services/MECHANISMS.ts +++ b/packages/whook-example/src/services/MECHANISMS.ts @@ -1,5 +1,5 @@ import { YHTTPError } from 'yhttperror'; -import { name, autoService } from 'knifecycle'; +import { name, autoService, location } from 'knifecycle'; import { BEARER as BEARER_MECHANISM } from 'http-auth-utils'; export const FAKE_MECHANISM = { @@ -42,7 +42,10 @@ export const FAKE_MECHANISM = { A service aimed to provide implementations for the various supported auth mechanisms. */ -export default name('MECHANISMS', autoService(initMechanisms)); +export default location( + name('MECHANISMS', autoService(initMechanisms)), + import.meta.url, +); async function initMechanisms({ ENV, log }) { log('debug', '🔧 - Initializing auth mechanisms'); diff --git a/packages/whook-example/src/services/QUERY_PARSER.ts b/packages/whook-example/src/services/QUERY_PARSER.ts index c24b75b1..78a064fd 100644 --- a/packages/whook-example/src/services/QUERY_PARSER.ts +++ b/packages/whook-example/src/services/QUERY_PARSER.ts @@ -1,7 +1,10 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { qsStrict as strictQs } from 'strict-qs'; -export default service(initQueryParser, 'QUERY_PARSER'); +export default location( + service(initQueryParser, 'QUERY_PARSER'), + import.meta.url, +); /* Architecture Note #4.5: QUERY_PARSER diff --git a/packages/whook-example/src/services/authentication.ts b/packages/whook-example/src/services/authentication.ts index 9b8da303..9bd13360 100644 --- a/packages/whook-example/src/services/authentication.ts +++ b/packages/whook-example/src/services/authentication.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { YError } from 'yerror'; import type { JWTService } from 'jwt-service'; import type { @@ -6,7 +6,7 @@ import type { BaseAuthenticationData, } from '@whook/authorization'; -export default autoService(initAuthentication); +export default location(autoService(initAuthentication), import.meta.url); export type AuthenticationDependencies = { jwtToken: JWTService<AuthenticationData>; diff --git a/packages/whook-example/src/services/jwtToken.ts b/packages/whook-example/src/services/jwtToken.ts index 505c46b1..783632d9 100644 --- a/packages/whook-example/src/services/jwtToken.ts +++ b/packages/whook-example/src/services/jwtToken.ts @@ -1,13 +1,21 @@ import initJWT from 'jwt-service'; -import { name } from 'knifecycle'; -import type { ServiceInitializer, Dependencies, Service } from 'knifecycle'; +import { + name, + location, + type ServiceInitializer, + type Dependencies, + type Service, +} from 'knifecycle'; /* Architecture Note #4.3: jwtToken A JWT token issuer service. Here, we simply reuse an external project and rename it by the way. */ -export default name( - 'jwtToken', - initJWT as unknown as ServiceInitializer<Dependencies, Service>, +export default location( + name( + 'jwtToken', + initJWT as unknown as ServiceInitializer<Dependencies, Service>, + ), + import.meta.url, ) as unknown as typeof initJWT; diff --git a/packages/whook-gcp-functions/eslint.config.js b/packages/whook-gcp-functions/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-gcp-functions/eslint.config.js +++ b/packages/whook-gcp-functions/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-gcp-functions/package.json b/packages/whook-gcp-functions/package.json index fa48702d..43f0eda3 100644 --- a/packages/whook-gcp-functions/package.json +++ b/packages/whook-gcp-functions/package.json @@ -54,35 +54,35 @@ "@whook/whook": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "cpr": "3.0.1", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "strict-qs": "^8.0.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -144,6 +144,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-gcp-functions/src/index.ts b/packages/whook-gcp-functions/src/index.ts index 72944680..4ad2e92f 100644 --- a/packages/whook-gcp-functions/src/index.ts +++ b/packages/whook-gcp-functions/src/index.ts @@ -358,6 +358,7 @@ async function ensureFile( } } catch (err) { log('debug', `🗀 - Write new file: "${path}".`); + log('debug-stack', printStackTrace(err as Error)); return await writeFile(path, content); } log('debug', `🗀 - Write changed file: "${path}".`); diff --git a/packages/whook-gcp-functions/src/services/HANDLER.ts b/packages/whook-gcp-functions/src/services/HANDLER.ts index d57749a6..742fd764 100644 --- a/packages/whook-gcp-functions/src/services/HANDLER.ts +++ b/packages/whook-gcp-functions/src/services/HANDLER.ts @@ -1,8 +1,7 @@ -import { autoService, name } from 'knifecycle'; -import { noop, applyWrappers } from '@whook/whook'; -import type { WhookWrapper } from '@whook/whook'; -import type { WhookHandler } from '@whook/http-transaction'; -import type { LogService } from 'common-services'; +import { autoService, name, location } from 'knifecycle'; +import { noop, applyWrappers, type WhookWrapper } from '@whook/whook'; +import { type WhookHandler } from '@whook/http-transaction'; +import { type LogService } from 'common-services'; export type WhookHandlerDependencies<T extends WhookHandler> = { WRAPPERS: WhookWrapper<T>[]; @@ -11,7 +10,10 @@ export type WhookHandlerDependencies<T extends WhookHandler> = { log?: LogService; }; -export default name('HANDLER', autoService(initHandler)); +export default location( + name('HANDLER', autoService(initHandler)), + import.meta.url, +); /** * Initialize one Whook handler diff --git a/packages/whook-gcp-functions/src/services/_autoload.ts b/packages/whook-gcp-functions/src/services/_autoload.ts index 29c6bee3..49f3a2af 100644 --- a/packages/whook-gcp-functions/src/services/_autoload.ts +++ b/packages/whook-gcp-functions/src/services/_autoload.ts @@ -7,6 +7,7 @@ import { wrapInitializer, constant, alsoInject, + location, } from 'knifecycle'; import { printStackTrace, YError } from 'yerror'; import { @@ -61,10 +62,7 @@ const initializerWrapper: ServiceInitializerWrapper< }: WhookGoogleFunctionsAutoloadDependencies, $autoload: Autoloader<Initializer<Dependencies, Service>>, ): Promise< - (serviceName: string) => Promise<{ - initializer: Initializer<Dependencies, Service>; - path: string; - }> + (serviceName: string) => Promise<Initializer<Dependencies, Service>> > => { let API: OpenAPIV3_1.Document; let OPERATION_APIS: WhookRawOperation<WhookAPIOperationGCPFunctionConfig>[]; @@ -79,9 +77,8 @@ const initializerWrapper: ServiceInitializerWrapper< > = (() => { return async (serviceName) => { const cleanedName = serviceName.split('_').pop(); - // eslint-disable-next-line + API = API || (await $injector(['API'])).API; - // eslint-disable-next-line OPERATION_APIS = OPERATION_APIS || getOpenAPIOperations<WhookAPIOperationGCPFunctionConfig>(API); @@ -100,7 +97,6 @@ const initializerWrapper: ServiceInitializerWrapper< throw new YError('E_OPERATION_NOT_FOUND', serviceName); } - // eslint-disable-next-line const OPERATION_API: OpenAPIV3_1.Document = cleanupOpenAPI({ ...API, paths: { @@ -146,10 +142,7 @@ const initializerWrapper: ServiceInitializerWrapper< ', ', )}) can give unpredictable results!`, ); - return { - initializer: constant(serviceName, undefined), - path: `constant://${serviceName}`, - }; + return constant(serviceName, undefined); } try { @@ -170,26 +163,20 @@ const initializerWrapper: ServiceInitializerWrapper< 'debug', `🤖 - Reusing a constant initializer directly from the Knifecycle instance: "${serviceName}".`, ); - return { - initializer, - path: `instance://${serviceName}`, - }; + return initializer; } if (serviceName.startsWith('OPERATION_API_')) { const [, , OPERATION_API] = await getAPIOperation(serviceName); - return { - initializer: constant(serviceName, OPERATION_API), - path: `api://${serviceName}`, - }; + return constant(serviceName, OPERATION_API); } if (serviceName.startsWith('OPERATION_WRAPPER_')) { const [type] = await getAPIOperation(serviceName); - return { - initializer: alsoInject( + return location( + alsoInject( [ `OPERATION_API>${serviceName.replace( 'OPERATION_WRAPPER_', @@ -197,18 +184,16 @@ const initializerWrapper: ServiceInitializerWrapper< )}`, ], GCP_WRAPPERS[type].initializer as any, - ) as any, - path: `@whook/gcp-functions/dist/wrappers/${GCP_WRAPPERS[type].name}.js`, - }; + ), + `@whook/gcp-functions/dist/wrappers/${GCP_WRAPPERS[type].name}.js`, + ); } if (serviceName.startsWith('OPERATION_HANDLER_')) { const [, operationId] = await getAPIOperation(serviceName); - return { - name: serviceName, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - initializer: alsoInject( + return location( + alsoInject( [ `mainWrapper>OPERATION_WRAPPER_${serviceName.replace( 'OPERATION_HANDLER_', @@ -217,16 +202,13 @@ const initializerWrapper: ServiceInitializerWrapper< `baseHandler>${operationId}`, ], initHandler, - ) as any, - path: '@whook/gcp-functions/dist/services/HANDLER.js', - }; + ), + '@whook/gcp-functions/dist/services/HANDLER.js', + ); } if (BUILD_CONSTANTS[serviceName]) { - return { - initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]), - path: `constant://${serviceName}`, - }; + return constant(serviceName, BUILD_CONSTANTS[serviceName]); } return $autoload(serviceName); diff --git a/packages/whook-gcp-functions/src/services/log.ts b/packages/whook-gcp-functions/src/services/log.ts index 6c2153c6..2c4ab45d 100644 --- a/packages/whook-gcp-functions/src/services/log.ts +++ b/packages/whook-gcp-functions/src/services/log.ts @@ -1,4 +1,7 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { log } from 'node:console'; -export default service(async () => log, 'log'); +export default location( + service(async () => log, 'log'), + import.meta.url, +); diff --git a/packages/whook-gcp-functions/src/wrappers/wrapHandlerForGoogleHTTPFunction.ts b/packages/whook-gcp-functions/src/wrappers/wrapHandlerForGoogleHTTPFunction.ts index beb5f3df..d7881841 100644 --- a/packages/whook-gcp-functions/src/wrappers/wrapHandlerForGoogleHTTPFunction.ts +++ b/packages/whook-gcp-functions/src/wrappers/wrapHandlerForGoogleHTTPFunction.ts @@ -233,7 +233,8 @@ async function handleForAWSHTTPFunction( req, res, ) { - const bufferLimit = bytes.parse(BUFFER_LIMIT); + const bufferLimit = + bytes.parse(BUFFER_LIMIT) || (bytes.parse(DEFAULT_BUFFER_LIMIT) as number); log?.( 'info', diff --git a/packages/whook-graphiql/eslint.config.js b/packages/whook-graphiql/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-graphiql/eslint.config.js +++ b/packages/whook-graphiql/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-graphiql/package.json b/packages/whook-graphiql/package.json index 40d89e6e..2676f645 100644 --- a/packages/whook-graphiql/package.json +++ b/packages/whook-graphiql/package.json @@ -69,30 +69,30 @@ "dependencies": { "@whook/whook": "^17.0.2", "apollo-server-module-graphiql": "^1.4.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@whook/http-router": "^17.0.2", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -140,6 +140,6 @@ "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-graphql/eslint.config.js b/packages/whook-graphql/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-graphql/eslint.config.js +++ b/packages/whook-graphql/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-graphql/package.json b/packages/whook-graphql/package.json index 90bda5d6..3b7b5121 100644 --- a/packages/whook-graphql/package.json +++ b/packages/whook-graphql/package.json @@ -70,34 +70,34 @@ "@apollo/server": "^4.11.2", "@whook/http-transaction": "^17.0.2", "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@whook/authorization": "^17.0.2", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "graphql": "^16.9.0", "graphql-tag": "^2.12.6", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -145,6 +145,6 @@ "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-graphql/src/handlers/getGraphQL.ts b/packages/whook-graphql/src/handlers/getGraphQL.ts index d68fb4b5..e025352e 100644 --- a/packages/whook-graphql/src/handlers/getGraphQL.ts +++ b/packages/whook-graphql/src/handlers/getGraphQL.ts @@ -1,9 +1,9 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import initPostGraphQL, { definition as postGraphQLDefinition, } from './postGraphQL.js'; import { YHTTPError } from 'yhttperror'; -import type { WhookAPIHandlerDefinition, WhookOperation } from '@whook/whook'; +import { type WhookAPIHandlerDefinition, type WhookOperation } from '@whook/whook'; export const definition: WhookAPIHandlerDefinition = { path: postGraphQLDefinition.path, @@ -57,7 +57,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(getGraphQL); +export default location(autoHandler(getGraphQL), import.meta.url); async function getGraphQL<T extends Record<string, unknown>>( { postGraphQL }: { postGraphQL: Awaited<ReturnType<typeof initPostGraphQL>> }, diff --git a/packages/whook-graphql/src/handlers/postGraphQL.ts b/packages/whook-graphql/src/handlers/postGraphQL.ts index fbf1ab9a..b2fb059c 100644 --- a/packages/whook-graphql/src/handlers/postGraphQL.ts +++ b/packages/whook-graphql/src/handlers/postGraphQL.ts @@ -1,8 +1,8 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { YHTTPError } from 'yhttperror'; import { printStackTrace } from 'yerror'; import { noop } from '@whook/whook'; -import { HTTPGraphQLRequest, HeaderMap } from '@apollo/server'; +import { type HTTPGraphQLRequest, HeaderMap } from '@apollo/server'; import type { WhookAPIHandlerDefinition, WhookOperation, @@ -68,9 +68,10 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(postGraphQL) as unknown as < - T extends Record<string, unknown>, ->(services: { +export default location( + autoHandler(postGraphQL), + import.meta.url, +) as unknown as <T extends Record<string, unknown>>(services: { GRAPHQL_SERVER_CONTEXT_FUNCTION?: WhookGraphQLContext; graphQL: WhookGraphQLService; log: LogService; diff --git a/packages/whook-graphql/src/services/graphQL.ts b/packages/whook-graphql/src/services/graphQL.ts index 1b58b2a5..7133ec81 100644 --- a/packages/whook-graphql/src/services/graphQL.ts +++ b/packages/whook-graphql/src/services/graphQL.ts @@ -1,11 +1,9 @@ -import { autoProvider } from 'knifecycle'; +import { autoProvider, location, type Provider } from 'knifecycle'; import { noop, WhookOperation } from '@whook/whook'; -import { ApolloServer } from '@apollo/server'; +import { ApolloServer, type ApolloServerOptions } from '@apollo/server'; import { makeExecutableSchema } from '@graphql-tools/schema'; -import type { Provider } from 'knifecycle'; -import type { LogService } from 'common-services'; -import type { ApolloServerOptions } from '@apollo/server'; -import type { GraphQLSchema, DocumentNode } from 'graphql'; +import { type LogService } from 'common-services'; +import { type GraphQLSchema, type DocumentNode } from 'graphql'; type ElementOf<A> = A extends (infer T)[] ? T : never; type IResolvers = ElementOf< @@ -43,7 +41,7 @@ export type WhookGraphQLDependencies = WhookGraphQLConfig & { log: LogService; }; -export default autoProvider(initGraphQL); +export default location(autoProvider(initGraphQL), import.meta.url); /** * Initialize the GraphQL service diff --git a/packages/whook-http-router/eslint.config.js b/packages/whook-http-router/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-http-router/eslint.config.js +++ b/packages/whook-http-router/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-http-router/package.json b/packages/whook-http-router/package.json index f7c13c22..7e3ded8d 100644 --- a/packages/whook-http-router/package.json +++ b/packages/whook-http-router/package.json @@ -56,47 +56,47 @@ "@apidevtools/swagger-parser": "^10.1.0", "@types/content-type": "^1.1.8", "@types/negotiator": "^0.6.3", - "@types/qs": "^6.9.16", + "@types/qs": "^6.9.17", "@whook/http-transaction": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "bytes": "^3.1.2", "camelcase": "^8.0.0", "content-type": "^1.0.5", "first-chunk-stream": "^6.0.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "miniquery": "^1.1.2", "ms": "^2.1.3", - "negotiator": "^0.6.3", + "negotiator": "^1.0.0", "openapi-types": "^12.1.3", - "qs": "^6.13.0", + "qs": "^6.13.1", "siso": "^6.0.2", "strict-qs": "^8.0.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -158,6 +158,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-http-router/src/index.ts b/packages/whook-http-router/src/index.ts index 67207927..2c9417c6 100644 --- a/packages/whook-http-router/src/index.ts +++ b/packages/whook-http-router/src/index.ts @@ -1,6 +1,6 @@ import bytes from 'bytes'; import Stream from 'stream'; -import { initializer } from 'knifecycle'; +import { initializer, location } from 'knifecycle'; import { YHTTPError } from 'yhttperror'; import { printStackTrace, YError } from 'yerror'; import { Siso } from 'siso'; @@ -210,28 +210,31 @@ Here, the single source of truth is your API definition. No documentation, no route. */ -export default initializer( - { - name: 'httpRouter', - type: 'provider', - inject: [ - 'ENV', - '?DEBUG_NODE_ENVS', - '?BUFFER_LIMIT', - '?BASE_PATH', - 'HANDLERS', - 'API', - '?PARSERS', - '?STRINGIFYERS', - '?DECODERS', - '?ENCODERS', - '?QUERY_PARSER', - '?log', - 'httpTransaction', - 'errorHandler', - ], - }, - initHTTPRouter, +export default location( + initializer( + { + name: 'httpRouter', + type: 'provider', + inject: [ + 'ENV', + '?DEBUG_NODE_ENVS', + '?BUFFER_LIMIT', + '?BASE_PATH', + 'HANDLERS', + 'API', + '?PARSERS', + '?STRINGIFYERS', + '?DECODERS', + '?ENCODERS', + '?QUERY_PARSER', + '?log', + 'httpTransaction', + 'errorHandler', + ], + }, + initHTTPRouter, + ), + import.meta.url, ); /** @@ -289,7 +292,8 @@ async function initHTTPRouter<T extends WhookHandler>({ httpTransaction, errorHandler, }: WhookHTTPRouterDependencies<T>): Promise<WhookHTTPRouterProvider> { - const bufferLimit = bytes.parse(BUFFER_LIMIT); + const bufferLimit = + bytes.parse(BUFFER_LIMIT) || (bytes.parse(DEFAULT_BUFFER_LIMIT) as number); const consumableCharsets = Object.keys(DECODERS); const produceableCharsets = Object.keys(ENCODERS); const defaultResponseSpec = { diff --git a/packages/whook-http-router/src/services/errorHandler.ts b/packages/whook-http-router/src/services/errorHandler.ts index 9b2a5c97..4a885fc3 100644 --- a/packages/whook-http-router/src/services/errorHandler.ts +++ b/packages/whook-http-router/src/services/errorHandler.ts @@ -1,16 +1,16 @@ -import { initializer } from 'knifecycle'; +import { initializer, location } from 'knifecycle'; import { DEFAULT_DEBUG_NODE_ENVS, DEFAULT_STRINGIFYERS, } from '../libs/constants.js'; import miniquery from 'miniquery'; import { printStackTrace, YError } from 'yerror'; -import type { WhookStringifyers } from '../index.js'; -import type { WhookResponseSpec } from '../libs/utils.js'; -import type { WhookResponse } from '@whook/http-transaction'; -import type { YHTTPError } from 'yhttperror'; -import type { OpenAPIV3_1 } from 'openapi-types'; -import type { AppEnvVars } from 'application-services'; +import { type WhookStringifyers } from '../index.js'; +import { type WhookResponseSpec } from '../libs/utils.js'; +import { type WhookResponse } from '@whook/http-transaction'; +import { type YHTTPError } from 'yhttperror'; +import { type OpenAPIV3_1 } from 'openapi-types'; +import { type AppEnvVars } from 'application-services'; /* Architecture Note #2: Error handler @@ -360,19 +360,22 @@ export const WhookErrorSchema: OpenAPIV3_1.SchemaObject = { }, }; -export default initializer( - { - name: 'errorHandler', - type: 'service', - inject: [ - 'ENV', - '?DEBUG_NODE_ENVS', - '?STRINGIFYERS', - '?ERRORS_DESCRIPTORS', - '?DEFAULT_ERROR_CODE', - ], - }, - initErrorHandler, +export default location( + initializer( + { + name: 'errorHandler', + type: 'service', + inject: [ + 'ENV', + '?DEBUG_NODE_ENVS', + '?STRINGIFYERS', + '?ERRORS_DESCRIPTORS', + '?DEFAULT_ERROR_CODE', + ], + }, + initErrorHandler, + ), + import.meta.url, ); /** diff --git a/packages/whook-http-server/eslint.config.js b/packages/whook-http-server/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-http-server/eslint.config.js +++ b/packages/whook-http-server/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-http-server/package.json b/packages/whook-http-server/package.json index ace04ca9..c6e31172 100644 --- a/packages/whook-http-server/package.json +++ b/packages/whook-http-server/package.json @@ -54,29 +54,29 @@ "homepage": "https://github.com/nfroidure/whook", "dependencies": { "@whook/http-router": "^17.0.2", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "ms": "^2.1.3", "yerror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "axios": "^1.7.7", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "axios": "^1.7.9", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -138,6 +138,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-http-server/src/index.test.ts b/packages/whook-http-server/src/index.test.ts index 09713054..b2a7c4a8 100644 --- a/packages/whook-http-server/src/index.test.ts +++ b/packages/whook-http-server/src/index.test.ts @@ -25,7 +25,9 @@ describe('initHTTPServer', () => { httpRouter, }); - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } expect({ logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), @@ -43,7 +45,9 @@ describe('initHTTPServer', () => { httpRouter, }); - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } expect({ logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), @@ -70,7 +74,9 @@ describe('initHTTPServer', () => { await httpServer.fatalErrorPromise; throw new YError('E_UNEXPECTED_SUCCESS'); } catch (err) { - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } expect({ errorCode: (err as YError).code, @@ -111,7 +117,10 @@ describe('initHTTPServer', () => { httpServer.service.close.bind(httpServer.service), ) as unknown as typeof httpServer.service.close; - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } + throw new YError('E_UNEXPECTED_SUCCESS'); } catch (err) { expect({ @@ -144,7 +153,9 @@ describe('initHTTPServer', () => { client.write('GET / HTTP/1.1\r\n\r\n'); }); - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } expect({ logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), @@ -175,7 +186,9 @@ describe('initHTTPServer', () => { validateStatus: () => true, }); - httpServer.dispose && (await httpServer.dispose()); + if (httpServer.dispose) { + await httpServer.dispose(); + } expect({ status, diff --git a/packages/whook-http-server/src/index.ts b/packages/whook-http-server/src/index.ts index 3f4739c2..8f33f6ff 100644 --- a/packages/whook-http-server/src/index.ts +++ b/packages/whook-http-server/src/index.ts @@ -1,11 +1,11 @@ -import { name, autoProvider } from 'knifecycle'; +import { name, autoProvider, location } from 'knifecycle'; import http from 'node:http'; import ms from 'ms'; import { YError } from 'yerror'; -import type { Provider } from 'knifecycle'; -import type { LogService } from 'common-services'; -import type { WhookHTTPRouterService } from '@whook/http-router'; -import type { Socket } from 'net'; +import { type Provider } from 'knifecycle'; +import { type LogService } from 'common-services'; +import { type WhookHTTPRouterService } from '@whook/http-router'; +import { type Socket } from 'net'; export type WhookHTTPServerEnv = { DESTROY_SOCKETS?: string; @@ -50,7 +50,10 @@ const DEFAULT_HTTP_SERVER_OPTIONS: WhookHTTPServerOptions = { maxConnections: 0, }; -export default name('httpServer', autoProvider(initHTTPServer)); +export default location( + name('httpServer', autoProvider(initHTTPServer)), + import.meta.url, +); /** * Initialize an HTTP server diff --git a/packages/whook-http-transaction/eslint.config.js b/packages/whook-http-transaction/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-http-transaction/eslint.config.js +++ b/packages/whook-http-transaction/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-http-transaction/package.json b/packages/whook-http-transaction/package.json index 9a1e4ed4..67d02ae5 100644 --- a/packages/whook-http-transaction/package.json +++ b/packages/whook-http-transaction/package.json @@ -54,36 +54,36 @@ }, "homepage": "https://github.com/nfroidure/whook", "dependencies": { - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "ms": "^2.1.3", "openapi-types": "^12.1.3", "statuses": "^2.0.1", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@types/streamtest": "^1.2.0", - "eslint": "^9.7.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "jsdoc-to-markdown": "^8.0.0", + "jsarch": "^6.1.2", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -152,6 +152,6 @@ } }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-http-transaction/src/index.ts b/packages/whook-http-transaction/src/index.ts index 1274d32c..977269fe 100644 --- a/packages/whook-http-transaction/src/index.ts +++ b/packages/whook-http-transaction/src/index.ts @@ -1,4 +1,4 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { YHTTPError } from 'yhttperror'; import statuses from 'statuses'; import ms from 'ms'; @@ -101,7 +101,6 @@ export declare type WhookResponse< body: B; }); -// eslint-disable-next-line export type WhookHandlerFunction< D extends Dependencies, P extends Parameters, @@ -178,16 +177,19 @@ You can simply do this by wrapping this service. See [`@whook/method-override`](../whook-method-override/README.md) for a working example. */ -export default service(initHTTPTransaction, 'httpTransaction', [ - '?TIMEOUT', - '?TRANSACTIONS', - 'delay', - 'obfuscator', - '?log', - '?apm', - '?time', - '?uniqueId', -]); +export default location( + service(initHTTPTransaction, 'httpTransaction', [ + '?TIMEOUT', + '?TRANSACTIONS', + 'delay', + 'obfuscator', + '?log', + '?apm', + '?time', + '?uniqueId', + ]), + import.meta.url, +); /** * Instantiate the httpTransaction service diff --git a/packages/whook-http-transaction/src/services/apm.ts b/packages/whook-http-transaction/src/services/apm.ts index 996dbb85..52221ea7 100644 --- a/packages/whook-http-transaction/src/services/apm.ts +++ b/packages/whook-http-transaction/src/services/apm.ts @@ -1,6 +1,6 @@ -import { name, autoService } from 'knifecycle'; -import type { LogService } from 'common-services'; -import type { JsonValue } from 'type-fest'; +import { name, autoService, location } from 'knifecycle'; +import { type LogService } from 'common-services'; +import { type JsonValue } from 'type-fest'; export type WhookAPMDependencies = { log: LogService; @@ -10,7 +10,7 @@ export type WhookAPMService<T extends string = string> = ( data: JsonValue, ) => void; -export default name('apm', autoService(initAPM)); +export default location(name('apm', autoService(initAPM)), import.meta.url); const noop = () => undefined; diff --git a/packages/whook-http-transaction/src/services/obfuscator.ts b/packages/whook-http-transaction/src/services/obfuscator.ts index 066cae93..b808ef07 100644 --- a/packages/whook-http-transaction/src/services/obfuscator.ts +++ b/packages/whook-http-transaction/src/services/obfuscator.ts @@ -1,7 +1,7 @@ -import { autoService } from 'knifecycle'; -import type { LogService } from 'common-services'; -import type { JsonValue } from 'type-fest'; -import type { WhookHeaders } from '../index.js'; +import { autoService, location } from 'knifecycle'; +import { type LogService } from 'common-services'; +import { type JsonValue } from 'type-fest'; +import { type WhookHeaders } from '../index.js'; export type WhookSensibleValueDescriptor = { name: string; @@ -27,7 +27,7 @@ export type WhookObfuscatorService = { obfuscateSensibleHeaders: (headers: WhookHeaders) => WhookHeaders; }; -export default autoService(initObfuscator); +export default location(autoService(initObfuscator), import.meta.url); const noop = () => undefined; diff --git a/packages/whook-method-override/eslint.config.js b/packages/whook-method-override/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-method-override/eslint.config.js +++ b/packages/whook-method-override/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-method-override/package.json b/packages/whook-method-override/package.json index cb3f00a5..7927229e 100644 --- a/packages/whook-method-override/package.json +++ b/packages/whook-method-override/package.json @@ -54,28 +54,28 @@ "dependencies": { "@whook/http-transaction": "^17.0.2", "@whook/whook": "^17.0.2", - "common-services": "^16.0.4", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -137,6 +137,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-oauth2/eslint.config.js b/packages/whook-oauth2/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-oauth2/eslint.config.js +++ b/packages/whook-oauth2/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-oauth2/package.json b/packages/whook-oauth2/package.json index d6e57c47..cd0aed2f 100644 --- a/packages/whook-oauth2/package.json +++ b/packages/whook-oauth2/package.json @@ -46,33 +46,33 @@ "@whook/authorization": "^17.0.2", "@whook/whook": "^17.0.2", "camelcase": "^8.0.0", - "common-services": "^16.0.4", - "cookie": "^1.0.1", - "knifecycle": "^17.3.0", + "common-services": "^17.0.0", + "cookie": "^1.0.2", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yerror": "^8.0.0", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "http-auth-utils": "^6.0.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -134,6 +134,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-oauth2/src/handlers/getOAuth2Authorize.ts b/packages/whook-oauth2/src/handlers/getOAuth2Authorize.ts index 3e88310d..151ca7c0 100644 --- a/packages/whook-oauth2/src/handlers/getOAuth2Authorize.ts +++ b/packages/whook-oauth2/src/handlers/getOAuth2Authorize.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import camelCase from 'camelcase'; import { YError, printStackTrace } from 'yerror'; import { refersTo } from '@whook/whook'; @@ -104,7 +104,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(getOAuth2Authorize); +export default location(autoHandler(getOAuth2Authorize), import.meta.url); async function getOAuth2Authorize( { diff --git a/packages/whook-oauth2/src/handlers/postAuthLogin.ts b/packages/whook-oauth2/src/handlers/postAuthLogin.ts index 675dae4f..bd346c22 100644 --- a/packages/whook-oauth2/src/handlers/postAuthLogin.ts +++ b/packages/whook-oauth2/src/handlers/postAuthLogin.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { YHTTPError } from 'yhttperror'; import initPostOauth2Token from './postOAuth2Token.js'; import { AUTH_API_PREFIX } from '../services/authCookies.js'; @@ -58,7 +58,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(postAuthLogin); +export default location(autoHandler(postAuthLogin), import.meta.url); async function postAuthLogin< AUTHENTICATION_DATA extends BaseAuthenticationData = BaseAuthenticationData, diff --git a/packages/whook-oauth2/src/handlers/postAuthLogout.ts b/packages/whook-oauth2/src/handlers/postAuthLogout.ts index 4527bffe..6167788b 100644 --- a/packages/whook-oauth2/src/handlers/postAuthLogout.ts +++ b/packages/whook-oauth2/src/handlers/postAuthLogout.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { AUTH_API_PREFIX } from '../services/authCookies.js'; import type { WhookAPIHandlerDefinition } from '@whook/whook'; import type { AuthCookiesService } from '../services/authCookies.js'; @@ -22,7 +22,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(postAuthLogout); +export default location(autoHandler(postAuthLogout), import.meta.url); async function postAuthLogout({ authCookies, diff --git a/packages/whook-oauth2/src/handlers/postAuthRefresh.ts b/packages/whook-oauth2/src/handlers/postAuthRefresh.ts index 6d73f9fd..ed829ce4 100644 --- a/packages/whook-oauth2/src/handlers/postAuthRefresh.ts +++ b/packages/whook-oauth2/src/handlers/postAuthRefresh.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { YHTTPError } from 'yhttperror'; import { refersTo } from '@whook/whook'; import initPostOauth2Token from './postOAuth2Token.js'; @@ -73,7 +73,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(postAuthRefresh); +export default location(autoHandler(postAuthRefresh), import.meta.url); async function postAuthRefresh< AUTHENTICATION_DATA extends BaseAuthenticationData = BaseAuthenticationData, diff --git a/packages/whook-oauth2/src/handlers/postOAuth2Acknowledge.ts b/packages/whook-oauth2/src/handlers/postOAuth2Acknowledge.ts index 2cb87447..2d388b3e 100644 --- a/packages/whook-oauth2/src/handlers/postOAuth2Acknowledge.ts +++ b/packages/whook-oauth2/src/handlers/postOAuth2Acknowledge.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { printStackTrace, YError } from 'yerror'; import { setURLError } from './getOAuth2Authorize.js'; import type { @@ -121,7 +121,10 @@ type HandlerParameters<AUTHENTICATION_DATA> = { }; }; -export default autoHandler(postOAuth2Acknowledge) as unknown as < +export default location( + autoHandler(postOAuth2Acknowledge), + import.meta.url, +) as unknown as < AUTHENTICATION_DATA extends BaseAuthenticationData = BaseAuthenticationData, >( dependencies: HandlerDependencies<AUTHENTICATION_DATA>, diff --git a/packages/whook-oauth2/src/handlers/postOAuth2Token.ts b/packages/whook-oauth2/src/handlers/postOAuth2Token.ts index 5c68fab3..bf5294ee 100644 --- a/packages/whook-oauth2/src/handlers/postOAuth2Token.ts +++ b/packages/whook-oauth2/src/handlers/postOAuth2Token.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { camelCaseObjectProperties } from './getOAuth2Authorize.js'; import { noop } from '@whook/whook'; import { YError, printStackTrace } from 'yerror'; @@ -212,7 +212,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(postOAuth2Token); +export default location(autoHandler(postOAuth2Token), import.meta.url); async function postOAuth2Token< AUTHENTICATION_DATA extends BaseAuthenticationData = BaseAuthenticationData, diff --git a/packages/whook-oauth2/src/services/authCookies.ts b/packages/whook-oauth2/src/services/authCookies.ts index dc21cb9b..dc57f801 100644 --- a/packages/whook-oauth2/src/services/authCookies.ts +++ b/packages/whook-oauth2/src/services/authCookies.ts @@ -1,6 +1,6 @@ import ms from 'ms'; import cookie, { type SerializeOptions } from 'cookie'; -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { type BaseAuthenticationData } from '@whook/authorization'; import { type Jsonify } from 'type-fest'; @@ -32,7 +32,7 @@ export type AuthCookiesService = { parse: (content: string) => Partial<AuthCookiesData>; }; -export default autoService(initAuthCookies); +export default location(autoService(initAuthCookies), import.meta.url); async function initAuthCookies({ COOKIES, diff --git a/packages/whook-oauth2/src/services/oAuth2ClientCredentialsGranter.ts b/packages/whook-oauth2/src/services/oAuth2ClientCredentialsGranter.ts index fb83b6bc..e3518c6b 100644 --- a/packages/whook-oauth2/src/services/oAuth2ClientCredentialsGranter.ts +++ b/packages/whook-oauth2/src/services/oAuth2ClientCredentialsGranter.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { noop } from '@whook/whook'; import { YError } from 'yerror'; import type { LogService } from 'common-services'; @@ -30,7 +30,10 @@ export type OAuth2ClientCredentialsGranterService< AUTHENTICATION_DATA >; -export default autoService(initOAuth2ClientCredentialsGranter); +export default location( + autoService(initOAuth2ClientCredentialsGranter), + import.meta.url, +); // Client Credentials Grant // https://tools.ietf.org/html/rfc6749#section-4.4 diff --git a/packages/whook-oauth2/src/services/oAuth2CodeGranter.ts b/packages/whook-oauth2/src/services/oAuth2CodeGranter.ts index 9dd10e22..d19bb303 100644 --- a/packages/whook-oauth2/src/services/oAuth2CodeGranter.ts +++ b/packages/whook-oauth2/src/services/oAuth2CodeGranter.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { noop } from '@whook/whook'; import { YError } from 'yerror'; import type { LogService } from 'common-services'; @@ -30,7 +30,7 @@ export type OAuth2CodeGranterService< AUTHENTICATION_DATA >; -export default autoService(initOAuth2CodeGranter); +export default location(autoService(initOAuth2CodeGranter), import.meta.url); // Authorization Code Grant // https://tools.ietf.org/html/rfc6749#section-4.1 diff --git a/packages/whook-oauth2/src/services/oAuth2Granters.ts b/packages/whook-oauth2/src/services/oAuth2Granters.ts index 38bfeebc..72649e0e 100644 --- a/packages/whook-oauth2/src/services/oAuth2Granters.ts +++ b/packages/whook-oauth2/src/services/oAuth2Granters.ts @@ -1,4 +1,4 @@ -import { initializer } from 'knifecycle'; +import { initializer, location } from 'knifecycle'; import { DEFAULT_ERROR_URI, DEFAULT_HELP_URI } from '@whook/whook'; import type { WhookErrorsDescriptors } from '@whook/whook'; import type { BaseAuthenticationData } from '@whook/authorization'; @@ -287,17 +287,20 @@ export type OAuth2Config = { ERRORS_DESCRIPTORS: WhookErrorsDescriptors; }; -export default initializer( - { - name: 'oAuth2Granters', - type: 'service', - inject: [ - 'oAuth2ClientCredentialsGranter', - 'oAuth2CodeGranter', - 'oAuth2PasswordGranter', - 'oAuth2RefreshTokenGranter', - 'oAuth2TokenGranter', - ], - }, - async (services) => Object.keys(services).map((key) => services[key]), +export default location( + initializer( + { + name: 'oAuth2Granters', + type: 'service', + inject: [ + 'oAuth2ClientCredentialsGranter', + 'oAuth2CodeGranter', + 'oAuth2PasswordGranter', + 'oAuth2RefreshTokenGranter', + 'oAuth2TokenGranter', + ], + }, + async (services) => Object.keys(services).map((key) => services[key]), + ), + import.meta.url, ); diff --git a/packages/whook-oauth2/src/services/oAuth2PasswordGranter.ts b/packages/whook-oauth2/src/services/oAuth2PasswordGranter.ts index 4b0e7b1c..d5392598 100644 --- a/packages/whook-oauth2/src/services/oAuth2PasswordGranter.ts +++ b/packages/whook-oauth2/src/services/oAuth2PasswordGranter.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { noop } from '@whook/whook'; import { YError } from 'yerror'; import type { LogService } from 'common-services'; @@ -28,7 +28,10 @@ export type OAuth2PasswordGranterService< AUTHENTICATION_DATA >; -export default autoService(initOAuth2PasswordGranter); +export default location( + autoService(initOAuth2PasswordGranter), + import.meta.url, +); // Resource Owner Password Credentials Grant // https://tools.ietf.org/html/rfc6749#section-4.3 diff --git a/packages/whook-oauth2/src/services/oAuth2RefreshTokenGranter.ts b/packages/whook-oauth2/src/services/oAuth2RefreshTokenGranter.ts index 5c15c201..06df67a0 100644 --- a/packages/whook-oauth2/src/services/oAuth2RefreshTokenGranter.ts +++ b/packages/whook-oauth2/src/services/oAuth2RefreshTokenGranter.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { noop } from '@whook/whook'; import { YError } from 'yerror'; import type { LogService } from 'common-services'; @@ -27,7 +27,10 @@ export type OAuth2RefreshTokenGranterService< AUTHENTICATION_DATA >; -export default autoService(initOAuth2RefreshTokenGranter); +export default location( + autoService(initOAuth2RefreshTokenGranter), + import.meta.url, +); // Refresh Token Grant // https://tools.ietf.org/html/rfc6749#page-47 diff --git a/packages/whook-oauth2/src/services/oAuth2TokenGranter.ts b/packages/whook-oauth2/src/services/oAuth2TokenGranter.ts index 23c828d4..56519ac0 100644 --- a/packages/whook-oauth2/src/services/oAuth2TokenGranter.ts +++ b/packages/whook-oauth2/src/services/oAuth2TokenGranter.ts @@ -1,4 +1,4 @@ -import { autoService } from 'knifecycle'; +import { autoService, location } from 'knifecycle'; import { noop } from '@whook/whook'; import type { LogService, TimeService } from 'common-services'; import type { @@ -28,7 +28,7 @@ export type OAuth2TokenGranterService< AUTHENTICATION_DATA >; -export default autoService(initOAuth2TokenGranter); +export default location(autoService(initOAuth2TokenGranter), import.meta.url); // Implicit Grant // https://tools.ietf.org/html/rfc6749#section-4.2 diff --git a/packages/whook-swagger-ui/eslint.config.js b/packages/whook-swagger-ui/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-swagger-ui/eslint.config.js +++ b/packages/whook-swagger-ui/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-swagger-ui/package.json b/packages/whook-swagger-ui/package.json index 1385a125..a4ffd2ec 100644 --- a/packages/whook-swagger-ui/package.json +++ b/packages/whook-swagger-ui/package.json @@ -71,31 +71,31 @@ "@types/swagger-ui": "3.52.4", "@whook/http-router": "^17.0.2", "@whook/whook": "^17.0.2", - "axios": "^1.7.7", + "axios": "^1.7.9", "ecstatic": "^4.1.4", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", - "swagger-ui-dist": "^5.17.14", - "type-fest": "^4.26.1" + "swagger-ui-dist": "^5.18.2", + "type-fest": "^4.30.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -143,6 +143,6 @@ "prettierPath": null }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts b/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts index c0dfed8a..d3c994e6 100644 --- a/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts +++ b/packages/whook-swagger-ui/src/handlers/getOpenAPI.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { getOpenAPIOperations } from '@whook/http-router'; import SwaggerParser from '@apidevtools/swagger-parser'; import type { WhookAPIHandlerDefinition, WhookResponse } from '@whook/whook'; @@ -8,7 +8,7 @@ export type WhookAPIOperationSwaggerConfig = { private?: boolean; }; -export default autoHandler(getOpenAPI); +export default location(autoHandler(getOpenAPI), import.meta.url); export const definition: WhookAPIHandlerDefinition = { path: '/openAPI', diff --git a/packages/whook-versions/eslint.config.js b/packages/whook-versions/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook-versions/eslint.config.js +++ b/packages/whook-versions/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook-versions/package.json b/packages/whook-versions/package.json index aa28ebce..7f9a71fe 100644 --- a/packages/whook-versions/package.json +++ b/packages/whook-versions/package.json @@ -54,30 +54,30 @@ "homepage": "https://github.com/nfroidure/whook", "dependencies": { "@whook/whook": "^17.0.2", - "application-services": "^6.1.0", - "knifecycle": "^17.3.0", + "application-services": "^7.0.0", + "knifecycle": "^18.0.0", "openapi-types": "^12.1.3", "semver": "^7.6.3", "yhttperror": "^8.0.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", - "eslint": "^9.7.0", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsdoc-to-markdown": "^8.0.0", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "contributors": [], "engines": { @@ -139,6 +139,6 @@ "type-check": "tsc --pretty --noEmit" }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook/eslint.config.js b/packages/whook/eslint.config.js index 628979f2..1a2ee197 100644 --- a/packages/whook/eslint.config.js +++ b/packages/whook/eslint.config.js @@ -9,8 +9,14 @@ import eslintConfigPrettier from 'eslint-config-prettier'; import eslintPluginJest from 'eslint-plugin-jest'; export default tseslint.config( - eslint.configs.recommended, - ...tseslint.configs.recommended, + { + files: ['**/*.ts'], + ignores: ['**/*.d.ts'], + extends: [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + ], + }, { files: ['*.test.ts'], ...eslintPluginJest.configs['flat/recommended'], diff --git a/packages/whook/package.json b/packages/whook/package.json index e284409e..bc5def76 100644 --- a/packages/whook/package.json +++ b/packages/whook/package.json @@ -76,34 +76,34 @@ }, "homepage": "https://github.com/nfroidure/whook", "peerDependencies": { - "esbuild": ">=0.23.0", - "esbuild-node-externals": ">=1.14.0" + "esbuild": ">=0.24.0", + "esbuild-node-externals": ">=1.15.0" }, "devDependencies": { - "@eslint/js": "^9.7.0", - "@swc/cli": "^0.4.0", - "@swc/core": "^1.6.13", - "@swc/helpers": "^0.5.12", - "@swc/jest": "^0.2.36", + "@eslint/js": "^9.16.0", + "@swc/cli": "^0.5.2", + "@swc/core": "^1.10.0", + "@swc/helpers": "^0.5.15", + "@swc/jest": "^0.2.37", "@types/fs-extra": "^11.0.4", "@types/inquirer": "^9.0.7", "@types/streamtest": "^1.2.2", "@types/yargs-parser": "^21.0.3", - "esbuild-node-externals": "^1.14.0", - "eslint": "^9.7.0", + "esbuild-node-externals": "^1.15.0", + "eslint": "^9.16.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-jest": "^28.9.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", - "jsarch": "^6.0.3", - "jsdoc-to-markdown": "^8.0.0", + "jsarch": "^6.1.2", + "jsdoc-to-markdown": "^9.1.1", "metapak": "^6.0.1", - "metapak-nfroidure": "18.2.0", - "prettier": "^3.3.3", + "metapak-nfroidure": "19.0.1", + "prettier": "^3.4.2", "rimraf": "^6.0.1", "streamtest": "^2.0.0", - "typescript": "^5.5.3", - "typescript-eslint": "^7.16.0" + "typescript": "^5.7.2", + "typescript-eslint": "^8.17.0" }, "dependencies": { "@whook/http-router": "^17.0.2", @@ -111,22 +111,22 @@ "@whook/http-transaction": "^17.0.2", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", - "application-services": "^6.1.0", + "application-services": "^7.0.0", "camelcase": "^8.0.0", - "common-services": "^16.0.4", + "common-services": "^17.0.0", "debug": "^4.3.7", "fs-extra": "^11.2.0", "ignore": "^5.3.1", - "inquirer": "^11.1.0", + "inquirer": "^12.1.0", "internal-ip": "^8.0.0", - "knifecycle": "^17.3.0", + "knifecycle": "^18.0.0", "miniquery": "^1.1.2", "mkdirp": "^3.0.1", "openapi-types": "^12.1.3", "pkg-dir": "^8.0.0", "portfinder": "^1.0.32", "schema2dts": "^7.0.2", - "type-fest": "^4.26.1", + "type-fest": "^4.30.0", "yargs-parser": "^21.1.1", "yerror": "^8.0.0" }, @@ -183,6 +183,6 @@ } }, "overrides": { - "eslint": "^9.7.0" + "eslint": "^9.16.0" } -} +} \ No newline at end of file diff --git a/packages/whook/src/build.ts b/packages/whook/src/build.ts index c3cfd677..232e1065 100644 --- a/packages/whook/src/build.ts +++ b/packages/whook/src/build.ts @@ -123,7 +123,6 @@ export async function runBuild( : Promise.resolve(), ]); } catch (err) { - // eslint-disable-next-line stderr.write( `💀 - Cannot launch the build: ${printStackTrace(err as Error)}`, ); @@ -145,6 +144,7 @@ async function ensureFile( } } catch (err) { log('debug', `🗀 - Write new file: "${path}".`); + log('debug-stack', printStackTrace(err as Error)); return await writeFile(path, content); } log('debug', `🗀 - Write changed file: "${path}".`); diff --git a/packages/whook/src/commands/config.ts b/packages/whook/src/commands/config.ts index 16b79167..e03843d6 100644 --- a/packages/whook/src/commands/config.ts +++ b/packages/whook/src/commands/config.ts @@ -2,13 +2,12 @@ import { extra, autoService } from 'knifecycle'; import { readArgs } from '../libs/args.js'; import { YError } from 'yerror'; import miniquery from 'miniquery'; -import { noop } from '../libs/utils.js'; -import type { AppConfig } from 'application-services'; -import type { LogService } from 'common-services'; -import type { - WhookPromptArgs, - WhookCommandDefinition, - WhookCommandHandler, +import { type AppConfig } from 'application-services'; +import { noop, type LogService } from 'common-services'; +import { + type WhookPromptArgs, + type WhookCommandDefinition, + type WhookCommandHandler, } from '../services/promptArgs.js'; export const definition: WhookCommandDefinition = { diff --git a/packages/whook/src/commands/inspect.test.ts b/packages/whook/src/commands/inspect.test.ts index 6a0a35a2..81193fb5 100644 --- a/packages/whook/src/commands/inspect.test.ts +++ b/packages/whook/src/commands/inspect.test.ts @@ -360,7 +360,7 @@ describe('inspectCommand', () => { expect({ promptArgsCalls: promptArgs.mock.calls, injectorCalls: $injector.mock.calls, - logCalls: log.mock.calls.filter((args) => 'debug-stack' !== args[0]), + logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), }).toMatchInlineSnapshot(` { "injectorCalls": [ @@ -424,7 +424,7 @@ describe('inspectCommand', () => { expect({ promptArgsCalls: promptArgs.mock.calls, injectorCalls: $injector.mock.calls, - logCalls: log.mock.calls.filter((args) => 'debug-stack' !== args[0]), + logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), }).toMatchInlineSnapshot(` { "injectorCalls": [ diff --git a/packages/whook/src/commands/inspect.ts b/packages/whook/src/commands/inspect.ts index a49095be..9faba686 100644 --- a/packages/whook/src/commands/inspect.ts +++ b/packages/whook/src/commands/inspect.ts @@ -1,6 +1,6 @@ import { extra, autoService } from 'knifecycle'; import { readArgs } from '../libs/args.js'; -import { YError } from 'yerror'; +import { printStackTrace, YError } from 'yerror'; import miniquery from 'miniquery'; import { noop } from '../libs/utils.js'; import type { Injector, Service } from 'knifecycle'; @@ -69,6 +69,7 @@ async function initInspectCommand({ service = injectionResult[name]; } catch (err) { log('error', `No service found for "${name}".`); + log('error-stack', printStackTrace(err as Error)); log('error', `Try debugging with the "DEBUG=whook" env.`); if ('undefined' === typeof defaultValue) { throw new YError('E_NO_SERVICE_FOUND', name); diff --git a/packages/whook/src/handlers/getOpenAPI.ts b/packages/whook/src/handlers/getOpenAPI.ts index 032386f1..81457008 100644 --- a/packages/whook/src/handlers/getOpenAPI.ts +++ b/packages/whook/src/handlers/getOpenAPI.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import { getOpenAPIOperations } from '@whook/http-router'; import SwaggerParser from '@apidevtools/swagger-parser'; import type { @@ -8,7 +8,7 @@ import type { import type { WhookResponse } from '@whook/http-transaction'; import type { OpenAPIV3_1 } from 'openapi-types'; -export default autoHandler(getOpenAPI); +export default location(autoHandler(getOpenAPI), import.meta.url); /* Architecture Note #3: the handlers Handlers are services that provide a definition and implements diff --git a/packages/whook/src/handlers/getPing.ts b/packages/whook/src/handlers/getPing.ts index ab89fe00..fc5bfb05 100644 --- a/packages/whook/src/handlers/getPing.ts +++ b/packages/whook/src/handlers/getPing.ts @@ -1,4 +1,4 @@ -import { autoHandler } from 'knifecycle'; +import { autoHandler, location } from 'knifecycle'; import type { WhookAPIHandlerDefinition } from '../services/API_DEFINITIONS.js'; import type { WhookResponse } from '@whook/http-transaction'; import type { AppEnvVars } from 'application-services'; @@ -32,7 +32,7 @@ export const definition: WhookAPIHandlerDefinition = { }, }; -export default autoHandler(getPing); +export default location(autoHandler(getPing), import.meta.url); async function getPing({ ENV, diff --git a/packages/whook/src/libs/utils.ts b/packages/whook/src/libs/utils.ts index 21a4a6bf..8d089429 100644 --- a/packages/whook/src/libs/utils.ts +++ b/packages/whook/src/libs/utils.ts @@ -1,7 +1,4 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export function noop(..._args: unknown[]): void { - return undefined; -} +export { noop } from 'common-services'; export function identity<T>(id: T): T { return id; diff --git a/packages/whook/src/services/API_DEFINITIONS.ts b/packages/whook/src/services/API_DEFINITIONS.ts index 08149a26..1d69e20c 100644 --- a/packages/whook/src/services/API_DEFINITIONS.ts +++ b/packages/whook/src/services/API_DEFINITIONS.ts @@ -1,4 +1,4 @@ -import { autoService, name } from 'knifecycle'; +import { autoService, location, name } from 'knifecycle'; import { readdir as _readDir } from 'node:fs/promises'; import { extname, join as pathJoin } from 'node:path'; import { noop } from '../libs/utils.js'; @@ -78,7 +78,7 @@ export interface WhookBaseAPIHandlerDefinition< operation: WhookAPIOperation<T> & U; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface WhookAPIHandlerDefinition< T extends Record<string, unknown> = Record<string, unknown>, U extends { @@ -148,7 +148,10 @@ export interface WhookAPIHandlerModule { export const DEFAULT_API_DEFINITION_FILTER = () => false; -export default name('API_DEFINITIONS', autoService(initAPIDefinitions)); +export default location( + name('API_DEFINITIONS', autoService(initAPIDefinitions)), + import.meta.url, +); /** * Initialize the API_DEFINITIONS service according to the porject handlers. diff --git a/packages/whook/src/services/BASE_URL.ts b/packages/whook/src/services/BASE_URL.ts index 6516bbb4..3e6aa2ce 100644 --- a/packages/whook/src/services/BASE_URL.ts +++ b/packages/whook/src/services/BASE_URL.ts @@ -1,6 +1,6 @@ -import { autoService, name } from 'knifecycle'; +import { autoService, location, name } from 'knifecycle'; import { noop } from '../libs/utils.js'; -import type { LogService } from 'common-services'; +import { type LogService } from 'common-services'; /* Architecture Note #2.1: Base URL The `BASE_URL` service is intended to provide a base URL where @@ -32,7 +32,10 @@ export type WhookBaseURLDependencies = WhookBaseURLConfig & { log?: LogService; }; -export default name('BASE_URL', autoService(initBaseURL)); +export default location( + name('BASE_URL', autoService(initBaseURL)), + import.meta.url, +); /** * Initialize the BASE_URL service according to the HOST/PORT diff --git a/packages/whook/src/services/BUILD_CONSTANTS.ts b/packages/whook/src/services/BUILD_CONSTANTS.ts index e0e738ec..7c9cd8a4 100644 --- a/packages/whook/src/services/BUILD_CONSTANTS.ts +++ b/packages/whook/src/services/BUILD_CONSTANTS.ts @@ -1,7 +1,10 @@ -import { service } from 'knifecycle'; -import type { JsonValue } from 'type-fest'; +import { service, location } from 'knifecycle'; +import { type JsonValue } from 'type-fest'; -export default service(initBuildConstants, 'BUILD_CONSTANTS', [], true); +export default location( + service(initBuildConstants, 'BUILD_CONSTANTS', [], true), + import.meta.url, +); export type WhookBuildConstantsService = Record<string, JsonValue>; diff --git a/packages/whook/src/services/HANDLERS.ts b/packages/whook/src/services/HANDLERS.ts index 41fd8641..0c6479dd 100644 --- a/packages/whook/src/services/HANDLERS.ts +++ b/packages/whook/src/services/HANDLERS.ts @@ -1,9 +1,9 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { noop } from '../libs/utils.js'; -import type { WhookWrapper } from '../services/WRAPPERS.js'; -import type { WhookHandler } from '@whook/http-transaction'; -import type { WhookHandlersService } from '@whook/http-router'; -import type { LogService } from 'common-services'; +import { type WhookWrapper } from '../services/WRAPPERS.js'; +import { type WhookHandler } from '@whook/http-transaction'; +import { type WhookHandlersService } from '@whook/http-router'; +import { type LogService } from 'common-services'; export const HANDLER_REG_EXP = /^(head|get|put|post|delete|options|handle)[A-Z][a-zA-Z0-9]+/; @@ -13,7 +13,10 @@ export type WhookHandlersDependencies<T extends WhookHandler> = { log?: LogService; } & WhookHandlersService<T>; -export default service(initHandlers, 'HANDLERS', ['WRAPPERS', 'log']); +export default location( + service(initHandlers, 'HANDLERS', ['WRAPPERS', 'log']), + import.meta.url, +); /** * Initialize the Whook handlers used byt the router diff --git a/packages/whook/src/services/HOST.ts b/packages/whook/src/services/HOST.ts index 7970dd69..eb7796eb 100644 --- a/packages/whook/src/services/HOST.ts +++ b/packages/whook/src/services/HOST.ts @@ -1,6 +1,6 @@ -import { autoService, name } from 'knifecycle'; +import { autoService, name, location } from 'knifecycle'; import { noop } from '../libs/utils.js'; -import type { ImporterService, LogService } from 'common-services'; +import { type ImporterService, type LogService } from 'common-services'; const DEFAULT_ENV = {}; @@ -9,7 +9,7 @@ If no `HOST` configuration is specified in dependencies nor in ENV, this service detects the machine host automagically. */ -export default name('HOST', autoService(initHost)); +export default location(name('HOST', autoService(initHost)), import.meta.url); export type WhookHost = string; export type WhookHostEnv = { diff --git a/packages/whook/src/services/PORT.ts b/packages/whook/src/services/PORT.ts index a30096cf..b70ced23 100644 --- a/packages/whook/src/services/PORT.ts +++ b/packages/whook/src/services/PORT.ts @@ -1,6 +1,6 @@ -import { autoService, name } from 'knifecycle'; +import { autoService, name, location } from 'knifecycle'; import { noop } from '../libs/utils.js'; -import type { LogService, ImporterService } from 'common-services'; +import { type LogService, type ImporterService } from 'common-services'; const DEFAULT_ENV = {}; @@ -16,7 +16,7 @@ export type WhookPortEnv = { PORT?: string; }; -export default name('PORT', autoService(initPort)); +export default location(name('PORT', autoService(initPort)), import.meta.url); /** * Initialize the PORT service from ENV or auto-detection if diff --git a/packages/whook/src/services/PROXYED_ENV.ts b/packages/whook/src/services/PROXYED_ENV.ts index 3cf9979e..832f9e76 100644 --- a/packages/whook/src/services/PROXYED_ENV.ts +++ b/packages/whook/src/services/PROXYED_ENV.ts @@ -1,9 +1,12 @@ import { initEnv } from 'application-services'; -import { wrapInitializer, alsoInject } from 'knifecycle'; -import { noop } from '../libs/utils.js'; -import type { LogService } from 'common-services'; +import { + wrapInitializer, + alsoInject, + location, + type ServiceInitializer, +} from 'knifecycle'; +import { noop, type LogService } from 'common-services'; import type { AppEnvVars, ProcessEnvDependencies } from 'application-services'; -import type { ServiceInitializer } from 'knifecycle'; export type WhookProxyedENVConfig = { PROXYED_ENV_VARS?: string[]; @@ -12,17 +15,20 @@ export type WhookProxyedENVDependencies = WhookProxyedENVConfig & { log?: LogService; }; -export default alsoInject< - WhookProxyedENVDependencies, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ProcessEnvDependencies<any>, - AppEnvVars ->( - ['?log', '?PROXYED_ENV_VARS'], - wrapInitializer( - wrapEnvForBuild, - initEnv as ServiceInitializer<WhookProxyedENVDependencies, AppEnvVars>, +export default location( + alsoInject< + WhookProxyedENVDependencies, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ProcessEnvDependencies<any>, + AppEnvVars + >( + ['?log', '?PROXYED_ENV_VARS'], + wrapInitializer( + wrapEnvForBuild, + initEnv as ServiceInitializer<WhookProxyedENVDependencies, AppEnvVars>, + ), ), + import.meta.url, ); /** diff --git a/packages/whook/src/services/WHOOK_RESOLVED_PLUGINS.ts b/packages/whook/src/services/WHOOK_RESOLVED_PLUGINS.ts index 7722b49d..f287b4f9 100644 --- a/packages/whook/src/services/WHOOK_RESOLVED_PLUGINS.ts +++ b/packages/whook/src/services/WHOOK_RESOLVED_PLUGINS.ts @@ -1,6 +1,6 @@ import { dirname } from 'node:path'; import { readdir as _readDir } from 'node:fs/promises'; -import { name, singleton, autoService } from 'knifecycle'; +import { name, singleton, autoService, location } from 'knifecycle'; import { YError, printStackTrace } from 'yerror'; import type { ResolveService, LogService } from 'common-services'; @@ -47,8 +47,11 @@ export type WhookResolvedPluginsDependencies = WhookResolvedPluginsConfig & { log: LogService; }; -export default singleton( - name('WHOOK_RESOLVED_PLUGINS', autoService(initWhookResolvedPlugins)), +export default location( + singleton( + name('WHOOK_RESOLVED_PLUGINS', autoService(initWhookResolvedPlugins)), + ), + import.meta.url, ); /** diff --git a/packages/whook/src/services/WRAPPERS.ts b/packages/whook/src/services/WRAPPERS.ts index 820981ee..28c5c71d 100644 --- a/packages/whook/src/services/WRAPPERS.ts +++ b/packages/whook/src/services/WRAPPERS.ts @@ -1,12 +1,12 @@ -import { service } from 'knifecycle'; +import { service, location } from 'knifecycle'; import { noop } from '../libs/utils.js'; -import type { WhookHandler } from '@whook/http-transaction'; -import type { LogService } from 'common-services'; +import { type WhookHandler } from '@whook/http-transaction'; +import { type LogService } from 'common-services'; -export default service(initWrappers, 'WRAPPERS', [ - '?HANDLERS_WRAPPERS', - '?log', -]); +export default location( + service(initWrappers, 'WRAPPERS', ['?HANDLERS_WRAPPERS', '?log']), + import.meta.url, +); export const WRAPPER_REG_EXP = /^(wrap)[A-Z][a-zA-Z0-9]+/; diff --git a/packages/whook/src/services/_autoload.test.ts b/packages/whook/src/services/_autoload.test.ts index 4f3e4aa5..e2dfef74 100644 --- a/packages/whook/src/services/_autoload.test.ts +++ b/packages/whook/src/services/_autoload.test.ts @@ -1,22 +1,23 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { describe, it, beforeEach, jest, expect } from '@jest/globals'; -import initAutoload, { WhookAutoloadDependencies } from './_autoload.js'; -import { service } from 'knifecycle'; +import initAutoload, { type WhookAutoloadDependencies } from './_autoload.js'; import { YError } from 'yerror'; -import type { - ImporterService, - LogService, - ResolveService, +import { + type ImporterService, + type LogService, + type ResolveService, } from 'common-services'; -import type { - ServiceInitializer, - Dependencies, - Service, - Injector, +import { + service, + type ServiceInitializer, + type Dependencies, + type Service, + type Injector, + SPECIAL_PROPS, } from 'knifecycle'; import { WHOOK_PROJECT_PLUGIN_NAME, - WhookResolvedPluginsService, + type WhookResolvedPluginsService, } from './WHOOK_RESOLVED_PLUGINS.js'; describe('$autoload', () => { @@ -64,6 +65,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -72,6 +74,7 @@ describe('$autoload', () => { { "importerCalls": [], "injectorCalls": [], + "location": undefined, "logCalls": [ [ "debug", @@ -84,16 +87,12 @@ describe('$autoload', () => { ], "resolveCalls": [], "result": { - "initializer": { - "$name": "CONFIG", - "$singleton": true, - "$type": "constant", - "$value": { - "testConfig": "test", - }, + "$name": "CONFIG", + "$singleton": true, + "$type": "constant", + "$value": { + "testConfig": "test", }, - "name": "CONFIG", - "path": "internal://CONFIG", }, } `); @@ -123,6 +122,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -135,6 +135,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "file:///home/whoami/my-whook-project/src/services/API.ts", + }, "logCalls": [ [ "debug", @@ -158,16 +162,12 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "API", - "path": "file:///home/whoami/my-whook-project/src/services/API.ts", - }, + "result": [Function], } `); }); - it('for handlers hash', async () => { + it.only('for handlers hash', async () => { $injector.mockResolvedValueOnce({ API: { openapi: '3.1.0', @@ -214,9 +214,8 @@ describe('$autoload', () => { expect({ result, - HANDLERS: await ( - result.initializer as ServiceInitializer<Dependencies, Service> - )({ + location: result[SPECIAL_PROPS.LOCATION], + HANDLERS: await (result as ServiceInitializer<Dependencies, Service>)({ WRAPPERS: [], log, getPing: () => undefined, @@ -238,6 +237,10 @@ describe('$autoload', () => { ], ], ], + "location": { + "exportName": "default", + "url": "@whook/whook/dist/services/HANDLERS.js", + }, "logCalls": [ [ "debug", @@ -249,11 +252,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "HANDLERS", - "path": "@whook/whook/dist/services/HANDLERS.js", - }, + "result": [Function], } `); }); @@ -305,9 +304,8 @@ describe('$autoload', () => { expect({ result, - WRAPPERS: await ( - result.initializer as ServiceInitializer<Dependencies, Service> - )({ + location: result[SPECIAL_PROPS.LOCATION], + WRAPPERS: await (result as ServiceInitializer<Dependencies, Service>)({ getPing: () => undefined, log, }), @@ -320,6 +318,10 @@ describe('$autoload', () => { "WRAPPERS": [], "importerCalls": [], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "@whook/whook/dist/services/WRAPPERS.js", + }, "logCalls": [ [ "debug", @@ -335,11 +337,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "WRAPPERS", - "path": "@whook/whook/dist/services/WRAPPERS.js", - }, + "result": [Function], } `); }); @@ -371,6 +369,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -383,6 +382,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "file:///home/whoami/my-whook-project/src/handlers/getPing.ts", + }, "logCalls": [ [ "debug", @@ -406,11 +409,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "getPing", - "path": "file:///home/whoami/my-whook-project/src/handlers/getPing.ts", - }, + "result": [Function], } `); }); @@ -441,6 +440,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -453,6 +453,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "@whook/plugin/dist/handlers/getPing.js", + }, "logCalls": [ [ "debug", @@ -476,11 +480,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "getPing", - "path": "@whook/plugin/dist/handlers/getPing.js", - }, + "result": [Function], } `); }); @@ -514,6 +514,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -526,6 +527,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "file:///home/whoami/my-whook-project/src/handlers/getPing.js", + }, "logCalls": [ [ "debug", @@ -553,11 +558,7 @@ describe('$autoload', () => { "./handlers/getPing.js", ], ], - "result": { - "initializer": [Function], - "name": "getPing", - "path": "file:///home/whoami/my-whook-project/src/handlers/getPing.js", - }, + "result": [Function], } `); }); @@ -604,6 +605,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -616,6 +618,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "@whook/whook/dist/handlers/getPing.js", + }, "logCalls": [ [ "debug", @@ -647,11 +653,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "getPing", - "path": "@whook/whook/dist/handlers/getPing.js", - }, + "result": [Function], } `); }); @@ -683,6 +685,7 @@ describe('$autoload', () => { expect({ result, + location: result[SPECIAL_PROPS.LOCATION], logCalls: log.mock.calls.filter(([type]) => !type.endsWith('stack')), injectorCalls: $injector.mock.calls, importerCalls: importer.mock.calls, @@ -695,6 +698,10 @@ describe('$autoload', () => { ], ], "injectorCalls": [], + "location": { + "exportName": "default", + "url": "file:///home/whoami/my-whook-project/src/wrappers/wrapHandler.ts", + }, "logCalls": [ [ "debug", @@ -718,11 +725,7 @@ describe('$autoload', () => { ], ], "resolveCalls": [], - "result": { - "initializer": [Function], - "name": "wrapHandler", - "path": "file:///home/whoami/my-whook-project/src/wrappers/wrapHandler.ts", - }, + "result": [Function], } `); }); diff --git a/packages/whook/src/services/_autoload.ts b/packages/whook/src/services/_autoload.ts index dabfefa7..702262cb 100644 --- a/packages/whook/src/services/_autoload.ts +++ b/packages/whook/src/services/_autoload.ts @@ -1,6 +1,7 @@ import { constant, name, + location, autoService, singleton, alsoInject, @@ -33,7 +34,7 @@ import { type WhookPluginName, type WhookResolvedPluginsService, } from './WHOOK_RESOLVED_PLUGINS.js'; -import { WhookCommandArgs } from '../libs/args.js'; +import { type WhookCommandArgs } from '../libs/args.js'; const DEFAULT_INITIALIZER_PATH_MAP = {}; @@ -185,11 +186,9 @@ async function initAutoload({ * An Object containing the `path`, `name` and the `initializer` * in its properties. */ - async function $autoload(injectedName: string): Promise<{ - name: string; - path: string; - initializer: Initializer<Service, Dependencies>; - }> { + async function $autoload( + injectedName: string, + ): Promise<Initializer<Service, Dependencies>> { /* Architecture Note #2.9.1: the `APP_CONFIG` mapper First of all the autoloader looks for constants in the previously loaded `APP_CONFIG` configurations hash. @@ -199,14 +198,7 @@ async function initAutoload({ 'debug', `📖 - Picking the "${injectedName}" constant in the "APP_CONFIG" service properties.`, ); - return { - name: injectedName, - path: 'internal://' + injectedName, - initializer: constant( - injectedName, - APP_CONFIG[injectedName], - ) as Initializer<Service, Dependencies>, - }; + return constant(injectedName, APP_CONFIG[injectedName]); } const isHandler = HANDLER_REG_EXP.test(injectedName); @@ -223,14 +215,12 @@ async function initAutoload({ (operation) => operation.operationId, ), ), - ]; - - return { - name: injectedName, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - initializer: alsoInject(handlerNames as any, initHandlers) as any, - path: '@whook/whook/dist/services/HANDLERS.js', - }; + ] as string[]; + + return location( + alsoInject(handlerNames, initHandlers), + '@whook/whook/dist/services/HANDLERS.js', + ) as Initializer<Dependencies, Service>; } /* Architecture Note #2.9.5: the `WRAPPERS` auto loading @@ -238,30 +228,17 @@ async function initAutoload({ service so that they can be dynamically applied. */ if ('WRAPPERS' === injectedName) { - return { - name: injectedName, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - initializer: alsoInject(HANDLERS_WRAPPERS, initWrappers) as any, - path: '@whook/whook/dist/services/WRAPPERS.js', - }; + return location( + alsoInject(HANDLERS_WRAPPERS, initWrappers), + '@whook/whook/dist/services/WRAPPERS.js', + ); } if (injectedName === 'COMMAND_DEFINITION') { - return { - name: injectedName, - initializer: constant( - injectedName, - (await getCommandModule()).definition, - ), - path: `definition://${args.rest[0]}`, - }; + return constant(injectedName, (await getCommandModule()).definition); } if (injectedName === 'commandHandler') { - return { - name: injectedName, - initializer: name('commandHandler', (await getCommandModule()).default), - path: `command://${args.rest[0]}`, - }; + return name('commandHandler', (await getCommandModule()).default); } /* Architecture Note #2.9.6: Service/handler/wrapper loading @@ -336,24 +313,20 @@ async function initAutoload({ log('debug', `💿 - Service "${injectedName}" found in "${modulePath}".`); - const resolvedInitializer = (await importer(modulePath)).default; + const resolvedInitializer = (await importer(modulePath)) + .default as ProviderInitializer<Dependencies, Service>; log( 'debug', `💿 - Loading "${injectedName}" initializer from "${modulePath}".`, ); - return { - name: injectedName, - path: modulePath, - initializer: - injectedName !== injectedName - ? name( - injectedName, - resolvedInitializer as ProviderInitializer<Dependencies, Service>, - ) - : resolvedInitializer, - }; + const renamedInitializer = + injectedName !== injectedName + ? name(injectedName, resolvedInitializer) + : resolvedInitializer; + + return location(renamedInitializer, modulePath, 'default'); } } @@ -376,19 +349,3 @@ export async function checkAccess( return ''; } } - -// function createPluginFolder(pluginName: string) { -// const matches = pluginName.match(/(@[^/]+\/|)([a-z-_]+)/); - -// if (matches == null) { -// throw new YError('E_BAD_PLUGIN_NAME', pluginName); -// } - -// if (matches[1]) { -// if (matches[1] === matches[2]) { -// return matches[1]; -// } -// return `${matches[1]}/${matches[2]}`; -// } -// return pluginName; -// } diff --git a/packages/whook/src/services/_buildAutoload.ts b/packages/whook/src/services/_buildAutoload.ts index f1a3273e..8f5255d4 100644 --- a/packages/whook/src/services/_buildAutoload.ts +++ b/packages/whook/src/services/_buildAutoload.ts @@ -50,10 +50,7 @@ const initializerWrapper: ServiceInitializerWrapper< ', ', )}) can give unpredictable results!`, ); - return { - initializer: constant(serviceName, undefined), - path: `constant://${serviceName}`, - }; + return constant(serviceName, undefined); } try { @@ -74,17 +71,11 @@ const initializerWrapper: ServiceInitializerWrapper< 'debug', `🤖 - Reusing a constant initializer directly from the Knifecycle instance: "${serviceName}".`, ); - return { - initializer, - path: `instance://${serviceName}`, - }; + return initializer; } if (BUILD_CONSTANTS[serviceName]) { - return { - initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]), - path: `constant://${serviceName}`, - }; + return constant(serviceName, BUILD_CONSTANTS[serviceName]); } return $autoload(serviceName); diff --git a/packages/whook/src/services/_cliAutoload.test.ts b/packages/whook/src/services/_cliAutoload.test.ts index e3a45d0c..27c19e59 100644 --- a/packages/whook/src/services/_cliAutoload.test.ts +++ b/packages/whook/src/services/_cliAutoload.test.ts @@ -7,7 +7,7 @@ import type { ImporterService, LogService, } from 'common-services'; -import type { Injector } from 'knifecycle'; +import { SPECIAL_PROPS, type Injector } from 'knifecycle'; import type { WhookAutoloadDependencies } from './_autoload.js'; import { WHOOK_PROJECT_PLUGIN_NAME, @@ -160,12 +160,13 @@ describe('$autoload', () => { access, log, } as WhookAutoloadDependencies); - const { path, initializer } = await $autoload('commandHandler'); + const initializer = await $autoload('commandHandler'); const command = await (initializer as any)(); const result = await command(); expect({ - path, + initializer, + location: initializer[SPECIAL_PROPS.LOCATION], result, importerCalls: importer.mock.calls, injectorCalls: $injector.mock.calls, @@ -178,7 +179,9 @@ describe('$autoload', () => { "file:///home/whoiam/project/src/commands/myCommand.ts", ], ], + "initializer": [Function], "injectorCalls": [], + "location": undefined, "logCalls": [ [ "debug", @@ -189,7 +192,6 @@ describe('$autoload', () => { "Command called!", ], ], - "path": "command://myCommand", "resolveCalls": [], "result": undefined, } @@ -223,12 +225,13 @@ describe('$autoload', () => { access, log, } as WhookAutoloadDependencies); - const { path, initializer } = await $autoload('commandHandler'); + const initializer = await $autoload('commandHandler'); const command = await (initializer as any)(); const result = await command(); expect({ - path, + initializer, + location: initializer[SPECIAL_PROPS.LOCATION], result, importerCalls: importer.mock.calls, injectorCalls: $injector.mock.calls, @@ -244,7 +247,9 @@ describe('$autoload', () => { "file://var/lib/node/node_modules/@whook/cli/dist/commands/myCommand.js", ], ], + "initializer": [Function], "injectorCalls": [], + "location": undefined, "logCalls": [ [ "debug", @@ -259,7 +264,6 @@ describe('$autoload', () => { "Command called!", ], ], - "path": "command://myCommand", "resolveCalls": [], "result": undefined, } diff --git a/packages/whook/src/services/command.ts b/packages/whook/src/services/command.ts index c629751a..e94be82f 100644 --- a/packages/whook/src/services/command.ts +++ b/packages/whook/src/services/command.ts @@ -1,12 +1,13 @@ import { type LogService } from 'common-services'; import { autoService, + location, type FatalErrorService, type Knifecycle, } from 'knifecycle'; import { printStackTrace, YError } from 'yerror'; -export default autoService(initCommand); +export default location(autoService(initCommand), import.meta.url); async function initCommand({ commandHandler, diff --git a/packages/whook/src/services/compiler.test.ts b/packages/whook/src/services/compiler.test.ts index f6d087f3..5838669e 100644 --- a/packages/whook/src/services/compiler.test.ts +++ b/packages/whook/src/services/compiler.test.ts @@ -36,13 +36,13 @@ describe('Compiler', () => { const result = await compiler(path.join('src', 'services', 'compiler.ts')); expect({ - extension: result.extension, - contentsLength: result?.contents?.length, - mappingsLength: result?.mappings?.length, - logCalls: log.mock.calls, - }).toMatchInlineSnapshot(` + extension: result.extension, + contentsLength: result?.contents?.length, + mappingsLength: result?.mappings?.length, + logCalls: log.mock.calls +}).toMatchInlineSnapshot(` { - "contentsLength": 50123, + "contentsLength": 65048, "extension": ".mjs", "logCalls": [], "mappingsLength": 0, @@ -66,13 +66,13 @@ describe('Compiler', () => { const result = await compiler(path.join('src', 'services', 'compiler.ts')); expect({ - extension: result.extension, - contentsLength: result?.contents?.length, - mappingsLength: result?.mappings?.length, - logCalls: log.mock.calls, - }).toMatchInlineSnapshot(` + extension: result.extension, + contentsLength: result?.contents?.length, + mappingsLength: result?.mappings?.length, + logCalls: log.mock.calls +}).toMatchInlineSnapshot(` { - "contentsLength": 3608, + "contentsLength": 3618, "extension": ".mjs", "logCalls": [], "mappingsLength": 0, @@ -100,13 +100,13 @@ describe('Compiler', () => { const result = await compiler(path.join('src', 'services', 'compiler.ts')); expect({ - extension: result.extension, - contentsLength: result?.contents?.length, - mappingsLength: result?.mappings?.length, - logCalls: log.mock.calls, - }).toMatchInlineSnapshot(` + extension: result.extension, + contentsLength: result?.contents?.length, + mappingsLength: result?.mappings?.length, + logCalls: log.mock.calls +}).toMatchInlineSnapshot(` { - "contentsLength": 5206, + "contentsLength": 5291, "extension": ".cjs", "logCalls": [], "mappingsLength": 0, diff --git a/packages/whook/src/services/compiler.ts b/packages/whook/src/services/compiler.ts index c640f1dd..11172bd4 100644 --- a/packages/whook/src/services/compiler.ts +++ b/packages/whook/src/services/compiler.ts @@ -1,9 +1,8 @@ import path from 'path'; import { noop } from '../libs/utils.js'; -import { autoService } from 'knifecycle'; -import type { Service } from 'knifecycle'; -import type { ImporterService, LogService } from 'common-services'; -import type { AppEnvVars } from 'application-services'; +import { autoService, location, type Service } from 'knifecycle'; +import { type ImporterService, type LogService } from 'common-services'; +import { type AppEnvVars } from 'application-services'; export const DEFAULT_COMPILER_OPTIONS: FullWhookCompilerOptions = { externalModules: [], @@ -12,7 +11,7 @@ export const DEFAULT_COMPILER_OPTIONS: FullWhookCompilerOptions = { format: 'esm', }; -export default autoService(initCompiler); +export default location(autoService(initCompiler), import.meta.url); export type FullWhookCompilerOptions = { externalModules: string[]; diff --git a/packages/whook/src/services/dryRun.ts b/packages/whook/src/services/dryRun.ts index 5b36715c..6f359b10 100644 --- a/packages/whook/src/services/dryRun.ts +++ b/packages/whook/src/services/dryRun.ts @@ -1,4 +1,4 @@ -import { type Knifecycle, autoService } from 'knifecycle'; +import { type Knifecycle, autoService, location } from 'knifecycle'; import { type LogService } from 'common-services'; async function initDryRun({ @@ -18,4 +18,4 @@ async function initDryRun({ doDryRun(); } -export default autoService(initDryRun); +export default location(autoService(initDryRun), import.meta.url); diff --git a/packages/whook/src/services/exit.ts b/packages/whook/src/services/exit.ts index 4eaa12b9..55ae1ab7 100644 --- a/packages/whook/src/services/exit.ts +++ b/packages/whook/src/services/exit.ts @@ -1,4 +1,7 @@ -import { service } from 'knifecycle'; +import { location, service } from 'knifecycle'; import { exit } from 'node:process'; -export default service(async () => exit, 'exit', [], true); +export default location( + service(async () => exit, 'exit', [], true), + import.meta.url, +); diff --git a/packages/whook/src/services/logger.ts b/packages/whook/src/services/logger.ts index 73b83604..07e5d785 100644 --- a/packages/whook/src/services/logger.ts +++ b/packages/whook/src/services/logger.ts @@ -1,5 +1,5 @@ -import { Logger } from 'common-services'; -import { service } from 'knifecycle'; +import { type Logger } from 'common-services'; +import { service, location } from 'knifecycle'; import debug from 'debug'; import { info, error } from 'node:console'; @@ -13,14 +13,17 @@ import { info, error } from 'node:console'; DEBUG=whook npx whook ``` */ -export default service( - async () => - ({ - output: info, - error: error, - debug: debug('whook'), - }) as Logger, - 'logger', - [], - true, +export default location( + service( + async () => + ({ + output: info, + error: error, + debug: debug('whook'), + }) as Logger, + 'logger', + [], + true, + ), + import.meta.url, ); diff --git a/packages/whook/src/services/mermaid.ts b/packages/whook/src/services/mermaid.ts index 25d7b608..a885272a 100644 --- a/packages/whook/src/services/mermaid.ts +++ b/packages/whook/src/services/mermaid.ts @@ -1,5 +1,5 @@ import { stdout as _stdout } from 'node:process'; -import { type Knifecycle, autoService } from 'knifecycle'; +import { type Knifecycle, autoService, location } from 'knifecycle'; import { WRAPPER_REG_EXP } from './WRAPPERS.js'; import { HANDLER_REG_EXP } from './HANDLERS.js'; import { type LogService } from 'common-services'; @@ -66,4 +66,4 @@ async function initMermaid({ printGraph(); } -export default autoService(initMermaid); +export default location(autoService(initMermaid), import.meta.url); diff --git a/packages/whook/src/services/promptArgs.ts b/packages/whook/src/services/promptArgs.ts index 1ddff239..0ac192ea 100644 --- a/packages/whook/src/services/promptArgs.ts +++ b/packages/whook/src/services/promptArgs.ts @@ -1,15 +1,17 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { autoService, singleton } from 'knifecycle'; +import { autoService, location, singleton } from 'knifecycle'; import _inquirer from 'inquirer'; -import { noop } from '../libs/utils.js'; -import { type LogService } from 'common-services'; +import { noop, type LogService } from 'common-services'; import { type WhookArgsTypes, type WhookCommandArgs, type WhookCommandDefinitionArguments, } from '../libs/args.js'; -export default singleton(autoService(initPromptArgs)); +export default location( + singleton(autoService(initPromptArgs)), + import.meta.url, +); export type WhookCommandHandler = () => Promise<void>; export type WhookCommandDefinition = { diff --git a/packages/whook/src/services/repl.test.ts b/packages/whook/src/services/repl.test.ts index 8b60a65b..659b144d 100644 --- a/packages/whook/src/services/repl.test.ts +++ b/packages/whook/src/services/repl.test.ts @@ -51,7 +51,9 @@ describe('initREPL', () => { stdin.write('time();\n\n'); - dispose && (await dispose()); + if (dispose) { + await dispose(); + } stdout.end(); diff --git a/packages/whook/src/services/repl.ts b/packages/whook/src/services/repl.ts index 7d9a28be..2f2c0273 100644 --- a/packages/whook/src/services/repl.ts +++ b/packages/whook/src/services/repl.ts @@ -1,10 +1,16 @@ -import { autoProvider, name } from 'knifecycle'; +import { + autoProvider, + name, + location, + type Provider, + type Disposer, + type Injector, +} from 'knifecycle'; import { identity, noop } from '../libs/utils.js'; import repl from 'node:repl'; import { type LogService } from 'common-services'; -import { type Provider, type Disposer, type Injector } from 'knifecycle'; -export default name('repl', autoProvider(initREPL)); +export default location(name('repl', autoProvider(initREPL)), import.meta.url); export type REPLService = void; export type REPLDependencies<S> = { diff --git a/packages/whook/src/services/watchResolve.ts b/packages/whook/src/services/watchResolve.ts index a19bc5e1..fff2241d 100644 --- a/packages/whook/src/services/watchResolve.ts +++ b/packages/whook/src/services/watchResolve.ts @@ -3,10 +3,13 @@ import { type LogService, type ResolveService, } from 'common-services'; -import { name, autoService, singleton } from 'knifecycle'; +import { name, autoService, singleton, location } from 'knifecycle'; import { WhookURL } from './WHOOK_RESOLVED_PLUGINS.js'; -export default singleton(name('resolve', autoService(initWatchResolve))); +export default location( + singleton(name('resolve', autoService(initWatchResolve))), + import.meta.url, +); export type WatchResolveDependencies = { MAIN_FILE_URL: WhookURL;