diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 0191731..84b0f7f 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -8,6 +8,7 @@ "version": "7.18.2", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.2", @@ -22,6 +23,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -31,6 +33,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -40,6 +43,7 @@ "version": "7.18.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -52,6 +56,7 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.18.10", @@ -66,6 +71,7 @@ "version": "4.6.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "dev": true, "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -84,6 +90,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -96,6 +103,7 @@ "version": "4.12.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -105,6 +113,7 @@ "version": "0.20.0", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.6", @@ -119,6 +128,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -136,12 +146,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@eslint/config-helpers": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -151,6 +163,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" @@ -163,6 +176,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", @@ -186,6 +200,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -203,6 +218,7 @@ "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -215,12 +231,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -233,6 +251,7 @@ "version": "9.24.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", + "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -242,6 +261,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -251,6 +271,7 @@ "version": "0.2.8", "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/core": "^0.13.0", @@ -264,6 +285,7 @@ "version": "0.13.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" @@ -276,6 +298,7 @@ "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18.0" @@ -285,6 +308,7 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", @@ -298,6 +322,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18" @@ -311,6 +336,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=12.22" @@ -324,6 +350,7 @@ "version": "0.4.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18" @@ -337,6 +364,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -354,6 +382,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -368,6 +397,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -377,6 +407,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -386,6 +417,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -396,12 +428,14 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -412,6 +446,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -425,6 +460,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -434,6 +470,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -447,18 +484,21 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz", "integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", @@ -488,6 +528,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/scope-manager": "8.30.1", @@ -512,6 +553,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -529,12 +571,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -552,6 +596,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz", "integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "8.30.1", @@ -575,6 +620,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -592,12 +638,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/types": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", + "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -611,6 +659,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -637,6 +686,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -646,6 +696,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -663,6 +714,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -678,12 +730,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/utils": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -707,6 +761,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -736,6 +791,7 @@ "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -748,6 +804,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -757,6 +814,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -769,6 +827,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -786,12 +845,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -808,6 +869,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -820,6 +882,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -832,6 +895,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0" }, "node_modules/array-flatten": { @@ -843,6 +907,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -852,6 +917,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, "license": "ISC", "engines": { "node": ">= 4.0.0" @@ -860,12 +926,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -886,6 +954,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "license": "MIT", "dependencies": { "buffer": "^5.5.0", @@ -897,6 +966,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -1013,6 +1083,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1023,6 +1094,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -1035,6 +1107,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { "type": "github", @@ -1059,6 +1132,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "license": "MIT" }, "node_modules/bytes": { @@ -1101,6 +1175,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1110,6 +1185,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^2.2.0", @@ -1120,6 +1196,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1136,6 +1213,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1151,6 +1229,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -1163,12 +1242,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, "license": "ISC" }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, "license": "MIT", "dependencies": { "source-map": "~0.6.0" @@ -1181,6 +1262,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -1192,6 +1274,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1201,6 +1284,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1216,12 +1300,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -1236,6 +1322,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -1248,6 +1335,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -1265,6 +1353,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1277,18 +1366,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "license": "MIT" }, "node_modules/content-disposition": { @@ -1327,12 +1419,14 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1347,6 +1441,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.28", @@ -1361,6 +1456,7 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, "license": "MIT", "dependencies": { "css-tree": "~2.2.0" @@ -1382,6 +1478,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" @@ -1397,6 +1494,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4.0.0" @@ -1406,6 +1504,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, "license": "MIT" }, "node_modules/depd": { @@ -1429,6 +1528,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -1438,6 +1538,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -1463,6 +1564,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, "license": "MIT" }, "node_modules/ee-first": { @@ -1474,6 +1576,7 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, "node_modules/encodeurl": { @@ -1488,6 +1591,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -1524,6 +1628,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1538,6 +1643,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -1550,6 +1656,7 @@ "version": "9.24.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", @@ -1610,6 +1717,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -1626,6 +1734,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1638,6 +1747,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1655,6 +1765,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -1667,12 +1778,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/espree": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", @@ -1690,6 +1803,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -1702,6 +1816,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -1714,6 +1829,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -1723,6 +1839,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -1740,6 +1857,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" @@ -1791,21 +1909,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/express-rate-limit": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", - "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": "^4.11 || 5 || ^5.0.0-beta.1" - } - }, "node_modules/express-session": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", @@ -1895,12 +1998,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1917,18 +2022,21 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -1938,6 +2046,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" @@ -1950,6 +2059,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -1979,6 +2089,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^6.0.0", @@ -1995,6 +2106,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", @@ -2008,12 +2120,14 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, "license": "ISC" }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", @@ -2046,6 +2160,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.1", @@ -2056,12 +2171,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, "license": "MIT" }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", @@ -2085,6 +2202,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -2129,12 +2247,14 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, "license": "MIT" }, "node_modules/glob": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -2158,6 +2278,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -2170,6 +2291,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -2179,6 +2301,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -2194,6 +2317,7 @@ "version": "16.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -2206,6 +2330,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -2237,18 +2362,21 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, "license": "MIT" }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4.0" @@ -2258,6 +2386,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2289,6 +2418,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "license": "MIT", "bin": { "he": "bin/he" @@ -2298,6 +2428,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "dev": true, "license": "MIT", "dependencies": { "camel-case": "^3.0.0", @@ -2334,6 +2465,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -2347,6 +2479,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2364,6 +2497,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/iconv-lite": { @@ -2382,6 +2516,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -2402,6 +2537,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -2411,6 +2547,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -2427,6 +2564,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -2441,12 +2579,14 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, "license": "ISC" }, "node_modules/into-stream": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, "license": "MIT", "dependencies": { "from2": "^2.3.0", @@ -2471,6 +2611,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, "license": "MIT", "dependencies": { "has": "^1.0.3" @@ -2483,6 +2624,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2492,6 +2634,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2501,6 +2644,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -2513,6 +2657,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -2522,18 +2667,21 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -2549,6 +2697,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -2561,6 +2710,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -2573,24 +2723,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -2603,6 +2757,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -2612,6 +2767,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", @@ -2625,6 +2781,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^5.0.0" @@ -2640,18 +2797,21 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, "license": "MIT" }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true, "license": "MIT" }, "node_modules/lru-cache": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "dev": true, "license": "ISC", "engines": { "node": "20 || >=22" @@ -2669,6 +2829,7 @@ "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, "license": "CC0-1.0" }, "node_modules/media-typer": { @@ -2691,6 +2852,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -2708,6 +2870,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -2751,6 +2914,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2763,6 +2927,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2775,6 +2940,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2784,6 +2950,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -2793,6 +2960,7 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, "license": "MIT" }, "node_modules/ms": { @@ -2804,6 +2972,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, "funding": [ { "type": "github", @@ -2828,6 +2997,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -2842,12 +3012,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true, "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, "license": "MIT" }, "node_modules/negotiator": { @@ -2862,6 +3034,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, "license": "MIT", "dependencies": { "lower-case": "^1.1.1" @@ -2871,6 +3044,7 @@ "version": "3.74.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.3.5" @@ -2883,6 +3057,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -2934,6 +3109,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -2943,6 +3119,7 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, "license": "MIT", "dependencies": { "deep-is": "^0.1.3", @@ -2960,6 +3137,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2969,6 +3147,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -2984,6 +3163,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^3.0.2" @@ -2999,12 +3179,14 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^2.2.0" @@ -3014,6 +3196,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -3034,6 +3217,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3043,6 +3227,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3052,12 +3237,14 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, "license": "MIT" }, "node_modules/path-scurry": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -3079,6 +3266,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3088,6 +3276,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -3100,6 +3289,7 @@ "version": "5.8.1", "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/generator": "7.18.2", @@ -3133,6 +3323,7 @@ "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", @@ -3152,6 +3343,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", @@ -3178,6 +3370,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8.0" @@ -3187,6 +3380,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -3202,12 +3396,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -3229,6 +3425,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -3239,6 +3436,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3262,6 +3460,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -3314,6 +3513,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", @@ -3329,6 +3529,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", @@ -3344,12 +3545,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.10" @@ -3359,6 +3562,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3368,6 +3572,7 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", @@ -3388,6 +3593,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -3397,6 +3603,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -3412,6 +3619,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -3422,6 +3630,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -3469,6 +3678,7 @@ "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -3564,6 +3774,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -3576,6 +3787,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3653,6 +3865,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -3665,6 +3878,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, "funding": [ { "type": "github", @@ -3685,6 +3899,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, "funding": [ { "type": "github", @@ -3710,6 +3925,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3719,6 +3935,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3728,6 +3945,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3737,6 +3955,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -3755,6 +3974,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, "license": "MIT", "dependencies": { "readable-stream": "^2.1.4" @@ -3764,6 +3984,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" @@ -3773,12 +3994,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -3797,6 +4020,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -3811,6 +4035,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3820,12 +4045,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3838,6 +4065,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -3854,6 +4082,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3866,6 +4095,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3875,6 +4105,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3884,6 +4115,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3896,6 +4128,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "dev": true, "license": "MIT", "dependencies": { "chownr": "^1.1.1", @@ -3908,6 +4141,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, "license": "MIT", "dependencies": { "bl": "^4.0.3", @@ -3924,6 +4158,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -3938,6 +4173,7 @@ "version": "5.39.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -3956,6 +4192,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -3965,6 +4202,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -3985,12 +4223,14 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, "license": "MIT" }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18.12" @@ -4009,6 +4249,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" @@ -4021,6 +4262,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" @@ -4045,6 +4287,7 @@ "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, "license": "Apache-2.0", "peer": true, "bin": { @@ -4059,6 +4302,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.30.1.tgz", "integrity": "sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/eslint-plugin": "8.30.1", @@ -4081,6 +4325,7 @@ "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, "license": "BSD-2-Clause", "bin": { "uglifyjs": "bin/uglifyjs" @@ -4114,6 +4359,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -4131,12 +4377,14 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true, "license": "MIT" }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -4146,6 +4394,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -4168,12 +4417,14 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -4184,6 +4435,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -4199,6 +4451,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4208,6 +4461,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -4226,6 +4480,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -4243,6 +4498,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4252,6 +4508,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -4267,12 +4524,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -4287,6 +4546,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4299,12 +4559,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -4314,6 +4576,7 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^7.0.2", @@ -4332,6 +4595,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -4341,6 +4605,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4350,12 +4615,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -4370,6 +4637,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4382,6 +4650,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" diff --git a/node_modules/express-rate-limit/dist/index.cjs b/node_modules/express-rate-limit/dist/index.cjs deleted file mode 100644 index 36d5e1b..0000000 --- a/node_modules/express-rate-limit/dist/index.cjs +++ /dev/null @@ -1,838 +0,0 @@ -"use strict"; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// source/index.ts -var source_exports = {}; -__export(source_exports, { - MemoryStore: () => MemoryStore, - default: () => lib_default, - rateLimit: () => lib_default -}); -module.exports = __toCommonJS(source_exports); - -// source/headers.ts -var import_node_buffer = require("buffer"); -var import_node_crypto = require("crypto"); -var SUPPORTED_DRAFT_VERSIONS = ["draft-6", "draft-7", "draft-8"]; -var getResetSeconds = (resetTime, windowMs) => { - let resetSeconds = void 0; - if (resetTime) { - const deltaSeconds = Math.ceil((resetTime.getTime() - Date.now()) / 1e3); - resetSeconds = Math.max(0, deltaSeconds); - } else if (windowMs) { - resetSeconds = Math.ceil(windowMs / 1e3); - } - return resetSeconds; -}; -var getPartitionKey = (key) => { - const hash = (0, import_node_crypto.createHash)("sha256"); - hash.update(key); - const partitionKey = hash.digest("hex").slice(0, 12); - return import_node_buffer.Buffer.from(partitionKey).toString("base64"); -}; -var setLegacyHeaders = (response, info) => { - if (response.headersSent) - return; - response.setHeader("X-RateLimit-Limit", info.limit.toString()); - response.setHeader("X-RateLimit-Remaining", info.remaining.toString()); - if (info.resetTime instanceof Date) { - response.setHeader("Date", (/* @__PURE__ */ new Date()).toUTCString()); - response.setHeader( - "X-RateLimit-Reset", - Math.ceil(info.resetTime.getTime() / 1e3).toString() - ); - } -}; -var setDraft6Headers = (response, info, windowMs) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime); - response.setHeader("RateLimit-Policy", `${info.limit};w=${windowSeconds}`); - response.setHeader("RateLimit-Limit", info.limit.toString()); - response.setHeader("RateLimit-Remaining", info.remaining.toString()); - if (resetSeconds) - response.setHeader("RateLimit-Reset", resetSeconds.toString()); -}; -var setDraft7Headers = (response, info, windowMs) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - response.setHeader("RateLimit-Policy", `${info.limit};w=${windowSeconds}`); - response.setHeader( - "RateLimit", - `limit=${info.limit}, remaining=${info.remaining}, reset=${resetSeconds}` - ); -}; -var setDraft8Headers = (response, info, windowMs, name, key) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - const partitionKey = getPartitionKey(key); - const policy = `q=${info.limit}; w=${windowSeconds}; pk=:${partitionKey}:`; - const header = `r=${info.remaining}; t=${resetSeconds}`; - response.append("RateLimit-Policy", `"${name}"; ${policy}`); - response.append("RateLimit", `"${name}"; ${header}`); -}; -var setRetryAfterHeader = (response, info, windowMs) => { - if (response.headersSent) - return; - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - response.setHeader("Retry-After", resetSeconds.toString()); -}; - -// source/validations.ts -var import_node_net = require("net"); -var ValidationError = class extends Error { - /** - * The code must be a string, in snake case and all capital, that starts with - * the substring `ERR_ERL_`. - * - * The message must be a string, starting with an uppercase character, - * describing the issue in detail. - */ - constructor(code, message) { - const url = `https://express-rate-limit.github.io/${code}/`; - super(`${message} See ${url} for more information.`); - this.name = this.constructor.name; - this.code = code; - this.help = url; - } -}; -var ChangeWarning = class extends ValidationError { -}; -var usedStores = /* @__PURE__ */ new Set(); -var singleCountKeys = /* @__PURE__ */ new WeakMap(); -var validations = { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - enabled: { - default: true - }, - // Should be EnabledValidations type, but that's a circular reference - disable() { - for (const k of Object.keys(this.enabled)) - this.enabled[k] = false; - }, - /** - * Checks whether the IP address is valid, and that it does not have a port - * number in it. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_invalid_ip_address. - * - * @param ip {string | undefined} - The IP address provided by Express as request.ip. - * - * @returns {void} - */ - ip(ip) { - if (ip === void 0) { - throw new ValidationError( - "ERR_ERL_UNDEFINED_IP_ADDRESS", - `An undefined 'request.ip' was detected. This might indicate a misconfiguration or the connection being destroyed prematurely.` - ); - } - if (!(0, import_node_net.isIP)(ip)) { - throw new ValidationError( - "ERR_ERL_INVALID_IP_ADDRESS", - `An invalid 'request.ip' (${ip}) was detected. Consider passing a custom 'keyGenerator' function to the rate limiter.` - ); - } - }, - /** - * Makes sure the trust proxy setting is not set to `true`. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_permissive_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - trustProxy(request) { - if (request.app.get("trust proxy") === true) { - throw new ValidationError( - "ERR_ERL_PERMISSIVE_TRUST_PROXY", - `The Express 'trust proxy' setting is true, which allows anyone to trivially bypass IP-based rate limiting.` - ); - } - }, - /** - * Makes sure the trust proxy setting is set in case the `X-Forwarded-For` - * header is present. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_unset_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - xForwardedForHeader(request) { - if (request.headers["x-forwarded-for"] && request.app.get("trust proxy") === false) { - throw new ValidationError( - "ERR_ERL_UNEXPECTED_X_FORWARDED_FOR", - `The 'X-Forwarded-For' header is set but the Express 'trust proxy' setting is false (default). This could indicate a misconfiguration which would prevent express-rate-limit from accurately identifying users.` - ); - } - }, - /** - * Ensures totalHits value from store is a positive integer. - * - * @param hits {any} - The `totalHits` returned by the store. - */ - positiveHits(hits) { - if (typeof hits !== "number" || hits < 1 || hits !== Math.round(hits)) { - throw new ValidationError( - "ERR_ERL_INVALID_HITS", - `The totalHits value returned from the store must be a positive integer, got ${hits}` - ); - } - }, - /** - * Ensures a single store instance is not used with multiple express-rate-limit instances - */ - unsharedStore(store) { - if (usedStores.has(store)) { - const maybeUniquePrefix = store?.localKeys ? "" : " (with a unique prefix)"; - throw new ValidationError( - "ERR_ERL_STORE_REUSE", - `A Store instance must not be shared across multiple rate limiters. Create a new instance of ${store.constructor.name}${maybeUniquePrefix} for each limiter instead.` - ); - } - usedStores.add(store); - }, - /** - * Ensures a given key is incremented only once per request. - * - * @param request {Request} - The Express request object. - * @param store {Store} - The store class. - * @param key {string} - The key used to store the client's hit count. - * - * @returns {void} - */ - singleCount(request, store, key) { - let storeKeys = singleCountKeys.get(request); - if (!storeKeys) { - storeKeys = /* @__PURE__ */ new Map(); - singleCountKeys.set(request, storeKeys); - } - const storeKey = store.localKeys ? store : store.constructor.name; - let keys = storeKeys.get(storeKey); - if (!keys) { - keys = []; - storeKeys.set(storeKey, keys); - } - const prefixedKey = `${store.prefix ?? ""}${key}`; - if (keys.includes(prefixedKey)) { - throw new ValidationError( - "ERR_ERL_DOUBLE_COUNT", - `The hit count for ${key} was incremented more than once for a single request.` - ); - } - keys.push(prefixedKey); - }, - /** - * Warns the user that the behaviour for `max: 0` / `limit: 0` is - * changing in the next major release. - * - * @param limit {number} - The maximum number of hits per client. - * - * @returns {void} - */ - limit(limit) { - if (limit === 0) { - throw new ChangeWarning( - "WRN_ERL_MAX_ZERO", - `Setting limit or max to 0 disables rate limiting in express-rate-limit v6 and older, but will cause all requests to be blocked in v7` - ); - } - }, - /** - * Warns the user that the `draft_polli_ratelimit_headers` option is deprecated - * and will be removed in the next major release. - * - * @param draft_polli_ratelimit_headers {any | undefined} - The now-deprecated setting that was used to enable standard headers. - * - * @returns {void} - */ - draftPolliHeaders(draft_polli_ratelimit_headers) { - if (draft_polli_ratelimit_headers) { - throw new ChangeWarning( - "WRN_ERL_DEPRECATED_DRAFT_POLLI_HEADERS", - `The draft_polli_ratelimit_headers configuration option is deprecated and has been removed in express-rate-limit v7, please set standardHeaders: 'draft-6' instead.` - ); - } - }, - /** - * Warns the user that the `onLimitReached` option is deprecated and - * will be removed in the next major release. - * - * @param onLimitReached {any | undefined} - The maximum number of hits per client. - * - * @returns {void} - */ - onLimitReached(onLimitReached) { - if (onLimitReached) { - throw new ChangeWarning( - "WRN_ERL_DEPRECATED_ON_LIMIT_REACHED", - `The onLimitReached configuration option is deprecated and has been removed in express-rate-limit v7.` - ); - } - }, - /** - * Warns the user when an invalid/unsupported version of the draft spec is passed. - * - * @param version {any | undefined} - The version passed by the user. - * - * @returns {void} - */ - headersDraftVersion(version) { - if (typeof version !== "string" || !SUPPORTED_DRAFT_VERSIONS.includes(version)) { - const versionString = SUPPORTED_DRAFT_VERSIONS.join(", "); - throw new ValidationError( - "ERR_ERL_HEADERS_UNSUPPORTED_DRAFT_VERSION", - `standardHeaders: only the following versions of the IETF draft specification are supported: ${versionString}.` - ); - } - }, - /** - * Warns the user when the selected headers option requires a reset time but - * the store does not provide one. - * - * @param resetTime {Date | undefined} - The timestamp when the client's hit count will be reset. - * - * @returns {void} - */ - headersResetTime(resetTime) { - if (!resetTime) { - throw new ValidationError( - "ERR_ERL_HEADERS_NO_RESET", - `standardHeaders: 'draft-7' requires a 'resetTime', but the store did not provide one. The 'windowMs' value will be used instead, which may cause clients to wait longer than necessary.` - ); - } - }, - /** - * Checks the options.validate setting to ensure that only recognized - * validations are enabled or disabled. - * - * If any unrecognized values are found, an error is logged that - * includes the list of supported vaidations. - */ - validationsConfig() { - const supportedValidations = Object.keys(this).filter( - (k) => !["enabled", "disable"].includes(k) - ); - supportedValidations.push("default"); - for (const key of Object.keys(this.enabled)) { - if (!supportedValidations.includes(key)) { - throw new ValidationError( - "ERR_ERL_UNKNOWN_VALIDATION", - `options.validate.${key} is not recognized. Supported validate options are: ${supportedValidations.join( - ", " - )}.` - ); - } - } - }, - /** - * Checks to see if the instance was created inside of a request handler, - * which would prevent it from working correctly, with the default memory - * store (or any other store with localKeys.) - */ - creationStack(store) { - const { stack } = new Error( - "express-rate-limit validation check (set options.validate.creationStack=false to disable)" - ); - if (stack?.includes("Layer.handle [as handle_request]")) { - if (!store.localKeys) { - throw new ValidationError( - "ERR_ERL_CREATED_IN_REQUEST_HANDLER", - "express-rate-limit instance should *usually* be created at app initialization, not when responding to a request." - ); - } - throw new ValidationError( - "ERR_ERL_CREATED_IN_REQUEST_HANDLER", - `express-rate-limit instance should be created at app initialization, not when responding to a request.` - ); - } - } -}; -var getValidations = (_enabled) => { - let enabled; - if (typeof _enabled === "boolean") { - enabled = { - default: _enabled - }; - } else { - enabled = { - default: true, - ..._enabled - }; - } - const wrappedValidations = { - enabled - }; - for (const [name, validation] of Object.entries(validations)) { - if (typeof validation === "function") - wrappedValidations[name] = (...args) => { - if (!(enabled[name] ?? enabled.default)) { - return; - } - try { - ; - validation.apply( - wrappedValidations, - args - ); - } catch (error) { - if (error instanceof ChangeWarning) - console.warn(error); - else - console.error(error); - } - }; - } - return wrappedValidations; -}; - -// source/memory-store.ts -var MemoryStore = class { - constructor() { - /** - * These two maps store usage (requests) and reset time by key (for example, IP - * addresses or API keys). - * - * They are split into two to avoid having to iterate through the entire set to - * determine which ones need reset. Instead, `Client`s are moved from `previous` - * to `current` as they hit the endpoint. Once `windowMs` has elapsed, all clients - * left in `previous`, i.e., those that have not made any recent requests, are - * known to be expired and can be deleted in bulk. - */ - this.previous = /* @__PURE__ */ new Map(); - this.current = /* @__PURE__ */ new Map(); - /** - * Confirmation that the keys incremented in once instance of MemoryStore - * cannot affect other instances. - */ - this.localKeys = true; - } - /** - * Method that initializes the store. - * - * @param options {Options} - The options used to setup the middleware. - */ - init(options) { - this.windowMs = options.windowMs; - if (this.interval) - clearInterval(this.interval); - this.interval = setInterval(() => { - this.clearExpired(); - }, this.windowMs); - if (this.interval.unref) - this.interval.unref(); - } - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo | undefined} - The number of hits and reset time for that client. - * - * @public - */ - async get(key) { - return this.current.get(key) ?? this.previous.get(key); - } - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - * - * @public - */ - async increment(key) { - const client = this.getClient(key); - const now = Date.now(); - if (client.resetTime.getTime() <= now) { - this.resetClient(client, now); - } - client.totalHits++; - return client; - } - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - async decrement(key) { - const client = this.getClient(key); - if (client.totalHits > 0) - client.totalHits--; - } - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - async resetKey(key) { - this.current.delete(key); - this.previous.delete(key); - } - /** - * Method to reset everyone's hit counter. - * - * @public - */ - async resetAll() { - this.current.clear(); - this.previous.clear(); - } - /** - * Method to stop the timer (if currently running) and prevent any memory - * leaks. - * - * @public - */ - shutdown() { - clearInterval(this.interval); - void this.resetAll(); - } - /** - * Recycles a client by setting its hit count to zero, and reset time to - * `windowMs` milliseconds from now. - * - * NOT to be confused with `#resetKey()`, which removes a client from both the - * `current` and `previous` maps. - * - * @param client {Client} - The client to recycle. - * @param now {number} - The current time, to which the `windowMs` is added to get the `resetTime` for the client. - * - * @return {Client} - The modified client that was passed in, to allow for chaining. - */ - resetClient(client, now = Date.now()) { - client.totalHits = 0; - client.resetTime.setTime(now + this.windowMs); - return client; - } - /** - * Retrieves or creates a client, given a key. Also ensures that the client being - * returned is in the `current` map. - * - * @param key {string} - The key under which the client is (or is to be) stored. - * - * @returns {Client} - The requested client. - */ - getClient(key) { - if (this.current.has(key)) - return this.current.get(key); - let client; - if (this.previous.has(key)) { - client = this.previous.get(key); - this.previous.delete(key); - } else { - client = { totalHits: 0, resetTime: /* @__PURE__ */ new Date() }; - this.resetClient(client); - } - this.current.set(key, client); - return client; - } - /** - * Move current clients to previous, create a new map for current. - * - * This function is called every `windowMs`. - */ - clearExpired() { - this.previous = this.current; - this.current = /* @__PURE__ */ new Map(); - } -}; - -// source/lib.ts -var isLegacyStore = (store) => ( - // Check that `incr` exists but `increment` does not - store authors might want - // to keep both around for backwards compatibility. - typeof store.incr === "function" && typeof store.increment !== "function" -); -var promisifyStore = (passedStore) => { - if (!isLegacyStore(passedStore)) { - return passedStore; - } - const legacyStore = passedStore; - class PromisifiedStore { - async increment(key) { - return new Promise((resolve, reject) => { - legacyStore.incr( - key, - (error, totalHits, resetTime) => { - if (error) - reject(error); - resolve({ totalHits, resetTime }); - } - ); - }); - } - async decrement(key) { - return legacyStore.decrement(key); - } - async resetKey(key) { - return legacyStore.resetKey(key); - } - /* istanbul ignore next */ - async resetAll() { - if (typeof legacyStore.resetAll === "function") - return legacyStore.resetAll(); - } - } - return new PromisifiedStore(); -}; -var getOptionsFromConfig = (config) => { - const { validations: validations2, ...directlyPassableEntries } = config; - return { - ...directlyPassableEntries, - validate: validations2.enabled - }; -}; -var omitUndefinedOptions = (passedOptions) => { - const omittedOptions = {}; - for (const k of Object.keys(passedOptions)) { - const key = k; - if (passedOptions[key] !== void 0) { - omittedOptions[key] = passedOptions[key]; - } - } - return omittedOptions; -}; -var parseOptions = (passedOptions) => { - const notUndefinedOptions = omitUndefinedOptions(passedOptions); - const validations2 = getValidations(notUndefinedOptions?.validate ?? true); - validations2.validationsConfig(); - validations2.draftPolliHeaders( - // @ts-expect-error see the note above. - notUndefinedOptions.draft_polli_ratelimit_headers - ); - validations2.onLimitReached(notUndefinedOptions.onLimitReached); - let standardHeaders = notUndefinedOptions.standardHeaders ?? false; - if (standardHeaders === true) - standardHeaders = "draft-6"; - const config = { - windowMs: 60 * 1e3, - limit: passedOptions.max ?? 5, - // `max` is deprecated, but support it anyways. - message: "Too many requests, please try again later.", - statusCode: 429, - legacyHeaders: passedOptions.headers ?? true, - identifier(request, _response) { - let duration = ""; - const property = config.requestPropertyName; - const { limit } = request[property]; - const seconds = config.windowMs / 1e3; - const minutes = config.windowMs / (1e3 * 60); - const hours = config.windowMs / (1e3 * 60 * 60); - const days = config.windowMs / (1e3 * 60 * 60 * 24); - if (seconds < 60) - duration = `${seconds}sec`; - else if (minutes < 60) - duration = `${minutes}min`; - else if (hours < 24) - duration = `${hours}hr${hours > 1 ? "s" : ""}`; - else - duration = `${days}day${days > 1 ? "s" : ""}`; - return `${limit}-in-${duration}`; - }, - requestPropertyName: "rateLimit", - skipFailedRequests: false, - skipSuccessfulRequests: false, - requestWasSuccessful: (_request, response) => response.statusCode < 400, - skip: (_request, _response) => false, - keyGenerator(request, _response) { - validations2.ip(request.ip); - validations2.trustProxy(request); - validations2.xForwardedForHeader(request); - return request.ip; - }, - async handler(request, response, _next, _optionsUsed) { - response.status(config.statusCode); - const message = typeof config.message === "function" ? await config.message( - request, - response - ) : config.message; - if (!response.writableEnded) { - response.send(message); - } - }, - passOnStoreError: false, - // Allow the default options to be overriden by the passed options. - ...notUndefinedOptions, - // `standardHeaders` is resolved into a draft version above, use that. - standardHeaders, - // Note that this field is declared after the user's options are spread in, - // so that this field doesn't get overriden with an un-promisified store! - store: promisifyStore(notUndefinedOptions.store ?? new MemoryStore()), - // Print an error to the console if a few known misconfigurations are detected. - validations: validations2 - }; - if (typeof config.store.increment !== "function" || typeof config.store.decrement !== "function" || typeof config.store.resetKey !== "function" || config.store.resetAll !== void 0 && typeof config.store.resetAll !== "function" || config.store.init !== void 0 && typeof config.store.init !== "function") { - throw new TypeError( - "An invalid store was passed. Please ensure that the store is a class that implements the `Store` interface." - ); - } - return config; -}; -var handleAsyncErrors = (fn) => async (request, response, next) => { - try { - await Promise.resolve(fn(request, response, next)).catch(next); - } catch (error) { - next(error); - } -}; -var rateLimit = (passedOptions) => { - const config = parseOptions(passedOptions ?? {}); - const options = getOptionsFromConfig(config); - config.validations.creationStack(config.store); - config.validations.unsharedStore(config.store); - if (typeof config.store.init === "function") - config.store.init(options); - const middleware = handleAsyncErrors( - async (request, response, next) => { - const skip = await config.skip(request, response); - if (skip) { - next(); - return; - } - const augmentedRequest = request; - const key = await config.keyGenerator(request, response); - let totalHits = 0; - let resetTime; - try { - const incrementResult = await config.store.increment(key); - totalHits = incrementResult.totalHits; - resetTime = incrementResult.resetTime; - } catch (error) { - if (config.passOnStoreError) { - console.error( - "express-rate-limit: error from store, allowing request without rate-limiting.", - error - ); - next(); - return; - } - throw error; - } - config.validations.positiveHits(totalHits); - config.validations.singleCount(request, config.store, key); - const retrieveLimit = typeof config.limit === "function" ? config.limit(request, response) : config.limit; - const limit = await retrieveLimit; - config.validations.limit(limit); - const info = { - limit, - used: totalHits, - remaining: Math.max(limit - totalHits, 0), - resetTime - }; - Object.defineProperty(info, "current", { - configurable: false, - enumerable: false, - value: totalHits - }); - augmentedRequest[config.requestPropertyName] = info; - if (config.legacyHeaders && !response.headersSent) { - setLegacyHeaders(response, info); - } - if (config.standardHeaders && !response.headersSent) { - switch (config.standardHeaders) { - case "draft-6": { - setDraft6Headers(response, info, config.windowMs); - break; - } - case "draft-7": { - config.validations.headersResetTime(info.resetTime); - setDraft7Headers(response, info, config.windowMs); - break; - } - case "draft-8": { - const retrieveName = typeof config.identifier === "function" ? config.identifier(request, response) : config.identifier; - const name = await retrieveName; - config.validations.headersResetTime(info.resetTime); - setDraft8Headers(response, info, config.windowMs, name, key); - break; - } - default: { - config.validations.headersDraftVersion(config.standardHeaders); - break; - } - } - } - if (config.skipFailedRequests || config.skipSuccessfulRequests) { - let decremented = false; - const decrementKey = async () => { - if (!decremented) { - await config.store.decrement(key); - decremented = true; - } - }; - if (config.skipFailedRequests) { - response.on("finish", async () => { - if (!await config.requestWasSuccessful(request, response)) - await decrementKey(); - }); - response.on("close", async () => { - if (!response.writableEnded) - await decrementKey(); - }); - response.on("error", async () => { - await decrementKey(); - }); - } - if (config.skipSuccessfulRequests) { - response.on("finish", async () => { - if (await config.requestWasSuccessful(request, response)) - await decrementKey(); - }); - } - } - config.validations.disable(); - if (totalHits > limit) { - if (config.legacyHeaders || config.standardHeaders) { - setRetryAfterHeader(response, info, config.windowMs); - } - config.handler(request, response, next, options); - return; - } - next(); - } - ); - const getThrowFn = () => { - throw new Error("The current store does not support the get/getKey method"); - }; - middleware.resetKey = config.store.resetKey.bind(config.store); - middleware.getKey = typeof config.store.get === "function" ? config.store.get.bind(config.store) : getThrowFn; - return middleware; -}; -var lib_default = rateLimit; -// Annotate the CommonJS export names for ESM import in node: -0 && (module.exports = { - MemoryStore, - rateLimit -}); -module.exports = rateLimit; module.exports.default = rateLimit; module.exports.rateLimit = rateLimit; module.exports.MemoryStore = MemoryStore; diff --git a/node_modules/express-rate-limit/dist/index.d.cts b/node_modules/express-rate-limit/dist/index.d.cts deleted file mode 100644 index 62fe123..0000000 --- a/node_modules/express-rate-limit/dist/index.d.cts +++ /dev/null @@ -1,584 +0,0 @@ -// Generated by dts-bundle-generator v8.0.1 - -import { NextFunction, Request, RequestHandler, Response } from 'express'; - -declare const validations: { - enabled: { - [key: string]: boolean; - }; - disable(): void; - /** - * Checks whether the IP address is valid, and that it does not have a port - * number in it. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_invalid_ip_address. - * - * @param ip {string | undefined} - The IP address provided by Express as request.ip. - * - * @returns {void} - */ - ip(ip: string | undefined): void; - /** - * Makes sure the trust proxy setting is not set to `true`. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_permissive_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - trustProxy(request: Request): void; - /** - * Makes sure the trust proxy setting is set in case the `X-Forwarded-For` - * header is present. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_unset_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - xForwardedForHeader(request: Request): void; - /** - * Ensures totalHits value from store is a positive integer. - * - * @param hits {any} - The `totalHits` returned by the store. - */ - positiveHits(hits: any): void; - /** - * Ensures a single store instance is not used with multiple express-rate-limit instances - */ - unsharedStore(store: Store): void; - /** - * Ensures a given key is incremented only once per request. - * - * @param request {Request} - The Express request object. - * @param store {Store} - The store class. - * @param key {string} - The key used to store the client's hit count. - * - * @returns {void} - */ - singleCount(request: Request, store: Store, key: string): void; - /** - * Warns the user that the behaviour for `max: 0` / `limit: 0` is - * changing in the next major release. - * - * @param limit {number} - The maximum number of hits per client. - * - * @returns {void} - */ - limit(limit: number): void; - /** - * Warns the user that the `draft_polli_ratelimit_headers` option is deprecated - * and will be removed in the next major release. - * - * @param draft_polli_ratelimit_headers {any | undefined} - The now-deprecated setting that was used to enable standard headers. - * - * @returns {void} - */ - draftPolliHeaders(draft_polli_ratelimit_headers?: any): void; - /** - * Warns the user that the `onLimitReached` option is deprecated and - * will be removed in the next major release. - * - * @param onLimitReached {any | undefined} - The maximum number of hits per client. - * - * @returns {void} - */ - onLimitReached(onLimitReached?: any): void; - /** - * Warns the user when an invalid/unsupported version of the draft spec is passed. - * - * @param version {any | undefined} - The version passed by the user. - * - * @returns {void} - */ - headersDraftVersion(version?: any): void; - /** - * Warns the user when the selected headers option requires a reset time but - * the store does not provide one. - * - * @param resetTime {Date | undefined} - The timestamp when the client's hit count will be reset. - * - * @returns {void} - */ - headersResetTime(resetTime?: Date): void; - /** - * Checks the options.validate setting to ensure that only recognized - * validations are enabled or disabled. - * - * If any unrecognized values are found, an error is logged that - * includes the list of supported vaidations. - */ - validationsConfig(): void; - /** - * Checks to see if the instance was created inside of a request handler, - * which would prevent it from working correctly, with the default memory - * store (or any other store with localKeys.) - */ - creationStack(store: Store): void; -}; -export type Validations = typeof validations; -declare const SUPPORTED_DRAFT_VERSIONS: string[]; -/** - * Callback that fires when a client's hit counter is incremented. - * - * @param error {Error | undefined} - The error that occurred, if any. - * @param totalHits {number} - The number of hits for that client so far. - * @param resetTime {Date | undefined} - The time when the counter resets. - */ -export type IncrementCallback = (error: Error | undefined, totalHits: number, resetTime: Date | undefined) => void; -/** - * Method (in the form of middleware) to generate/retrieve a value based on the - * incoming request. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * - * @returns {T} - The value needed. - */ -export type ValueDeterminingMiddleware = (request: Request, response: Response) => T | Promise; -/** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param next {NextFunction} - The Express `next` function, can be called to skip responding. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitExceededEventHandler = (request: Request, response: Response, next: NextFunction, optionsUsed: Options) => void; -/** - * Event callback that is triggered on a client's first request that exceeds the limit - * but not for subsequent requests. May be used for logging, etc. Should *not* - * send a response. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitReachedEventHandler = (request: Request, response: Response, optionsUsed: Options) => void; -/** - * Data returned from the `Store` when a client's hit counter is incremented. - * - * @property totalHits {number} - The number of hits for that client so far. - * @property resetTime {Date | undefined} - The time when the counter resets. - */ -export type ClientRateLimitInfo = { - totalHits: number; - resetTime: Date | undefined; -}; -export type IncrementResponse = ClientRateLimitInfo; -/** - * A modified Express request handler with the rate limit functions. - */ -export type RateLimitRequestHandler = RequestHandler & { - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - getKey: (key: string) => Promise | ClientRateLimitInfo | undefined; -}; -/** - * An interface that all hit counter stores must implement. - * - * @deprecated 6.x - Implement the `Store` interface instead. - */ -export type LegacyStore = { - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * @param callback {IncrementCallback} - The callback to call once the counter is incremented. - */ - incr: (key: string, callback: IncrementCallback) => void; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => void; -}; -/** - * An interface that all hit counter stores must implement. - */ -export type Store = { - /** - * Method that initializes the store, and has access to the options passed to - * the middleware too. - * - * @param options {Options} - The options used to setup the middleware. - */ - init?: (options: Options) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - get?: (key: string) => Promise | ClientRateLimitInfo | undefined; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {IncrementResponse | undefined} - The number of hits and reset time for that client. - */ - increment: (key: string) => Promise | IncrementResponse; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => Promise | void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => Promise | void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => Promise | void; - /** - * Method to shutdown the store, stop timers, and release all resources. - */ - shutdown?: () => Promise | void; - /** - * Flag to indicate that keys incremented in one instance of this store can - * not affect other instances. Typically false if a database is used, true for - * MemoryStore. - * - * Used to help detect double-counting misconfigurations. - */ - localKeys?: boolean; - /** - * Optional value that the store prepends to keys - * - * Used by the double-count check to avoid false-positives when a key is counted twice, but with different prefixes - */ - prefix?: string; -}; -export type DraftHeadersVersion = (typeof SUPPORTED_DRAFT_VERSIONS)[number]; -/** - * Validate configuration object for enabling or disabling specific validations. - * - * The keys must also be keys in the validations object, except `enable`, `disable`, - * and `default`. - */ -export type EnabledValidations = { - [key in keyof Omit | "default"]?: boolean; -}; -/** - * The configuration options for the rate limiter. - */ -export type Options = { - /** - * How long we should remember the requests. - * - * Defaults to `60000` ms (= 1 minute). - */ - windowMs: number; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * Defaults to `5`. - */ - limit: number | ValueDeterminingMiddleware; - /** - * The response body to send back when a client is rate limited. - * - * Defaults to `'Too many requests, please try again later.'` - */ - message: any | ValueDeterminingMiddleware; - /** - * The HTTP status code to send back when a client is rate limited. - * - * Defaults to `HTTP 429 Too Many Requests` (RFC 6585). - */ - statusCode: number; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * Defaults to `true` (for backward compatibility). - */ - legacyHeaders: boolean; - /** - * Whether to enable support for the standardized rate limit headers (`RateLimit-*`). - * - * Defaults to `false` (for backward compatibility, but its use is recommended). - */ - standardHeaders: boolean | DraftHeadersVersion; - /** - * The name used to identify the quota policy in the `RateLimit` headers as per - * the 8th draft of the IETF specification. - * - * Defaults to `{limit}-in-{window}`. - */ - identifier: string | ValueDeterminingMiddleware; - /** - * The name of the property on the request object to store the rate limit info. - * - * Defaults to `rateLimit`. - */ - requestPropertyName: string; - /** - * If `true`, the library will (by default) skip all requests that have a 4XX - * or 5XX status. - * - * Defaults to `false`. - */ - skipFailedRequests: boolean; - /** - * If `true`, the library will (by default) skip all requests that have a - * status code less than 400. - * - * Defaults to `false`. - */ - skipSuccessfulRequests: boolean; - /** - * Method to generate custom identifiers for clients. - * - * By default, the client's IP address is used. - */ - keyGenerator: ValueDeterminingMiddleware; - /** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * By default, sends back the `statusCode` and `message` set via the options. - */ - handler: RateLimitExceededEventHandler; - /** - * Method (in the form of middleware) to determine whether or not this request - * counts towards a client's quota. - * - * By default, skips no requests. - */ - skip: ValueDeterminingMiddleware; - /** - * Method to determine whether or not the request counts as 'succesful'. Used - * when either `skipSuccessfulRequests` or `skipFailedRequests` is set to true. - * - * By default, requests with a response status code less than 400 are considered - * successful. - */ - requestWasSuccessful: ValueDeterminingMiddleware; - /** - * The `Store` to use to store the hit count for each client. - * - * By default, the built-in `MemoryStore` will be used. - */ - store: Store | LegacyStore; - /** - * The list of validation checks that should run. - */ - validate: boolean | EnabledValidations; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * @deprecated 6.x - This option was renamed to `legacyHeaders`. - */ - headers?: boolean; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * @deprecated 7.x - This option was renamed to `limit`. However, it will not - * be removed from the library in the foreseeable future. - */ - max?: number | ValueDeterminingMiddleware; - /** - * If the Store generates an error, allow the request to pass. - */ - passOnStoreError: boolean; -}; -/** - * The extended request object that includes information about the client's - * rate limit. - */ -export type AugmentedRequest = Request & { - [key: string]: RateLimitInfo; -}; -/** - * The rate limit related information for each client included in the - * Express request object. - */ -export type RateLimitInfo = { - limit: number; - used: number; - remaining: number; - resetTime: Date | undefined; -}; -/** - * - * Create an instance of IP rate-limiting middleware for Express. - * - * @param passedOptions {Options} - Options to configure the rate limiter. - * - * @returns {RateLimitRequestHandler} - The middleware that rate-limits clients based on your configuration. - * - * @public - */ -export declare const rateLimit: (passedOptions?: Partial) => RateLimitRequestHandler; -/** - * The record that stores information about a client - namely, how many times - * they have hit the endpoint, and when their hit count resets. - * - * Similar to `ClientRateLimitInfo`, except `resetTime` is a compulsory field. - */ -export type Client = { - totalHits: number; - resetTime: Date; -}; -/** - * A `Store` that stores the hit count for each client in memory. - * - * @public - */ -export declare class MemoryStore implements Store { - /** - * The duration of time before which all hit counts are reset (in milliseconds). - */ - windowMs: number; - /** - * These two maps store usage (requests) and reset time by key (for example, IP - * addresses or API keys). - * - * They are split into two to avoid having to iterate through the entire set to - * determine which ones need reset. Instead, `Client`s are moved from `previous` - * to `current` as they hit the endpoint. Once `windowMs` has elapsed, all clients - * left in `previous`, i.e., those that have not made any recent requests, are - * known to be expired and can be deleted in bulk. - */ - previous: Map; - current: Map; - /** - * A reference to the active timer. - */ - interval?: NodeJS.Timeout; - /** - * Confirmation that the keys incremented in once instance of MemoryStore - * cannot affect other instances. - */ - localKeys: boolean; - /** - * Method that initializes the store. - * - * @param options {Options} - The options used to setup the middleware. - */ - init(options: Options): void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo | undefined} - The number of hits and reset time for that client. - * - * @public - */ - get(key: string): Promise; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - * - * @public - */ - increment(key: string): Promise; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - decrement(key: string): Promise; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - resetKey(key: string): Promise; - /** - * Method to reset everyone's hit counter. - * - * @public - */ - resetAll(): Promise; - /** - * Method to stop the timer (if currently running) and prevent any memory - * leaks. - * - * @public - */ - shutdown(): void; - /** - * Recycles a client by setting its hit count to zero, and reset time to - * `windowMs` milliseconds from now. - * - * NOT to be confused with `#resetKey()`, which removes a client from both the - * `current` and `previous` maps. - * - * @param client {Client} - The client to recycle. - * @param now {number} - The current time, to which the `windowMs` is added to get the `resetTime` for the client. - * - * @return {Client} - The modified client that was passed in, to allow for chaining. - */ - private resetClient; - /** - * Retrieves or creates a client, given a key. Also ensures that the client being - * returned is in the `current` map. - * - * @param key {string} - The key under which the client is (or is to be) stored. - * - * @returns {Client} - The requested client. - */ - private getClient; - /** - * Move current clients to previous, create a new map for current. - * - * This function is called every `windowMs`. - */ - private clearExpired; -} - -export { - rateLimit as default, -}; - -export {}; diff --git a/node_modules/express-rate-limit/dist/index.d.mts b/node_modules/express-rate-limit/dist/index.d.mts deleted file mode 100644 index 62fe123..0000000 --- a/node_modules/express-rate-limit/dist/index.d.mts +++ /dev/null @@ -1,584 +0,0 @@ -// Generated by dts-bundle-generator v8.0.1 - -import { NextFunction, Request, RequestHandler, Response } from 'express'; - -declare const validations: { - enabled: { - [key: string]: boolean; - }; - disable(): void; - /** - * Checks whether the IP address is valid, and that it does not have a port - * number in it. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_invalid_ip_address. - * - * @param ip {string | undefined} - The IP address provided by Express as request.ip. - * - * @returns {void} - */ - ip(ip: string | undefined): void; - /** - * Makes sure the trust proxy setting is not set to `true`. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_permissive_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - trustProxy(request: Request): void; - /** - * Makes sure the trust proxy setting is set in case the `X-Forwarded-For` - * header is present. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_unset_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - xForwardedForHeader(request: Request): void; - /** - * Ensures totalHits value from store is a positive integer. - * - * @param hits {any} - The `totalHits` returned by the store. - */ - positiveHits(hits: any): void; - /** - * Ensures a single store instance is not used with multiple express-rate-limit instances - */ - unsharedStore(store: Store): void; - /** - * Ensures a given key is incremented only once per request. - * - * @param request {Request} - The Express request object. - * @param store {Store} - The store class. - * @param key {string} - The key used to store the client's hit count. - * - * @returns {void} - */ - singleCount(request: Request, store: Store, key: string): void; - /** - * Warns the user that the behaviour for `max: 0` / `limit: 0` is - * changing in the next major release. - * - * @param limit {number} - The maximum number of hits per client. - * - * @returns {void} - */ - limit(limit: number): void; - /** - * Warns the user that the `draft_polli_ratelimit_headers` option is deprecated - * and will be removed in the next major release. - * - * @param draft_polli_ratelimit_headers {any | undefined} - The now-deprecated setting that was used to enable standard headers. - * - * @returns {void} - */ - draftPolliHeaders(draft_polli_ratelimit_headers?: any): void; - /** - * Warns the user that the `onLimitReached` option is deprecated and - * will be removed in the next major release. - * - * @param onLimitReached {any | undefined} - The maximum number of hits per client. - * - * @returns {void} - */ - onLimitReached(onLimitReached?: any): void; - /** - * Warns the user when an invalid/unsupported version of the draft spec is passed. - * - * @param version {any | undefined} - The version passed by the user. - * - * @returns {void} - */ - headersDraftVersion(version?: any): void; - /** - * Warns the user when the selected headers option requires a reset time but - * the store does not provide one. - * - * @param resetTime {Date | undefined} - The timestamp when the client's hit count will be reset. - * - * @returns {void} - */ - headersResetTime(resetTime?: Date): void; - /** - * Checks the options.validate setting to ensure that only recognized - * validations are enabled or disabled. - * - * If any unrecognized values are found, an error is logged that - * includes the list of supported vaidations. - */ - validationsConfig(): void; - /** - * Checks to see if the instance was created inside of a request handler, - * which would prevent it from working correctly, with the default memory - * store (or any other store with localKeys.) - */ - creationStack(store: Store): void; -}; -export type Validations = typeof validations; -declare const SUPPORTED_DRAFT_VERSIONS: string[]; -/** - * Callback that fires when a client's hit counter is incremented. - * - * @param error {Error | undefined} - The error that occurred, if any. - * @param totalHits {number} - The number of hits for that client so far. - * @param resetTime {Date | undefined} - The time when the counter resets. - */ -export type IncrementCallback = (error: Error | undefined, totalHits: number, resetTime: Date | undefined) => void; -/** - * Method (in the form of middleware) to generate/retrieve a value based on the - * incoming request. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * - * @returns {T} - The value needed. - */ -export type ValueDeterminingMiddleware = (request: Request, response: Response) => T | Promise; -/** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param next {NextFunction} - The Express `next` function, can be called to skip responding. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitExceededEventHandler = (request: Request, response: Response, next: NextFunction, optionsUsed: Options) => void; -/** - * Event callback that is triggered on a client's first request that exceeds the limit - * but not for subsequent requests. May be used for logging, etc. Should *not* - * send a response. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitReachedEventHandler = (request: Request, response: Response, optionsUsed: Options) => void; -/** - * Data returned from the `Store` when a client's hit counter is incremented. - * - * @property totalHits {number} - The number of hits for that client so far. - * @property resetTime {Date | undefined} - The time when the counter resets. - */ -export type ClientRateLimitInfo = { - totalHits: number; - resetTime: Date | undefined; -}; -export type IncrementResponse = ClientRateLimitInfo; -/** - * A modified Express request handler with the rate limit functions. - */ -export type RateLimitRequestHandler = RequestHandler & { - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - getKey: (key: string) => Promise | ClientRateLimitInfo | undefined; -}; -/** - * An interface that all hit counter stores must implement. - * - * @deprecated 6.x - Implement the `Store` interface instead. - */ -export type LegacyStore = { - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * @param callback {IncrementCallback} - The callback to call once the counter is incremented. - */ - incr: (key: string, callback: IncrementCallback) => void; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => void; -}; -/** - * An interface that all hit counter stores must implement. - */ -export type Store = { - /** - * Method that initializes the store, and has access to the options passed to - * the middleware too. - * - * @param options {Options} - The options used to setup the middleware. - */ - init?: (options: Options) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - get?: (key: string) => Promise | ClientRateLimitInfo | undefined; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {IncrementResponse | undefined} - The number of hits and reset time for that client. - */ - increment: (key: string) => Promise | IncrementResponse; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => Promise | void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => Promise | void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => Promise | void; - /** - * Method to shutdown the store, stop timers, and release all resources. - */ - shutdown?: () => Promise | void; - /** - * Flag to indicate that keys incremented in one instance of this store can - * not affect other instances. Typically false if a database is used, true for - * MemoryStore. - * - * Used to help detect double-counting misconfigurations. - */ - localKeys?: boolean; - /** - * Optional value that the store prepends to keys - * - * Used by the double-count check to avoid false-positives when a key is counted twice, but with different prefixes - */ - prefix?: string; -}; -export type DraftHeadersVersion = (typeof SUPPORTED_DRAFT_VERSIONS)[number]; -/** - * Validate configuration object for enabling or disabling specific validations. - * - * The keys must also be keys in the validations object, except `enable`, `disable`, - * and `default`. - */ -export type EnabledValidations = { - [key in keyof Omit | "default"]?: boolean; -}; -/** - * The configuration options for the rate limiter. - */ -export type Options = { - /** - * How long we should remember the requests. - * - * Defaults to `60000` ms (= 1 minute). - */ - windowMs: number; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * Defaults to `5`. - */ - limit: number | ValueDeterminingMiddleware; - /** - * The response body to send back when a client is rate limited. - * - * Defaults to `'Too many requests, please try again later.'` - */ - message: any | ValueDeterminingMiddleware; - /** - * The HTTP status code to send back when a client is rate limited. - * - * Defaults to `HTTP 429 Too Many Requests` (RFC 6585). - */ - statusCode: number; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * Defaults to `true` (for backward compatibility). - */ - legacyHeaders: boolean; - /** - * Whether to enable support for the standardized rate limit headers (`RateLimit-*`). - * - * Defaults to `false` (for backward compatibility, but its use is recommended). - */ - standardHeaders: boolean | DraftHeadersVersion; - /** - * The name used to identify the quota policy in the `RateLimit` headers as per - * the 8th draft of the IETF specification. - * - * Defaults to `{limit}-in-{window}`. - */ - identifier: string | ValueDeterminingMiddleware; - /** - * The name of the property on the request object to store the rate limit info. - * - * Defaults to `rateLimit`. - */ - requestPropertyName: string; - /** - * If `true`, the library will (by default) skip all requests that have a 4XX - * or 5XX status. - * - * Defaults to `false`. - */ - skipFailedRequests: boolean; - /** - * If `true`, the library will (by default) skip all requests that have a - * status code less than 400. - * - * Defaults to `false`. - */ - skipSuccessfulRequests: boolean; - /** - * Method to generate custom identifiers for clients. - * - * By default, the client's IP address is used. - */ - keyGenerator: ValueDeterminingMiddleware; - /** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * By default, sends back the `statusCode` and `message` set via the options. - */ - handler: RateLimitExceededEventHandler; - /** - * Method (in the form of middleware) to determine whether or not this request - * counts towards a client's quota. - * - * By default, skips no requests. - */ - skip: ValueDeterminingMiddleware; - /** - * Method to determine whether or not the request counts as 'succesful'. Used - * when either `skipSuccessfulRequests` or `skipFailedRequests` is set to true. - * - * By default, requests with a response status code less than 400 are considered - * successful. - */ - requestWasSuccessful: ValueDeterminingMiddleware; - /** - * The `Store` to use to store the hit count for each client. - * - * By default, the built-in `MemoryStore` will be used. - */ - store: Store | LegacyStore; - /** - * The list of validation checks that should run. - */ - validate: boolean | EnabledValidations; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * @deprecated 6.x - This option was renamed to `legacyHeaders`. - */ - headers?: boolean; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * @deprecated 7.x - This option was renamed to `limit`. However, it will not - * be removed from the library in the foreseeable future. - */ - max?: number | ValueDeterminingMiddleware; - /** - * If the Store generates an error, allow the request to pass. - */ - passOnStoreError: boolean; -}; -/** - * The extended request object that includes information about the client's - * rate limit. - */ -export type AugmentedRequest = Request & { - [key: string]: RateLimitInfo; -}; -/** - * The rate limit related information for each client included in the - * Express request object. - */ -export type RateLimitInfo = { - limit: number; - used: number; - remaining: number; - resetTime: Date | undefined; -}; -/** - * - * Create an instance of IP rate-limiting middleware for Express. - * - * @param passedOptions {Options} - Options to configure the rate limiter. - * - * @returns {RateLimitRequestHandler} - The middleware that rate-limits clients based on your configuration. - * - * @public - */ -export declare const rateLimit: (passedOptions?: Partial) => RateLimitRequestHandler; -/** - * The record that stores information about a client - namely, how many times - * they have hit the endpoint, and when their hit count resets. - * - * Similar to `ClientRateLimitInfo`, except `resetTime` is a compulsory field. - */ -export type Client = { - totalHits: number; - resetTime: Date; -}; -/** - * A `Store` that stores the hit count for each client in memory. - * - * @public - */ -export declare class MemoryStore implements Store { - /** - * The duration of time before which all hit counts are reset (in milliseconds). - */ - windowMs: number; - /** - * These two maps store usage (requests) and reset time by key (for example, IP - * addresses or API keys). - * - * They are split into two to avoid having to iterate through the entire set to - * determine which ones need reset. Instead, `Client`s are moved from `previous` - * to `current` as they hit the endpoint. Once `windowMs` has elapsed, all clients - * left in `previous`, i.e., those that have not made any recent requests, are - * known to be expired and can be deleted in bulk. - */ - previous: Map; - current: Map; - /** - * A reference to the active timer. - */ - interval?: NodeJS.Timeout; - /** - * Confirmation that the keys incremented in once instance of MemoryStore - * cannot affect other instances. - */ - localKeys: boolean; - /** - * Method that initializes the store. - * - * @param options {Options} - The options used to setup the middleware. - */ - init(options: Options): void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo | undefined} - The number of hits and reset time for that client. - * - * @public - */ - get(key: string): Promise; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - * - * @public - */ - increment(key: string): Promise; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - decrement(key: string): Promise; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - resetKey(key: string): Promise; - /** - * Method to reset everyone's hit counter. - * - * @public - */ - resetAll(): Promise; - /** - * Method to stop the timer (if currently running) and prevent any memory - * leaks. - * - * @public - */ - shutdown(): void; - /** - * Recycles a client by setting its hit count to zero, and reset time to - * `windowMs` milliseconds from now. - * - * NOT to be confused with `#resetKey()`, which removes a client from both the - * `current` and `previous` maps. - * - * @param client {Client} - The client to recycle. - * @param now {number} - The current time, to which the `windowMs` is added to get the `resetTime` for the client. - * - * @return {Client} - The modified client that was passed in, to allow for chaining. - */ - private resetClient; - /** - * Retrieves or creates a client, given a key. Also ensures that the client being - * returned is in the `current` map. - * - * @param key {string} - The key under which the client is (or is to be) stored. - * - * @returns {Client} - The requested client. - */ - private getClient; - /** - * Move current clients to previous, create a new map for current. - * - * This function is called every `windowMs`. - */ - private clearExpired; -} - -export { - rateLimit as default, -}; - -export {}; diff --git a/node_modules/express-rate-limit/dist/index.d.ts b/node_modules/express-rate-limit/dist/index.d.ts deleted file mode 100644 index 62fe123..0000000 --- a/node_modules/express-rate-limit/dist/index.d.ts +++ /dev/null @@ -1,584 +0,0 @@ -// Generated by dts-bundle-generator v8.0.1 - -import { NextFunction, Request, RequestHandler, Response } from 'express'; - -declare const validations: { - enabled: { - [key: string]: boolean; - }; - disable(): void; - /** - * Checks whether the IP address is valid, and that it does not have a port - * number in it. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_invalid_ip_address. - * - * @param ip {string | undefined} - The IP address provided by Express as request.ip. - * - * @returns {void} - */ - ip(ip: string | undefined): void; - /** - * Makes sure the trust proxy setting is not set to `true`. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_permissive_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - trustProxy(request: Request): void; - /** - * Makes sure the trust proxy setting is set in case the `X-Forwarded-For` - * header is present. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_unset_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - xForwardedForHeader(request: Request): void; - /** - * Ensures totalHits value from store is a positive integer. - * - * @param hits {any} - The `totalHits` returned by the store. - */ - positiveHits(hits: any): void; - /** - * Ensures a single store instance is not used with multiple express-rate-limit instances - */ - unsharedStore(store: Store): void; - /** - * Ensures a given key is incremented only once per request. - * - * @param request {Request} - The Express request object. - * @param store {Store} - The store class. - * @param key {string} - The key used to store the client's hit count. - * - * @returns {void} - */ - singleCount(request: Request, store: Store, key: string): void; - /** - * Warns the user that the behaviour for `max: 0` / `limit: 0` is - * changing in the next major release. - * - * @param limit {number} - The maximum number of hits per client. - * - * @returns {void} - */ - limit(limit: number): void; - /** - * Warns the user that the `draft_polli_ratelimit_headers` option is deprecated - * and will be removed in the next major release. - * - * @param draft_polli_ratelimit_headers {any | undefined} - The now-deprecated setting that was used to enable standard headers. - * - * @returns {void} - */ - draftPolliHeaders(draft_polli_ratelimit_headers?: any): void; - /** - * Warns the user that the `onLimitReached` option is deprecated and - * will be removed in the next major release. - * - * @param onLimitReached {any | undefined} - The maximum number of hits per client. - * - * @returns {void} - */ - onLimitReached(onLimitReached?: any): void; - /** - * Warns the user when an invalid/unsupported version of the draft spec is passed. - * - * @param version {any | undefined} - The version passed by the user. - * - * @returns {void} - */ - headersDraftVersion(version?: any): void; - /** - * Warns the user when the selected headers option requires a reset time but - * the store does not provide one. - * - * @param resetTime {Date | undefined} - The timestamp when the client's hit count will be reset. - * - * @returns {void} - */ - headersResetTime(resetTime?: Date): void; - /** - * Checks the options.validate setting to ensure that only recognized - * validations are enabled or disabled. - * - * If any unrecognized values are found, an error is logged that - * includes the list of supported vaidations. - */ - validationsConfig(): void; - /** - * Checks to see if the instance was created inside of a request handler, - * which would prevent it from working correctly, with the default memory - * store (or any other store with localKeys.) - */ - creationStack(store: Store): void; -}; -export type Validations = typeof validations; -declare const SUPPORTED_DRAFT_VERSIONS: string[]; -/** - * Callback that fires when a client's hit counter is incremented. - * - * @param error {Error | undefined} - The error that occurred, if any. - * @param totalHits {number} - The number of hits for that client so far. - * @param resetTime {Date | undefined} - The time when the counter resets. - */ -export type IncrementCallback = (error: Error | undefined, totalHits: number, resetTime: Date | undefined) => void; -/** - * Method (in the form of middleware) to generate/retrieve a value based on the - * incoming request. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * - * @returns {T} - The value needed. - */ -export type ValueDeterminingMiddleware = (request: Request, response: Response) => T | Promise; -/** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param next {NextFunction} - The Express `next` function, can be called to skip responding. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitExceededEventHandler = (request: Request, response: Response, next: NextFunction, optionsUsed: Options) => void; -/** - * Event callback that is triggered on a client's first request that exceeds the limit - * but not for subsequent requests. May be used for logging, etc. Should *not* - * send a response. - * - * @param request {Request} - The Express request object. - * @param response {Response} - The Express response object. - * @param optionsUsed {Options} - The options used to set up the middleware. - */ -export type RateLimitReachedEventHandler = (request: Request, response: Response, optionsUsed: Options) => void; -/** - * Data returned from the `Store` when a client's hit counter is incremented. - * - * @property totalHits {number} - The number of hits for that client so far. - * @property resetTime {Date | undefined} - The time when the counter resets. - */ -export type ClientRateLimitInfo = { - totalHits: number; - resetTime: Date | undefined; -}; -export type IncrementResponse = ClientRateLimitInfo; -/** - * A modified Express request handler with the rate limit functions. - */ -export type RateLimitRequestHandler = RequestHandler & { - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - getKey: (key: string) => Promise | ClientRateLimitInfo | undefined; -}; -/** - * An interface that all hit counter stores must implement. - * - * @deprecated 6.x - Implement the `Store` interface instead. - */ -export type LegacyStore = { - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * @param callback {IncrementCallback} - The callback to call once the counter is incremented. - */ - incr: (key: string, callback: IncrementCallback) => void; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => void; -}; -/** - * An interface that all hit counter stores must implement. - */ -export type Store = { - /** - * Method that initializes the store, and has access to the options passed to - * the middleware too. - * - * @param options {Options} - The options used to setup the middleware. - */ - init?: (options: Options) => void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - */ - get?: (key: string) => Promise | ClientRateLimitInfo | undefined; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {IncrementResponse | undefined} - The number of hits and reset time for that client. - */ - increment: (key: string) => Promise | IncrementResponse; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - decrement: (key: string) => Promise | void; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - */ - resetKey: (key: string) => Promise | void; - /** - * Method to reset everyone's hit counter. - */ - resetAll?: () => Promise | void; - /** - * Method to shutdown the store, stop timers, and release all resources. - */ - shutdown?: () => Promise | void; - /** - * Flag to indicate that keys incremented in one instance of this store can - * not affect other instances. Typically false if a database is used, true for - * MemoryStore. - * - * Used to help detect double-counting misconfigurations. - */ - localKeys?: boolean; - /** - * Optional value that the store prepends to keys - * - * Used by the double-count check to avoid false-positives when a key is counted twice, but with different prefixes - */ - prefix?: string; -}; -export type DraftHeadersVersion = (typeof SUPPORTED_DRAFT_VERSIONS)[number]; -/** - * Validate configuration object for enabling or disabling specific validations. - * - * The keys must also be keys in the validations object, except `enable`, `disable`, - * and `default`. - */ -export type EnabledValidations = { - [key in keyof Omit | "default"]?: boolean; -}; -/** - * The configuration options for the rate limiter. - */ -export type Options = { - /** - * How long we should remember the requests. - * - * Defaults to `60000` ms (= 1 minute). - */ - windowMs: number; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * Defaults to `5`. - */ - limit: number | ValueDeterminingMiddleware; - /** - * The response body to send back when a client is rate limited. - * - * Defaults to `'Too many requests, please try again later.'` - */ - message: any | ValueDeterminingMiddleware; - /** - * The HTTP status code to send back when a client is rate limited. - * - * Defaults to `HTTP 429 Too Many Requests` (RFC 6585). - */ - statusCode: number; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * Defaults to `true` (for backward compatibility). - */ - legacyHeaders: boolean; - /** - * Whether to enable support for the standardized rate limit headers (`RateLimit-*`). - * - * Defaults to `false` (for backward compatibility, but its use is recommended). - */ - standardHeaders: boolean | DraftHeadersVersion; - /** - * The name used to identify the quota policy in the `RateLimit` headers as per - * the 8th draft of the IETF specification. - * - * Defaults to `{limit}-in-{window}`. - */ - identifier: string | ValueDeterminingMiddleware; - /** - * The name of the property on the request object to store the rate limit info. - * - * Defaults to `rateLimit`. - */ - requestPropertyName: string; - /** - * If `true`, the library will (by default) skip all requests that have a 4XX - * or 5XX status. - * - * Defaults to `false`. - */ - skipFailedRequests: boolean; - /** - * If `true`, the library will (by default) skip all requests that have a - * status code less than 400. - * - * Defaults to `false`. - */ - skipSuccessfulRequests: boolean; - /** - * Method to generate custom identifiers for clients. - * - * By default, the client's IP address is used. - */ - keyGenerator: ValueDeterminingMiddleware; - /** - * Express request handler that sends back a response when a client is - * rate-limited. - * - * By default, sends back the `statusCode` and `message` set via the options. - */ - handler: RateLimitExceededEventHandler; - /** - * Method (in the form of middleware) to determine whether or not this request - * counts towards a client's quota. - * - * By default, skips no requests. - */ - skip: ValueDeterminingMiddleware; - /** - * Method to determine whether or not the request counts as 'succesful'. Used - * when either `skipSuccessfulRequests` or `skipFailedRequests` is set to true. - * - * By default, requests with a response status code less than 400 are considered - * successful. - */ - requestWasSuccessful: ValueDeterminingMiddleware; - /** - * The `Store` to use to store the hit count for each client. - * - * By default, the built-in `MemoryStore` will be used. - */ - store: Store | LegacyStore; - /** - * The list of validation checks that should run. - */ - validate: boolean | EnabledValidations; - /** - * Whether to send `X-RateLimit-*` headers with the rate limit and the number - * of requests. - * - * @deprecated 6.x - This option was renamed to `legacyHeaders`. - */ - headers?: boolean; - /** - * The maximum number of connections to allow during the `window` before - * rate limiting the client. - * - * Can be the limit itself as a number or express middleware that parses - * the request and then figures out the limit. - * - * @deprecated 7.x - This option was renamed to `limit`. However, it will not - * be removed from the library in the foreseeable future. - */ - max?: number | ValueDeterminingMiddleware; - /** - * If the Store generates an error, allow the request to pass. - */ - passOnStoreError: boolean; -}; -/** - * The extended request object that includes information about the client's - * rate limit. - */ -export type AugmentedRequest = Request & { - [key: string]: RateLimitInfo; -}; -/** - * The rate limit related information for each client included in the - * Express request object. - */ -export type RateLimitInfo = { - limit: number; - used: number; - remaining: number; - resetTime: Date | undefined; -}; -/** - * - * Create an instance of IP rate-limiting middleware for Express. - * - * @param passedOptions {Options} - Options to configure the rate limiter. - * - * @returns {RateLimitRequestHandler} - The middleware that rate-limits clients based on your configuration. - * - * @public - */ -export declare const rateLimit: (passedOptions?: Partial) => RateLimitRequestHandler; -/** - * The record that stores information about a client - namely, how many times - * they have hit the endpoint, and when their hit count resets. - * - * Similar to `ClientRateLimitInfo`, except `resetTime` is a compulsory field. - */ -export type Client = { - totalHits: number; - resetTime: Date; -}; -/** - * A `Store` that stores the hit count for each client in memory. - * - * @public - */ -export declare class MemoryStore implements Store { - /** - * The duration of time before which all hit counts are reset (in milliseconds). - */ - windowMs: number; - /** - * These two maps store usage (requests) and reset time by key (for example, IP - * addresses or API keys). - * - * They are split into two to avoid having to iterate through the entire set to - * determine which ones need reset. Instead, `Client`s are moved from `previous` - * to `current` as they hit the endpoint. Once `windowMs` has elapsed, all clients - * left in `previous`, i.e., those that have not made any recent requests, are - * known to be expired and can be deleted in bulk. - */ - previous: Map; - current: Map; - /** - * A reference to the active timer. - */ - interval?: NodeJS.Timeout; - /** - * Confirmation that the keys incremented in once instance of MemoryStore - * cannot affect other instances. - */ - localKeys: boolean; - /** - * Method that initializes the store. - * - * @param options {Options} - The options used to setup the middleware. - */ - init(options: Options): void; - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo | undefined} - The number of hits and reset time for that client. - * - * @public - */ - get(key: string): Promise; - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - * - * @public - */ - increment(key: string): Promise; - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - decrement(key: string): Promise; - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - resetKey(key: string): Promise; - /** - * Method to reset everyone's hit counter. - * - * @public - */ - resetAll(): Promise; - /** - * Method to stop the timer (if currently running) and prevent any memory - * leaks. - * - * @public - */ - shutdown(): void; - /** - * Recycles a client by setting its hit count to zero, and reset time to - * `windowMs` milliseconds from now. - * - * NOT to be confused with `#resetKey()`, which removes a client from both the - * `current` and `previous` maps. - * - * @param client {Client} - The client to recycle. - * @param now {number} - The current time, to which the `windowMs` is added to get the `resetTime` for the client. - * - * @return {Client} - The modified client that was passed in, to allow for chaining. - */ - private resetClient; - /** - * Retrieves or creates a client, given a key. Also ensures that the client being - * returned is in the `current` map. - * - * @param key {string} - The key under which the client is (or is to be) stored. - * - * @returns {Client} - The requested client. - */ - private getClient; - /** - * Move current clients to previous, create a new map for current. - * - * This function is called every `windowMs`. - */ - private clearExpired; -} - -export { - rateLimit as default, -}; - -export {}; diff --git a/node_modules/express-rate-limit/dist/index.mjs b/node_modules/express-rate-limit/dist/index.mjs deleted file mode 100644 index f8b70ce..0000000 --- a/node_modules/express-rate-limit/dist/index.mjs +++ /dev/null @@ -1,809 +0,0 @@ -// source/headers.ts -import { Buffer } from "buffer"; -import { createHash } from "crypto"; -var SUPPORTED_DRAFT_VERSIONS = ["draft-6", "draft-7", "draft-8"]; -var getResetSeconds = (resetTime, windowMs) => { - let resetSeconds = void 0; - if (resetTime) { - const deltaSeconds = Math.ceil((resetTime.getTime() - Date.now()) / 1e3); - resetSeconds = Math.max(0, deltaSeconds); - } else if (windowMs) { - resetSeconds = Math.ceil(windowMs / 1e3); - } - return resetSeconds; -}; -var getPartitionKey = (key) => { - const hash = createHash("sha256"); - hash.update(key); - const partitionKey = hash.digest("hex").slice(0, 12); - return Buffer.from(partitionKey).toString("base64"); -}; -var setLegacyHeaders = (response, info) => { - if (response.headersSent) - return; - response.setHeader("X-RateLimit-Limit", info.limit.toString()); - response.setHeader("X-RateLimit-Remaining", info.remaining.toString()); - if (info.resetTime instanceof Date) { - response.setHeader("Date", (/* @__PURE__ */ new Date()).toUTCString()); - response.setHeader( - "X-RateLimit-Reset", - Math.ceil(info.resetTime.getTime() / 1e3).toString() - ); - } -}; -var setDraft6Headers = (response, info, windowMs) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime); - response.setHeader("RateLimit-Policy", `${info.limit};w=${windowSeconds}`); - response.setHeader("RateLimit-Limit", info.limit.toString()); - response.setHeader("RateLimit-Remaining", info.remaining.toString()); - if (resetSeconds) - response.setHeader("RateLimit-Reset", resetSeconds.toString()); -}; -var setDraft7Headers = (response, info, windowMs) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - response.setHeader("RateLimit-Policy", `${info.limit};w=${windowSeconds}`); - response.setHeader( - "RateLimit", - `limit=${info.limit}, remaining=${info.remaining}, reset=${resetSeconds}` - ); -}; -var setDraft8Headers = (response, info, windowMs, name, key) => { - if (response.headersSent) - return; - const windowSeconds = Math.ceil(windowMs / 1e3); - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - const partitionKey = getPartitionKey(key); - const policy = `q=${info.limit}; w=${windowSeconds}; pk=:${partitionKey}:`; - const header = `r=${info.remaining}; t=${resetSeconds}`; - response.append("RateLimit-Policy", `"${name}"; ${policy}`); - response.append("RateLimit", `"${name}"; ${header}`); -}; -var setRetryAfterHeader = (response, info, windowMs) => { - if (response.headersSent) - return; - const resetSeconds = getResetSeconds(info.resetTime, windowMs); - response.setHeader("Retry-After", resetSeconds.toString()); -}; - -// source/validations.ts -import { isIP } from "net"; -var ValidationError = class extends Error { - /** - * The code must be a string, in snake case and all capital, that starts with - * the substring `ERR_ERL_`. - * - * The message must be a string, starting with an uppercase character, - * describing the issue in detail. - */ - constructor(code, message) { - const url = `https://express-rate-limit.github.io/${code}/`; - super(`${message} See ${url} for more information.`); - this.name = this.constructor.name; - this.code = code; - this.help = url; - } -}; -var ChangeWarning = class extends ValidationError { -}; -var usedStores = /* @__PURE__ */ new Set(); -var singleCountKeys = /* @__PURE__ */ new WeakMap(); -var validations = { - // eslint-disable-next-line @typescript-eslint/consistent-type-assertions - enabled: { - default: true - }, - // Should be EnabledValidations type, but that's a circular reference - disable() { - for (const k of Object.keys(this.enabled)) - this.enabled[k] = false; - }, - /** - * Checks whether the IP address is valid, and that it does not have a port - * number in it. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_invalid_ip_address. - * - * @param ip {string | undefined} - The IP address provided by Express as request.ip. - * - * @returns {void} - */ - ip(ip) { - if (ip === void 0) { - throw new ValidationError( - "ERR_ERL_UNDEFINED_IP_ADDRESS", - `An undefined 'request.ip' was detected. This might indicate a misconfiguration or the connection being destroyed prematurely.` - ); - } - if (!isIP(ip)) { - throw new ValidationError( - "ERR_ERL_INVALID_IP_ADDRESS", - `An invalid 'request.ip' (${ip}) was detected. Consider passing a custom 'keyGenerator' function to the rate limiter.` - ); - } - }, - /** - * Makes sure the trust proxy setting is not set to `true`. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_permissive_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - trustProxy(request) { - if (request.app.get("trust proxy") === true) { - throw new ValidationError( - "ERR_ERL_PERMISSIVE_TRUST_PROXY", - `The Express 'trust proxy' setting is true, which allows anyone to trivially bypass IP-based rate limiting.` - ); - } - }, - /** - * Makes sure the trust proxy setting is set in case the `X-Forwarded-For` - * header is present. - * - * See https://github.com/express-rate-limit/express-rate-limit/wiki/Error-Codes#err_erl_unset_trust_proxy. - * - * @param request {Request} - The Express request object. - * - * @returns {void} - */ - xForwardedForHeader(request) { - if (request.headers["x-forwarded-for"] && request.app.get("trust proxy") === false) { - throw new ValidationError( - "ERR_ERL_UNEXPECTED_X_FORWARDED_FOR", - `The 'X-Forwarded-For' header is set but the Express 'trust proxy' setting is false (default). This could indicate a misconfiguration which would prevent express-rate-limit from accurately identifying users.` - ); - } - }, - /** - * Ensures totalHits value from store is a positive integer. - * - * @param hits {any} - The `totalHits` returned by the store. - */ - positiveHits(hits) { - if (typeof hits !== "number" || hits < 1 || hits !== Math.round(hits)) { - throw new ValidationError( - "ERR_ERL_INVALID_HITS", - `The totalHits value returned from the store must be a positive integer, got ${hits}` - ); - } - }, - /** - * Ensures a single store instance is not used with multiple express-rate-limit instances - */ - unsharedStore(store) { - if (usedStores.has(store)) { - const maybeUniquePrefix = store?.localKeys ? "" : " (with a unique prefix)"; - throw new ValidationError( - "ERR_ERL_STORE_REUSE", - `A Store instance must not be shared across multiple rate limiters. Create a new instance of ${store.constructor.name}${maybeUniquePrefix} for each limiter instead.` - ); - } - usedStores.add(store); - }, - /** - * Ensures a given key is incremented only once per request. - * - * @param request {Request} - The Express request object. - * @param store {Store} - The store class. - * @param key {string} - The key used to store the client's hit count. - * - * @returns {void} - */ - singleCount(request, store, key) { - let storeKeys = singleCountKeys.get(request); - if (!storeKeys) { - storeKeys = /* @__PURE__ */ new Map(); - singleCountKeys.set(request, storeKeys); - } - const storeKey = store.localKeys ? store : store.constructor.name; - let keys = storeKeys.get(storeKey); - if (!keys) { - keys = []; - storeKeys.set(storeKey, keys); - } - const prefixedKey = `${store.prefix ?? ""}${key}`; - if (keys.includes(prefixedKey)) { - throw new ValidationError( - "ERR_ERL_DOUBLE_COUNT", - `The hit count for ${key} was incremented more than once for a single request.` - ); - } - keys.push(prefixedKey); - }, - /** - * Warns the user that the behaviour for `max: 0` / `limit: 0` is - * changing in the next major release. - * - * @param limit {number} - The maximum number of hits per client. - * - * @returns {void} - */ - limit(limit) { - if (limit === 0) { - throw new ChangeWarning( - "WRN_ERL_MAX_ZERO", - `Setting limit or max to 0 disables rate limiting in express-rate-limit v6 and older, but will cause all requests to be blocked in v7` - ); - } - }, - /** - * Warns the user that the `draft_polli_ratelimit_headers` option is deprecated - * and will be removed in the next major release. - * - * @param draft_polli_ratelimit_headers {any | undefined} - The now-deprecated setting that was used to enable standard headers. - * - * @returns {void} - */ - draftPolliHeaders(draft_polli_ratelimit_headers) { - if (draft_polli_ratelimit_headers) { - throw new ChangeWarning( - "WRN_ERL_DEPRECATED_DRAFT_POLLI_HEADERS", - `The draft_polli_ratelimit_headers configuration option is deprecated and has been removed in express-rate-limit v7, please set standardHeaders: 'draft-6' instead.` - ); - } - }, - /** - * Warns the user that the `onLimitReached` option is deprecated and - * will be removed in the next major release. - * - * @param onLimitReached {any | undefined} - The maximum number of hits per client. - * - * @returns {void} - */ - onLimitReached(onLimitReached) { - if (onLimitReached) { - throw new ChangeWarning( - "WRN_ERL_DEPRECATED_ON_LIMIT_REACHED", - `The onLimitReached configuration option is deprecated and has been removed in express-rate-limit v7.` - ); - } - }, - /** - * Warns the user when an invalid/unsupported version of the draft spec is passed. - * - * @param version {any | undefined} - The version passed by the user. - * - * @returns {void} - */ - headersDraftVersion(version) { - if (typeof version !== "string" || !SUPPORTED_DRAFT_VERSIONS.includes(version)) { - const versionString = SUPPORTED_DRAFT_VERSIONS.join(", "); - throw new ValidationError( - "ERR_ERL_HEADERS_UNSUPPORTED_DRAFT_VERSION", - `standardHeaders: only the following versions of the IETF draft specification are supported: ${versionString}.` - ); - } - }, - /** - * Warns the user when the selected headers option requires a reset time but - * the store does not provide one. - * - * @param resetTime {Date | undefined} - The timestamp when the client's hit count will be reset. - * - * @returns {void} - */ - headersResetTime(resetTime) { - if (!resetTime) { - throw new ValidationError( - "ERR_ERL_HEADERS_NO_RESET", - `standardHeaders: 'draft-7' requires a 'resetTime', but the store did not provide one. The 'windowMs' value will be used instead, which may cause clients to wait longer than necessary.` - ); - } - }, - /** - * Checks the options.validate setting to ensure that only recognized - * validations are enabled or disabled. - * - * If any unrecognized values are found, an error is logged that - * includes the list of supported vaidations. - */ - validationsConfig() { - const supportedValidations = Object.keys(this).filter( - (k) => !["enabled", "disable"].includes(k) - ); - supportedValidations.push("default"); - for (const key of Object.keys(this.enabled)) { - if (!supportedValidations.includes(key)) { - throw new ValidationError( - "ERR_ERL_UNKNOWN_VALIDATION", - `options.validate.${key} is not recognized. Supported validate options are: ${supportedValidations.join( - ", " - )}.` - ); - } - } - }, - /** - * Checks to see if the instance was created inside of a request handler, - * which would prevent it from working correctly, with the default memory - * store (or any other store with localKeys.) - */ - creationStack(store) { - const { stack } = new Error( - "express-rate-limit validation check (set options.validate.creationStack=false to disable)" - ); - if (stack?.includes("Layer.handle [as handle_request]")) { - if (!store.localKeys) { - throw new ValidationError( - "ERR_ERL_CREATED_IN_REQUEST_HANDLER", - "express-rate-limit instance should *usually* be created at app initialization, not when responding to a request." - ); - } - throw new ValidationError( - "ERR_ERL_CREATED_IN_REQUEST_HANDLER", - `express-rate-limit instance should be created at app initialization, not when responding to a request.` - ); - } - } -}; -var getValidations = (_enabled) => { - let enabled; - if (typeof _enabled === "boolean") { - enabled = { - default: _enabled - }; - } else { - enabled = { - default: true, - ..._enabled - }; - } - const wrappedValidations = { - enabled - }; - for (const [name, validation] of Object.entries(validations)) { - if (typeof validation === "function") - wrappedValidations[name] = (...args) => { - if (!(enabled[name] ?? enabled.default)) { - return; - } - try { - ; - validation.apply( - wrappedValidations, - args - ); - } catch (error) { - if (error instanceof ChangeWarning) - console.warn(error); - else - console.error(error); - } - }; - } - return wrappedValidations; -}; - -// source/memory-store.ts -var MemoryStore = class { - constructor() { - /** - * These two maps store usage (requests) and reset time by key (for example, IP - * addresses or API keys). - * - * They are split into two to avoid having to iterate through the entire set to - * determine which ones need reset. Instead, `Client`s are moved from `previous` - * to `current` as they hit the endpoint. Once `windowMs` has elapsed, all clients - * left in `previous`, i.e., those that have not made any recent requests, are - * known to be expired and can be deleted in bulk. - */ - this.previous = /* @__PURE__ */ new Map(); - this.current = /* @__PURE__ */ new Map(); - /** - * Confirmation that the keys incremented in once instance of MemoryStore - * cannot affect other instances. - */ - this.localKeys = true; - } - /** - * Method that initializes the store. - * - * @param options {Options} - The options used to setup the middleware. - */ - init(options) { - this.windowMs = options.windowMs; - if (this.interval) - clearInterval(this.interval); - this.interval = setInterval(() => { - this.clearExpired(); - }, this.windowMs); - if (this.interval.unref) - this.interval.unref(); - } - /** - * Method to fetch a client's hit count and reset time. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo | undefined} - The number of hits and reset time for that client. - * - * @public - */ - async get(key) { - return this.current.get(key) ?? this.previous.get(key); - } - /** - * Method to increment a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @returns {ClientRateLimitInfo} - The number of hits and reset time for that client. - * - * @public - */ - async increment(key) { - const client = this.getClient(key); - const now = Date.now(); - if (client.resetTime.getTime() <= now) { - this.resetClient(client, now); - } - client.totalHits++; - return client; - } - /** - * Method to decrement a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - async decrement(key) { - const client = this.getClient(key); - if (client.totalHits > 0) - client.totalHits--; - } - /** - * Method to reset a client's hit counter. - * - * @param key {string} - The identifier for a client. - * - * @public - */ - async resetKey(key) { - this.current.delete(key); - this.previous.delete(key); - } - /** - * Method to reset everyone's hit counter. - * - * @public - */ - async resetAll() { - this.current.clear(); - this.previous.clear(); - } - /** - * Method to stop the timer (if currently running) and prevent any memory - * leaks. - * - * @public - */ - shutdown() { - clearInterval(this.interval); - void this.resetAll(); - } - /** - * Recycles a client by setting its hit count to zero, and reset time to - * `windowMs` milliseconds from now. - * - * NOT to be confused with `#resetKey()`, which removes a client from both the - * `current` and `previous` maps. - * - * @param client {Client} - The client to recycle. - * @param now {number} - The current time, to which the `windowMs` is added to get the `resetTime` for the client. - * - * @return {Client} - The modified client that was passed in, to allow for chaining. - */ - resetClient(client, now = Date.now()) { - client.totalHits = 0; - client.resetTime.setTime(now + this.windowMs); - return client; - } - /** - * Retrieves or creates a client, given a key. Also ensures that the client being - * returned is in the `current` map. - * - * @param key {string} - The key under which the client is (or is to be) stored. - * - * @returns {Client} - The requested client. - */ - getClient(key) { - if (this.current.has(key)) - return this.current.get(key); - let client; - if (this.previous.has(key)) { - client = this.previous.get(key); - this.previous.delete(key); - } else { - client = { totalHits: 0, resetTime: /* @__PURE__ */ new Date() }; - this.resetClient(client); - } - this.current.set(key, client); - return client; - } - /** - * Move current clients to previous, create a new map for current. - * - * This function is called every `windowMs`. - */ - clearExpired() { - this.previous = this.current; - this.current = /* @__PURE__ */ new Map(); - } -}; - -// source/lib.ts -var isLegacyStore = (store) => ( - // Check that `incr` exists but `increment` does not - store authors might want - // to keep both around for backwards compatibility. - typeof store.incr === "function" && typeof store.increment !== "function" -); -var promisifyStore = (passedStore) => { - if (!isLegacyStore(passedStore)) { - return passedStore; - } - const legacyStore = passedStore; - class PromisifiedStore { - async increment(key) { - return new Promise((resolve, reject) => { - legacyStore.incr( - key, - (error, totalHits, resetTime) => { - if (error) - reject(error); - resolve({ totalHits, resetTime }); - } - ); - }); - } - async decrement(key) { - return legacyStore.decrement(key); - } - async resetKey(key) { - return legacyStore.resetKey(key); - } - /* istanbul ignore next */ - async resetAll() { - if (typeof legacyStore.resetAll === "function") - return legacyStore.resetAll(); - } - } - return new PromisifiedStore(); -}; -var getOptionsFromConfig = (config) => { - const { validations: validations2, ...directlyPassableEntries } = config; - return { - ...directlyPassableEntries, - validate: validations2.enabled - }; -}; -var omitUndefinedOptions = (passedOptions) => { - const omittedOptions = {}; - for (const k of Object.keys(passedOptions)) { - const key = k; - if (passedOptions[key] !== void 0) { - omittedOptions[key] = passedOptions[key]; - } - } - return omittedOptions; -}; -var parseOptions = (passedOptions) => { - const notUndefinedOptions = omitUndefinedOptions(passedOptions); - const validations2 = getValidations(notUndefinedOptions?.validate ?? true); - validations2.validationsConfig(); - validations2.draftPolliHeaders( - // @ts-expect-error see the note above. - notUndefinedOptions.draft_polli_ratelimit_headers - ); - validations2.onLimitReached(notUndefinedOptions.onLimitReached); - let standardHeaders = notUndefinedOptions.standardHeaders ?? false; - if (standardHeaders === true) - standardHeaders = "draft-6"; - const config = { - windowMs: 60 * 1e3, - limit: passedOptions.max ?? 5, - // `max` is deprecated, but support it anyways. - message: "Too many requests, please try again later.", - statusCode: 429, - legacyHeaders: passedOptions.headers ?? true, - identifier(request, _response) { - let duration = ""; - const property = config.requestPropertyName; - const { limit } = request[property]; - const seconds = config.windowMs / 1e3; - const minutes = config.windowMs / (1e3 * 60); - const hours = config.windowMs / (1e3 * 60 * 60); - const days = config.windowMs / (1e3 * 60 * 60 * 24); - if (seconds < 60) - duration = `${seconds}sec`; - else if (minutes < 60) - duration = `${minutes}min`; - else if (hours < 24) - duration = `${hours}hr${hours > 1 ? "s" : ""}`; - else - duration = `${days}day${days > 1 ? "s" : ""}`; - return `${limit}-in-${duration}`; - }, - requestPropertyName: "rateLimit", - skipFailedRequests: false, - skipSuccessfulRequests: false, - requestWasSuccessful: (_request, response) => response.statusCode < 400, - skip: (_request, _response) => false, - keyGenerator(request, _response) { - validations2.ip(request.ip); - validations2.trustProxy(request); - validations2.xForwardedForHeader(request); - return request.ip; - }, - async handler(request, response, _next, _optionsUsed) { - response.status(config.statusCode); - const message = typeof config.message === "function" ? await config.message( - request, - response - ) : config.message; - if (!response.writableEnded) { - response.send(message); - } - }, - passOnStoreError: false, - // Allow the default options to be overriden by the passed options. - ...notUndefinedOptions, - // `standardHeaders` is resolved into a draft version above, use that. - standardHeaders, - // Note that this field is declared after the user's options are spread in, - // so that this field doesn't get overriden with an un-promisified store! - store: promisifyStore(notUndefinedOptions.store ?? new MemoryStore()), - // Print an error to the console if a few known misconfigurations are detected. - validations: validations2 - }; - if (typeof config.store.increment !== "function" || typeof config.store.decrement !== "function" || typeof config.store.resetKey !== "function" || config.store.resetAll !== void 0 && typeof config.store.resetAll !== "function" || config.store.init !== void 0 && typeof config.store.init !== "function") { - throw new TypeError( - "An invalid store was passed. Please ensure that the store is a class that implements the `Store` interface." - ); - } - return config; -}; -var handleAsyncErrors = (fn) => async (request, response, next) => { - try { - await Promise.resolve(fn(request, response, next)).catch(next); - } catch (error) { - next(error); - } -}; -var rateLimit = (passedOptions) => { - const config = parseOptions(passedOptions ?? {}); - const options = getOptionsFromConfig(config); - config.validations.creationStack(config.store); - config.validations.unsharedStore(config.store); - if (typeof config.store.init === "function") - config.store.init(options); - const middleware = handleAsyncErrors( - async (request, response, next) => { - const skip = await config.skip(request, response); - if (skip) { - next(); - return; - } - const augmentedRequest = request; - const key = await config.keyGenerator(request, response); - let totalHits = 0; - let resetTime; - try { - const incrementResult = await config.store.increment(key); - totalHits = incrementResult.totalHits; - resetTime = incrementResult.resetTime; - } catch (error) { - if (config.passOnStoreError) { - console.error( - "express-rate-limit: error from store, allowing request without rate-limiting.", - error - ); - next(); - return; - } - throw error; - } - config.validations.positiveHits(totalHits); - config.validations.singleCount(request, config.store, key); - const retrieveLimit = typeof config.limit === "function" ? config.limit(request, response) : config.limit; - const limit = await retrieveLimit; - config.validations.limit(limit); - const info = { - limit, - used: totalHits, - remaining: Math.max(limit - totalHits, 0), - resetTime - }; - Object.defineProperty(info, "current", { - configurable: false, - enumerable: false, - value: totalHits - }); - augmentedRequest[config.requestPropertyName] = info; - if (config.legacyHeaders && !response.headersSent) { - setLegacyHeaders(response, info); - } - if (config.standardHeaders && !response.headersSent) { - switch (config.standardHeaders) { - case "draft-6": { - setDraft6Headers(response, info, config.windowMs); - break; - } - case "draft-7": { - config.validations.headersResetTime(info.resetTime); - setDraft7Headers(response, info, config.windowMs); - break; - } - case "draft-8": { - const retrieveName = typeof config.identifier === "function" ? config.identifier(request, response) : config.identifier; - const name = await retrieveName; - config.validations.headersResetTime(info.resetTime); - setDraft8Headers(response, info, config.windowMs, name, key); - break; - } - default: { - config.validations.headersDraftVersion(config.standardHeaders); - break; - } - } - } - if (config.skipFailedRequests || config.skipSuccessfulRequests) { - let decremented = false; - const decrementKey = async () => { - if (!decremented) { - await config.store.decrement(key); - decremented = true; - } - }; - if (config.skipFailedRequests) { - response.on("finish", async () => { - if (!await config.requestWasSuccessful(request, response)) - await decrementKey(); - }); - response.on("close", async () => { - if (!response.writableEnded) - await decrementKey(); - }); - response.on("error", async () => { - await decrementKey(); - }); - } - if (config.skipSuccessfulRequests) { - response.on("finish", async () => { - if (await config.requestWasSuccessful(request, response)) - await decrementKey(); - }); - } - } - config.validations.disable(); - if (totalHits > limit) { - if (config.legacyHeaders || config.standardHeaders) { - setRetryAfterHeader(response, info, config.windowMs); - } - config.handler(request, response, next, options); - return; - } - next(); - } - ); - const getThrowFn = () => { - throw new Error("The current store does not support the get/getKey method"); - }; - middleware.resetKey = config.store.resetKey.bind(config.store); - middleware.getKey = typeof config.store.get === "function" ? config.store.get.bind(config.store) : getThrowFn; - return middleware; -}; -var lib_default = rateLimit; -export { - MemoryStore, - lib_default as default, - lib_default as rateLimit -}; diff --git a/node_modules/express-rate-limit/package.json b/node_modules/express-rate-limit/package.json deleted file mode 100644 index 1783725..0000000 --- a/node_modules/express-rate-limit/package.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "name": "express-rate-limit", - "version": "7.5.0", - "description": "Basic IP rate-limiting middleware for Express. Use to limit repeated requests to public APIs and/or endpoints such as password reset.", - "author": { - "name": "Nathan Friedly", - "url": "http://nfriedly.com/" - }, - "license": "MIT", - "homepage": "https://github.com/express-rate-limit/express-rate-limit", - "repository": { - "type": "git", - "url": "git+https://github.com/express-rate-limit/express-rate-limit.git" - }, - "funding": "https://github.com/sponsors/express-rate-limit", - "keywords": [ - "express-rate-limit", - "express", - "rate", - "limit", - "ratelimit", - "rate-limit", - "middleware", - "ip", - "auth", - "authorization", - "security", - "brute", - "force", - "bruteforce", - "brute-force", - "attack" - ], - "type": "module", - "exports": { - ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.cjs" - } - } - }, - "main": "./dist/index.cjs", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "files": [ - "dist/", - "tsconfig.json" - ], - "engines": { - "node": ">= 16" - }, - "scripts": { - "clean": "del-cli dist/ coverage/ *.log *.tmp *.bak *.tgz", - "build:cjs": "esbuild --platform=node --bundle --target=es2022 --format=cjs --outfile=dist/index.cjs --footer:js=\"module.exports = rateLimit; module.exports.default = rateLimit; module.exports.rateLimit = rateLimit; module.exports.MemoryStore = MemoryStore;\" source/index.ts", - "build:esm": "esbuild --platform=node --bundle --target=es2022 --format=esm --outfile=dist/index.mjs source/index.ts", - "build:types": "dts-bundle-generator --out-file=dist/index.d.ts source/index.ts && cp dist/index.d.ts dist/index.d.cts && cp dist/index.d.ts dist/index.d.mts", - "compile": "run-s clean build:*", - "docs": "cd docs && mintlify dev", - "lint:code": "xo", - "lint:rest": "prettier --check .", - "lint": "run-s lint:*", - "format:code": "xo --fix", - "format:rest": "prettier --write .", - "format": "run-s format:*", - "test:lib": "jest", - "test:ext": "cd test/external/ && bash run-all-tests", - "test": "run-s lint test:lib", - "pre-commit": "lint-staged", - "prepare": "run-s compile && husky install config/husky" - }, - "peerDependencies": { - "express": "^4.11 || 5 || ^5.0.0-beta.1" - }, - "devDependencies": { - "@express-rate-limit/prettier": "1.1.1", - "@express-rate-limit/tsconfig": "1.0.2", - "@jest/globals": "29.7.0", - "@types/express": "4.17.20", - "@types/jest": "29.5.6", - "@types/node": "20.8.7", - "@types/supertest": "2.0.15", - "del-cli": "5.1.0", - "dts-bundle-generator": "8.0.1", - "esbuild": "0.19.5", - "express": "4.21.1", - "husky": "8.0.3", - "jest": "29.7.0", - "lint-staged": "15.0.2", - "mintlify": "4.0.63", - "npm-run-all": "4.1.5", - "ratelimit-header-parser": "0.1.0", - "supertest": "6.3.3", - "ts-jest": "29.1.1", - "ts-node": "10.9.1", - "typescript": "5.2.2", - "xo": "0.56.0" - }, - "xo": { - "prettier": true, - "rules": { - "@typescript-eslint/no-empty-function": 0, - "@typescript-eslint/no-dynamic-delete": 0, - "@typescript-eslint/no-confusing-void-expression": 0, - "@typescript-eslint/consistent-indexed-object-style": [ - "error", - "index-signature" - ], - "n/no-unsupported-features/es-syntax": 0 - }, - "overrides": [ - { - "files": "test/library/*.ts", - "rules": { - "@typescript-eslint/no-unsafe-argument": 0, - "@typescript-eslint/no-unsafe-assignment": 0 - } - } - ], - "ignore": [ - "test/external" - ] - }, - "prettier": "@express-rate-limit/prettier", - "lint-staged": { - "{source,test}/**/*.ts": "xo --fix", - "**/*.{json,yaml,md}": "prettier --write " - } -} diff --git a/node_modules/express-rate-limit/tsconfig.json b/node_modules/express-rate-limit/tsconfig.json deleted file mode 100644 index 52b6ff1..0000000 --- a/node_modules/express-rate-limit/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "include": ["source/"], - "exclude": ["node_modules/"], - "extends": "@express-rate-limit/tsconfig", - "compilerOptions": { - "target": "ES2020" - } -} diff --git a/package-lock.json b/package-lock.json index de25935..96db388 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,31 +8,34 @@ "name": "codtracker-js", "version": "1.0.0", "dependencies": { - "@eslint/js": "^9.24.0", "body-parser": "^2.2.0", - "csso": "^5.0.5", - "eslint": "^9.24.0", "express": "^4.21.2", "express-session": "^1.18.1", + "serve-favicon": "^2.5.0", + "tslib": "^2.8.1", + "undici": "^7.6.0" + }, + "bin": { + "codtracker-js": "app.js" + }, + "devDependencies": { + "@eslint/js": "^9.24.0", + "csso": "^5.0.5", + "eslint": "^9.24.0", "glob": "^11.0.1", "globals": "^16.0.0", "html-minifier": "^4.0.0", "pkg": "^5.8.1", "prettier": "^3.5.3", - "serve-favicon": "^2.5.0", "terser": "^5.39.0", - "tslib": "^2.8.1", - "typescript-eslint": "^8.30.1", - "undici": "^7.6.0" - }, - "bin": { - "codtracker-js": "app.js" + "typescript-eslint": "^8.30.1" } }, "node_modules/@babel/generator": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.2", @@ -47,6 +50,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -56,6 +60,7 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -65,6 +70,7 @@ "version": "7.18.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -77,6 +83,7 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.18.10", @@ -91,6 +98,7 @@ "version": "4.6.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "dev": true, "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -109,6 +117,7 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -121,6 +130,7 @@ "version": "4.12.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -130,6 +140,7 @@ "version": "0.20.0", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.6", @@ -144,6 +155,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -161,12 +173,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@eslint/config-helpers": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -176,6 +190,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" @@ -188,6 +203,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", @@ -211,6 +227,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -228,6 +245,7 @@ "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -240,12 +258,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -258,6 +278,7 @@ "version": "9.24.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", + "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -267,6 +288,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -276,6 +298,7 @@ "version": "0.2.8", "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/core": "^0.13.0", @@ -289,6 +312,7 @@ "version": "0.13.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" @@ -301,6 +325,7 @@ "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18.0" @@ -310,6 +335,7 @@ "version": "0.16.6", "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", @@ -323,6 +349,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18" @@ -336,6 +363,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=12.22" @@ -349,6 +377,7 @@ "version": "0.4.2", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=18.18" @@ -362,6 +391,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -379,6 +409,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -393,6 +424,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -402,6 +434,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -411,6 +444,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -421,12 +455,14 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -437,6 +473,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -450,6 +487,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -459,6 +497,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -472,18 +511,21 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz", "integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", @@ -513,6 +555,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/scope-manager": "8.30.1", @@ -537,6 +580,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -554,12 +598,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -577,6 +623,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz", "integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "8.30.1", @@ -600,6 +647,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -617,12 +665,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/types": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", + "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -636,6 +686,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -662,6 +713,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -671,6 +723,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -688,6 +741,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -703,12 +757,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/utils": { "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -732,6 +788,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.30.1", @@ -761,6 +818,7 @@ "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -773,6 +831,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -782,6 +841,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -794,6 +854,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -811,12 +872,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -833,6 +896,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -845,6 +909,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -857,6 +922,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0" }, "node_modules/array-flatten": { @@ -868,6 +934,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -877,6 +944,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, "license": "ISC", "engines": { "node": ">= 4.0.0" @@ -885,12 +953,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -911,6 +981,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "license": "MIT", "dependencies": { "buffer": "^5.5.0", @@ -922,6 +993,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -1038,6 +1110,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -1048,6 +1121,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -1060,6 +1134,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { "type": "github", @@ -1084,6 +1159,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "license": "MIT" }, "node_modules/bytes": { @@ -1126,6 +1202,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1135,6 +1212,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^2.2.0", @@ -1145,6 +1223,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1161,6 +1240,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1176,6 +1256,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -1188,12 +1269,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, "license": "ISC" }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, "license": "MIT", "dependencies": { "source-map": "~0.6.0" @@ -1206,6 +1289,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -1217,6 +1301,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1226,6 +1311,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -1241,12 +1327,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -1261,6 +1349,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -1273,6 +1362,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -1290,6 +1380,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1302,18 +1393,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "license": "MIT" }, "node_modules/content-disposition": { @@ -1352,12 +1446,14 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1372,6 +1468,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, "license": "MIT", "dependencies": { "mdn-data": "2.0.28", @@ -1386,6 +1483,7 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, "license": "MIT", "dependencies": { "css-tree": "~2.2.0" @@ -1407,6 +1505,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" @@ -1422,6 +1521,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4.0.0" @@ -1431,6 +1531,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, "license": "MIT" }, "node_modules/depd": { @@ -1454,6 +1555,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -1463,6 +1565,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -1488,6 +1591,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, "license": "MIT" }, "node_modules/ee-first": { @@ -1499,6 +1603,7 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, "node_modules/encodeurl": { @@ -1513,6 +1618,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -1549,6 +1655,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1563,6 +1670,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -1575,6 +1683,7 @@ "version": "9.24.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", @@ -1635,6 +1744,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -1651,6 +1761,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1663,6 +1774,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1680,6 +1792,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -1692,12 +1805,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/espree": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.14.0", @@ -1715,6 +1830,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -1727,6 +1843,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -1739,6 +1856,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -1748,6 +1866,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -1765,6 +1884,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" @@ -1905,12 +2025,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1927,18 +2049,21 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -1948,6 +2073,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" @@ -1960,6 +2086,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -1989,6 +2116,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^6.0.0", @@ -2005,6 +2133,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", @@ -2018,12 +2147,14 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, "license": "ISC" }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", @@ -2056,6 +2187,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.1", @@ -2066,12 +2198,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, "license": "MIT" }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", @@ -2095,6 +2229,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -2139,12 +2274,14 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, "license": "MIT" }, "node_modules/glob": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -2168,6 +2305,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -2180,6 +2318,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -2189,6 +2328,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -2204,6 +2344,7 @@ "version": "16.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -2216,6 +2357,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -2247,18 +2389,21 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, "license": "MIT" }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4.0" @@ -2268,6 +2413,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2299,6 +2445,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "license": "MIT", "bin": { "he": "bin/he" @@ -2308,6 +2455,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "dev": true, "license": "MIT", "dependencies": { "camel-case": "^3.0.0", @@ -2344,6 +2492,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -2357,6 +2506,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2374,6 +2524,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/iconv-lite": { @@ -2392,6 +2543,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -2412,6 +2564,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -2421,6 +2574,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -2437,6 +2591,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.19" @@ -2451,12 +2606,14 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, "license": "ISC" }, "node_modules/into-stream": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, "license": "MIT", "dependencies": { "from2": "^2.3.0", @@ -2481,6 +2638,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, "license": "MIT", "dependencies": { "has": "^1.0.3" @@ -2493,6 +2651,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -2502,6 +2661,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2511,6 +2671,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -2523,6 +2684,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -2532,18 +2694,21 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -2559,6 +2724,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -2571,6 +2737,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -2583,24 +2750,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -2613,6 +2784,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -2622,6 +2794,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", @@ -2635,6 +2808,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^5.0.0" @@ -2650,18 +2824,21 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, "license": "MIT" }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true, "license": "MIT" }, "node_modules/lru-cache": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "dev": true, "license": "ISC", "engines": { "node": "20 || >=22" @@ -2679,6 +2856,7 @@ "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, "license": "CC0-1.0" }, "node_modules/media-typer": { @@ -2701,6 +2879,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -2718,6 +2897,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -2761,6 +2941,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2773,6 +2954,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2785,6 +2967,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2794,6 +2977,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -2803,6 +2987,7 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, "license": "MIT" }, "node_modules/ms": { @@ -2814,6 +2999,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, "funding": [ { "type": "github", @@ -2838,6 +3024,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -2852,12 +3039,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true, "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, "license": "MIT" }, "node_modules/negotiator": { @@ -2872,6 +3061,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, "license": "MIT", "dependencies": { "lower-case": "^1.1.1" @@ -2881,6 +3071,7 @@ "version": "3.74.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "dev": true, "license": "MIT", "dependencies": { "semver": "^7.3.5" @@ -2893,6 +3084,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -2944,6 +3136,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -2953,6 +3146,7 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, "license": "MIT", "dependencies": { "deep-is": "^0.1.3", @@ -2970,6 +3164,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2979,6 +3174,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -2994,6 +3190,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^3.0.2" @@ -3009,12 +3206,14 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^2.2.0" @@ -3024,6 +3223,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -3044,6 +3244,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3053,6 +3254,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3062,12 +3264,14 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, "license": "MIT" }, "node_modules/path-scurry": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -3089,6 +3293,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3098,6 +3303,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -3110,6 +3316,7 @@ "version": "5.8.1", "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/generator": "7.18.2", @@ -3143,6 +3350,7 @@ "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", @@ -3162,6 +3370,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", @@ -3188,6 +3397,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8.0" @@ -3197,6 +3407,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -3212,12 +3423,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -3239,6 +3452,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -3249,6 +3463,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3272,6 +3487,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -3324,6 +3540,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", @@ -3339,6 +3556,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", @@ -3354,12 +3572,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.10" @@ -3369,6 +3589,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3378,6 +3599,7 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", @@ -3398,6 +3620,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -3407,6 +3630,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -3422,6 +3646,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -3432,6 +3657,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -3479,6 +3705,7 @@ "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -3574,6 +3801,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -3586,6 +3814,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3663,6 +3892,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -3675,6 +3905,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, "funding": [ { "type": "github", @@ -3695,6 +3926,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, "funding": [ { "type": "github", @@ -3720,6 +3952,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3729,6 +3962,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3738,6 +3972,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3747,6 +3982,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -3765,6 +4001,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, "license": "MIT", "dependencies": { "readable-stream": "^2.1.4" @@ -3774,6 +4011,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" @@ -3783,12 +4021,14 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -3807,6 +4047,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -3821,6 +4062,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3830,12 +4072,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3848,6 +4092,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -3864,6 +4109,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3876,6 +4122,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3885,6 +4132,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3894,6 +4142,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3906,6 +4155,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "dev": true, "license": "MIT", "dependencies": { "chownr": "^1.1.1", @@ -3918,6 +4168,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, "license": "MIT", "dependencies": { "bl": "^4.0.3", @@ -3934,6 +4185,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -3948,6 +4200,7 @@ "version": "5.39.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -3966,6 +4219,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -3975,6 +4229,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -3995,12 +4250,14 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, "license": "MIT" }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18.12" @@ -4019,6 +4276,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" @@ -4031,6 +4289,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" @@ -4055,6 +4314,7 @@ "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, "license": "Apache-2.0", "peer": true, "bin": { @@ -4069,6 +4329,7 @@ "version": "8.30.1", "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.30.1.tgz", "integrity": "sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==", + "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/eslint-plugin": "8.30.1", @@ -4091,6 +4352,7 @@ "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, "license": "BSD-2-Clause", "bin": { "uglifyjs": "bin/uglifyjs" @@ -4124,6 +4386,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -4141,12 +4404,14 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true, "license": "MIT" }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -4156,6 +4421,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -4178,12 +4444,14 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -4194,6 +4462,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -4209,6 +4478,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4218,6 +4488,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -4236,6 +4507,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -4253,6 +4525,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4262,6 +4535,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -4277,12 +4551,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -4297,6 +4573,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4309,12 +4586,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -4324,6 +4603,7 @@ "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^7.0.2", @@ -4342,6 +4622,7 @@ "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -4351,6 +4632,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4360,12 +4642,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -4380,6 +4664,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4392,6 +4677,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" diff --git a/package.json b/package.json index 13a7c08..09bdbcb 100644 --- a/package.json +++ b/package.json @@ -22,21 +22,23 @@ "dev": "nodemon app.js" }, "dependencies": { - "@eslint/js": "^9.24.0", "body-parser": "^2.2.0", - "csso": "^5.0.5", - "eslint": "^9.24.0", "express": "^4.21.2", "express-session": "^1.18.1", + "serve-favicon": "^2.5.0", + "tslib": "^2.8.1", + "undici": "^7.6.0" + }, + "devDependencies": { + "@eslint/js": "^9.24.0", + "csso": "^5.0.5", + "eslint": "^9.24.0", "glob": "^11.0.1", "globals": "^16.0.0", "html-minifier": "^4.0.0", "pkg": "^5.8.1", "prettier": "^3.5.3", - "serve-favicon": "^2.5.0", "terser": "^5.39.0", - "tslib": "^2.8.1", - "typescript-eslint": "^8.30.1", - "undici": "^7.6.0" + "typescript-eslint": "^8.30.1" } } diff --git a/src/js/index.d.ts b/src/js/index.d.ts index 9ddefde..2277113 100644 --- a/src/js/index.d.ts +++ b/src/js/index.d.ts @@ -156,7 +156,6 @@ declare class USER { friendFeed: (gamertag: string, platform: platforms) => Promise; eventFeed: () => Promise; loggedInIdentities: () => Promise; - userInfo: () => Promise; codPoints: (gamertag: string, platform: platforms) => Promise; connectedAccounts: ( gamertag: string, @@ -168,6 +167,7 @@ declare class USER { platform: platforms, action: friendActions ) => Promise; + userInfo: () => Promise; } declare class DB { accolades: () => Promise; @@ -190,22 +190,22 @@ declare const Me: USER; declare const CDN: DB; declare const Misc: ALT; export { - CDN, - ColdWar, - disableDebugMode, - enableDebugMode, - friendActions, login, - Me, - Misc, + telescopeLogin, + platforms, + friendActions, + Warzone, ModernWarfare, ModernWarfare2, ModernWarfare3, - platforms, - Store, - telescopeLogin, - Vanguard, - Warzone, - Warzone2, WarzoneMobile, + Warzone2, + ColdWar, + Vanguard, + Store, + Me, + CDN, + Misc, + enableDebugMode, + disableDebugMode, }; diff --git a/src/js/index.js b/src/js/index.js index d498bda..5b05871 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1,32 +1,31 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.WarzoneMobile = - exports.Warzone2 = - exports.Warzone = - exports.Vanguard = - exports.telescopeLogin = +exports.disableDebugMode = + exports.enableDebugMode = + exports.Misc = + exports.Me = exports.Store = - exports.platforms = + exports.Vanguard = + exports.ColdWar = + exports.Warzone2 = + exports.WarzoneMobile = exports.ModernWarfare3 = exports.ModernWarfare2 = exports.ModernWarfare = - exports.Misc = - exports.Me = - exports.login = + exports.Warzone = exports.friendActions = - exports.enableDebugMode = - exports.disableDebugMode = - exports.ColdWar = - exports.CDN = + exports.platforms = + exports.telescopeLogin = + exports.login = void 0; const tslib_1 = require('tslib'); const undici_1 = require('undici'); -const game_modes_json_1 = tslib_1.__importDefault( - require('../data/game-modes.json') -); const weapon_ids_json_1 = tslib_1.__importDefault( require('../data/weapon-ids.json') ); +const game_modes_json_1 = tslib_1.__importDefault( + require('../data/game-modes.json') +); const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'; let baseCookie = 'new_SiteId=cod;ACT_SSO_LOCALE=en_US;country=US;'; @@ -72,7 +71,8 @@ var platforms; platforms['XBOX'] = 'xbl'; platforms['ios'] = 'ios'; platforms['NULL'] = '_'; -})(platforms || (exports.platforms = platforms = {})); +})(platforms || (platforms = {})); +exports.platforms = platforms; var games; (function (games) { games['ModernWarfare'] = 'mw'; @@ -107,7 +107,8 @@ var friendActions; friendActions['Remove'] = 'remove'; friendActions['Block'] = 'block'; friendActions['Unblock'] = 'unblock'; -})(friendActions || (exports.friendActions = friendActions = {})); +})(friendActions || (friendActions = {})); +exports.friendActions = friendActions; var generics; (function (generics) { generics['STEAM_UNSUPPORTED'] = @@ -170,7 +171,7 @@ const sendRequestCDN = (url) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { if (!loggedIn) throw new Error('Not Logged In.'); - let requestUrl = `${baseUrl}${url}`; + let requestUrl = `${baseUrlTrunc}${url}`; if (debugMode) console.log(`[DEBUG]`, `Request Uri: ${requestUrl}`); if (debugMode) console.time('Round Trip'); const { body, statusCode } = yield (0, undici_1.request)(requestUrl, { @@ -233,8 +234,10 @@ const sendRequestUserInfo = (url) => throw new Error( `Received status code: '${statusCode}'. Route may be down or not exist.` ); + // Get the response as text first let responseText = yield body.text(); + // Check if this is a JSONP response (contains function wrapper) if (responseText.startsWith('userInfo(') && responseText.endsWith(');')) { // Extract the JSON data from between the parentheses @@ -248,6 +251,7 @@ const sendRequestUserInfo = (url) => throw exception; } }); + const sendPostRequest = (url, data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { @@ -332,7 +336,11 @@ const handleLookupType = (platform) => { const checkForValidPlatform = (platform, gamertag) => { if (!Object.values(platforms).includes(platform)) throw new Error( - `Platform '${platform}' is not valid.\nTry one of the following:\n${JSON.stringify(Object.values(platforms), null, 2)}` + `Platform '${platform}' is not valid.\nTry one of the following:\n${JSON.stringify( + Object.values(platforms), + null, + 2 + )}` ); if (gamertag && isNaN(Number(gamertag)) && platform === platforms.Uno) throw new Error(generics.UNO_NO_NUMERICAL_ID); @@ -365,7 +373,7 @@ class Endpoints { this.breakdownWithDate = (startTime, endTime) => `/crm/cod/v2/title/${this.game}/platform/${this.platform}/${this.lookupType}/${this.gamertag}/matches/${this.mode}/start/${startTime}/end/${endTime}`; this.matchInfo = (matchId) => - `/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/wz/${matchId}/en`; + `/crm/cod/v2/title/${this.game}/platform/${this.platform}/fullMatch/${this.mode}/${matchId}/en`; this.matchHeatMap = (matchId) => `/ce/v1/title/${this.game}/platform/${this.platform}/match/${matchId}/matchMapEvents`; this.seasonLoot = () => @@ -393,6 +401,7 @@ class Endpoints { `/crm/cod/v2/accounts/platform/${this.platform}/${this.lookupType}/${this.gamertag}`; this.settings = () => `/preferences/v1/platform/${this.platform}/${this.lookupType}/${this.gamertag}/list`; + this.friendsList = () => `/codfriends/v1/compendium`; this.friendAction = (action) => `/codfriends/v1/${action}/${this.platform}/${this.lookupType}/${this.gamertag}`; this.search = () => @@ -425,9 +434,9 @@ class TelescopeEndpoints { } class WZ { constructor() { - this.fullData = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.fullData = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -442,9 +451,10 @@ class WZ { ); return yield sendRequest(endpoint.fullData()); }); - this.combatHistory = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistory = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -459,9 +469,10 @@ class WZ { ); return yield sendRequest(endpoint.combatHistory()); }); - this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -478,9 +489,10 @@ class WZ { endpoint.combatHistoryWithDate(startTime, endTime) ); }); - this.breakdown = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdown = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -495,9 +507,10 @@ class WZ { ); return yield sendRequest(endpoint.breakdown()); }); - this.breakdownWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdownWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -514,9 +527,10 @@ class WZ { endpoint.breakdownWithDate(startTime, endTime) ); }); - this.matchInfo = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchInfo = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -531,6 +545,7 @@ class WZ { ); return yield sendRequest(endpoint.matchInfo(matchId)); }); + }; this.cleanGameMode = (mode) => tslib_1.__awaiter(this, void 0, void 0, function* () { //@ts-ignore @@ -542,9 +557,9 @@ class WZ { } class MW { constructor() { - this.fullData = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.fullData = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -559,9 +574,10 @@ class MW { ); return yield sendRequest(endpoint.fullData()); }); - this.combatHistory = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistory = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -576,9 +592,10 @@ class MW { ); return yield sendRequest(endpoint.combatHistory()); }); - this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -595,9 +612,10 @@ class MW { endpoint.combatHistoryWithDate(startTime, endTime) ); }); - this.breakdown = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdown = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -612,9 +630,10 @@ class MW { ); return yield sendRequest(endpoint.breakdown()); }); - this.breakdownWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdownWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -631,9 +650,10 @@ class MW { endpoint.breakdownWithDate(startTime, endTime) ); }); - this.matchInfo = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchInfo = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -648,9 +668,10 @@ class MW { ); return yield sendRequest(endpoint.matchInfo(matchId)); }); - this.matchHeatMap = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchHeatMap = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -665,9 +686,10 @@ class MW { ); return yield sendRequest(endpoint.matchHeatMap(matchId)); }); - this.seasonloot = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.seasonloot = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -682,9 +704,10 @@ class MW { ); return yield sendRequest(endpoint.seasonLoot()); }); - this.bpProg = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bpProg = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -699,9 +722,10 @@ class MW { ); return yield sendRequest(endpoint.bpProg()); }); - this.bundleInfo = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bundleInfo = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -716,9 +740,10 @@ class MW { ); return yield sendRequest(endpoint.bundleInfo()); }); - this.mapList = (platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.mapList = (platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -733,9 +758,10 @@ class MW { ); return yield sendRequest(endpoint.mapList()); }); - this.communityMapDataForMapMode = (mapId, gamemode, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.communityMapDataForMapMode = (mapId, gamemode, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -752,6 +778,7 @@ class MW { endpoint.communityMapDataForMapMode(mapId, gamemode) ); }); + }; } } class MW2 { @@ -892,9 +919,9 @@ class WZM { } class CW { constructor() { - this.fullData = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.fullData = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -909,9 +936,10 @@ class CW { ); return yield sendRequest(endpoint.fullData()); }); - this.combatHistory = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistory = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -926,9 +954,10 @@ class CW { ); return yield sendRequest(endpoint.combatHistory()); }); - this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -945,9 +974,10 @@ class CW { endpoint.combatHistoryWithDate(startTime, endTime) ); }); - this.breakdown = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdown = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -962,9 +992,10 @@ class CW { ); return yield sendRequest(endpoint.breakdown()); }); - this.breakdownWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdownWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -981,9 +1012,10 @@ class CW { endpoint.breakdownWithDate(startTime, endTime) ); }); - this.seasonloot = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.seasonloot = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -998,9 +1030,10 @@ class CW { ); return yield sendRequest(endpoint.seasonLoot()); }); - this.bpProg = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bpProg = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1015,9 +1048,10 @@ class CW { ); return yield sendRequest(endpoint.bpProg()); }); - this.bundleInfo = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bundleInfo = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1032,9 +1066,10 @@ class CW { ); return yield sendRequest(endpoint.bundleInfo()); }); - this.mapList = (platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.mapList = (platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1049,9 +1084,10 @@ class CW { ); return yield sendRequest(endpoint.mapList()); }); - this.matchInfo = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchInfo = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1066,9 +1102,10 @@ class CW { ); return yield sendRequest(endpoint.matchInfo(matchId)); }); - this.matchHeatMap = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchHeatMap = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1083,13 +1120,14 @@ class CW { ); return yield sendRequest(endpoint.matchHeatMap(matchId)); }); + }; } } class VG { constructor() { - this.fullData = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.fullData = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1104,9 +1142,10 @@ class VG { ); return yield sendRequest(endpoint.fullData()); }); - this.combatHistory = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistory = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1121,9 +1160,10 @@ class VG { ); return yield sendRequest(endpoint.combatHistory()); }); - this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.combatHistoryWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1140,9 +1180,10 @@ class VG { endpoint.combatHistoryWithDate(startTime, endTime) ); }); - this.breakdown = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdown = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1157,9 +1198,10 @@ class VG { ); return yield sendRequest(endpoint.breakdown()); }); - this.breakdownWithDate = (gamertag, startTime, endTime, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.breakdownWithDate = (gamertag, startTime, endTime, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1176,9 +1218,10 @@ class VG { endpoint.breakdownWithDate(startTime, endTime) ); }); - this.seasonloot = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.seasonloot = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1193,9 +1236,10 @@ class VG { ); return yield sendRequest(endpoint.seasonLoot()); }); - this.bpProg = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bpProg = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1210,9 +1254,10 @@ class VG { ); return yield sendRequest(endpoint.bpProg()); }); - this.bundleInfo = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.bundleInfo = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1227,9 +1272,10 @@ class VG { ); return yield sendRequest(endpoint.bundleInfo()); }); - this.mapList = (platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.mapList = (platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1244,9 +1290,10 @@ class VG { ); return yield sendRequest(endpoint.mapList()); }); - this.matchInfo = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchInfo = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1261,9 +1308,10 @@ class VG { ); return yield sendRequest(endpoint.matchInfo(matchId)); }); - this.matchHeatMap = (matchId, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.matchHeatMap = (matchId, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1278,6 +1326,7 @@ class VG { ); return yield sendRequest(endpoint.matchHeatMap(matchId)); }); + }; } } class SHOP { @@ -1304,9 +1353,9 @@ class SHOP { ); return yield sendRequest(endpoint.bundleInformation(title, bundleId)); }); - this.battlePassLoot = (title, season, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.battlePassLoot = (title, season, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1321,13 +1370,14 @@ class SHOP { ); return yield sendRequest(endpoint.battlePassLoot(season)); }); + }; } } class USER { constructor() { - this.friendFeed = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.friendFeed = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1342,6 +1392,7 @@ class USER { ); return yield sendRequest(endpoint.friendFeed()); }); + }; this.eventFeed = () => tslib_1.__awaiter(this, void 0, void 0, function* () { const endpoint = new Endpoints( @@ -1375,9 +1426,9 @@ class USER { ); return yield sendRequestUserInfo(endpoint.userInfo()); }); - this.codPoints = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.codPoints = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1392,9 +1443,10 @@ class USER { ); return yield sendRequest(endpoint.codPoints()); }); - this.connectedAccounts = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.connectedAccounts = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1409,9 +1461,10 @@ class USER { ); return yield sendRequest(endpoint.connectedAccounts()); }); - this.settings = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + }; + this.settings = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1426,9 +1479,21 @@ class USER { ); return yield sendRequest(endpoint.settings()); }); - this.friendAction = (gamertag, platform, action) => + }; + this.friendsList = () => tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + const endpoint = new Endpoints( + games.NULL, + '', + platforms.NULL, + modes.NULL, + '' + ); + return yield sendRequest(endpoint.friendsList()); + }); + this.friendAction = (gamertag, platform, action) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1443,8 +1508,10 @@ class USER { ); return yield sendPostRequest(endpoint.friendAction(action), '{}'); }); + }; } } + class DB { constructor() { this.accolades = () => @@ -1471,11 +1538,12 @@ class DB { }); } } + class ALT { constructor() { - this.search = (gamertag, platform) => - tslib_1.__awaiter(this, void 0, void 0, function* () { - var gamertag, platform, lookupType; + this.search = (gamertag, platform) => { + var gamertag, platform, lookupType; + return tslib_1.__awaiter(this, void 0, void 0, function* () { ({ gamertag, _platform: platform, @@ -1490,6 +1558,7 @@ class ALT { ); return yield sendRequest(endpoint.search()); }); + }; this.cleanWeapon = (weapon) => tslib_1.__awaiter(this, void 0, void 0, function* () { //@ts-ignore @@ -1523,4 +1592,4 @@ const CDN = new DB(); exports.CDN = CDN; const Misc = new ALT(); exports.Misc = Misc; -//# sourceMappingURL=index.js.map +// # sourceMappingURL=index.js.map diff --git a/src/js/index.js.map b/src/js/index.js.map index 79ffa6a..b847dac 100644 --- a/src/js/index.js.map +++ b/src/js/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/js/index.ts b/src/js/index.ts index b2d5517..cd654a4 100644 --- a/src/js/index.ts +++ b/src/js/index.ts @@ -1,7 +1,4 @@ -interface IncomingHttpHeaders { - [header: string]: string | string[] | undefined; -} - +import { IncomingHttpHeaders } from 'http'; import { request } from 'undici'; import wzMappings from '../data/game-modes.json'; import weaponMappings from '../data/weapon-ids.json'; @@ -12,26 +9,14 @@ let baseCookie: string = 'new_SiteId=cod;ACT_SSO_LOCALE=en_US;country=US;'; let baseSsoToken: string = ''; let debugMode = false; -interface CustomHeaders extends Record { - 'X-XSRF-TOKEN'?: string; - 'X-CSRF-TOKEN'?: string; - 'Atvi-Auth'?: string; - ACT_SSO_COOKIE?: string; - atkn?: string; - cookie?: string; - 'content-type'?: string; - 'user-agent'?: string; - accept?: string; - authorization?: string; - 'accept-language'?: string; - 'cache-control'?: string; - pragma?: string; - 'sec-ch-ua'?: string; - 'sec-ch-ua-mobile'?: string; - 'sec-ch-ua-platform'?: string; - 'sec-fetch-dest'?: string; - 'sec-fetch-mode'?: string; - 'sec-fetch-site'?: string; +interface CustomHeaders extends IncomingHttpHeaders { + 'X-XSRF-TOKEN'?: string | undefined; + 'X-CSRF-TOKEN'?: string | undefined; + 'Atvi-Auth'?: string | undefined; + ACT_SSO_COOKIE?: string | undefined; + atkn?: string | undefined; + cookie?: string | undefined; + 'content-type'?: string | undefined; } let baseHeaders: CustomHeaders = { diff --git a/tsconfig.json b/tsconfig.json index 978a178..e89b3b5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,8 +7,8 @@ "module": "CommonJS", "target": "es2015", "esModuleInterop": true, - "lib": ["esnext", "dom"], - "outDir": "./src/js/dist", + "lib": ["esnext"], + "outDir": "dist", "sourceMap": true, "declaration": true, "skipLibCheck": true,