From 4d1f41a7cf80a06c9fce006857a6200afe30f6b4 Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Sun, 18 Jan 2026 21:49:03 +0530 Subject: [PATCH 1/6] test: add backend integration tests with mock auth + in-mem DB - Set up Jest + Supertest for Express + TypeScript backend - Refactored app/index separation to enable testing - Mocked Firebase auth middleware to inject req.user.uid - Added isolated MongoDB testing using mongodb-memory-server - Implemented integration tests for health, user, and history endpoints - Verified ownership-based delete with proper 204 response - Added coverage reporting and validated test scope --- client/src/components/Result.jsx | 2 +- client/src/components/UploadBox.jsx | 2 +- client/src/pages/UserAccount.jsx | 6 +- images/test_coverage.png | Bin 0 -> 188041 bytes revision.md | 9 +- server/.gitignore | 3 +- server/jest.config.js | 21 + server/package-lock.json | 7640 ++++++++++++++---- server/package.json | 12 +- server/src/__tests__/health.test.ts | 11 + server/src/__tests__/history.test.ts | 72 + server/src/__tests__/setup/auth.ts | 1 + server/src/__tests__/setup/db.ts | 19 + server/src/__tests__/user.test.ts | 42 + server/src/app.ts | 30 + server/src/controllers/health.controller.ts | 2 +- server/src/controllers/history.controller.ts | 3 +- server/src/controllers/upload.controller.ts | 4 +- server/src/controllers/user.controller.ts | 2 +- server/src/index.ts | 23 +- server/src/middlewares/auth.ts | 113 +- server/src/models/User.models.ts | 6 +- server/src/routes/history.routes.ts | 5 +- server/src/routes/user.routes.ts | 4 +- server/src/validators/history.schema.ts | 17 - server/src/validators/prediction.schema.ts | 2 +- 26 files changed, 6176 insertions(+), 1875 deletions(-) create mode 100644 images/test_coverage.png create mode 100644 server/jest.config.js create mode 100644 server/src/__tests__/health.test.ts create mode 100644 server/src/__tests__/history.test.ts create mode 100644 server/src/__tests__/setup/auth.ts create mode 100644 server/src/__tests__/setup/db.ts create mode 100644 server/src/__tests__/user.test.ts create mode 100644 server/src/app.ts delete mode 100644 server/src/validators/history.schema.ts diff --git a/client/src/components/Result.jsx b/client/src/components/Result.jsx index 52cd3f3..ccf2781 100644 --- a/client/src/components/Result.jsx +++ b/client/src/components/Result.jsx @@ -151,7 +151,7 @@ function Result({ predictionData }) { color: "var(--accent-green)", }} > - {predictionData.confidence} + {predictionData.confidence}% )} diff --git a/client/src/components/UploadBox.jsx b/client/src/components/UploadBox.jsx index 1e15a25..b969624 100644 --- a/client/src/components/UploadBox.jsx +++ b/client/src/components/UploadBox.jsx @@ -7,7 +7,7 @@ import { MdCheckCircle, MdFolder } from "react-icons/md"; import { historyAPI, uploadImage } from "../services/api.js"; // File upload constraints -const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB +const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB const ALLOWED_TYPES = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']; function UploadBox({ setPredictionData }) { diff --git a/client/src/pages/UserAccount.jsx b/client/src/pages/UserAccount.jsx index e3e3020..b59d5a8 100644 --- a/client/src/pages/UserAccount.jsx +++ b/client/src/pages/UserAccount.jsx @@ -22,7 +22,7 @@ function UserAccount() { setIsVisible(true); }, []); - // Fetchz history using api + // Fetch history using api const fetchHistory = async () => { try { setLoading(true); @@ -38,7 +38,7 @@ function UserAccount() { } }; - // fetchz user history if user exists + // fetch user history if user exists useEffect(() => { if (user) { fetchHistory(); @@ -211,7 +211,7 @@ function UserAccount() { fontSize: "0.8rem", }} > - Confidence: {record.prediction.confidence} + Confidence: {record.prediction.confidence}%

)}

1WzCE^=NP|nkA$a&`t0Wg&NDDDus?jD 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 Wu&?}vki$Cv>1#0=(OhBO&;JV)p8692 literal 0 HcmV?d00001 diff --git a/revision.md b/revision.md index 7ee3bd3..f799c41 100644 --- a/revision.md +++ b/revision.md @@ -99,12 +99,9 @@ - to prove that ur code behaves as expected - hit an endpoint w known input -> assert response (status,body,msg) - if assertion fails -> test fails -> u catch bugs early -- Types: - - Unit Testing: Single function - - Integration Testing: Test a group of functions; route + middleware (m. imp) - - End-2-End: Full app + DB - Tech Stack: - Jest: Test runner + assertions - Supertest: Fake HTTP requests to Express -- Test Driven Dev (TDD): - - create tests -> tests fail -> write code to pass it -> refactor -> repeat \ No newline at end of file +- Test Coverage: + - how much of ur code gets executed when performing tests + - \ No newline at end of file diff --git a/server/.gitignore b/server/.gitignore index 5c2a4b6..2572a07 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -5,4 +5,5 @@ __pycache__ temp/ uploads/ serviceAccountKey.json -revision.txt \ No newline at end of file +revision.txt +coverage/ \ No newline at end of file diff --git a/server/jest.config.js b/server/jest.config.js new file mode 100644 index 0000000..7cfb0a0 --- /dev/null +++ b/server/jest.config.js @@ -0,0 +1,21 @@ +import { createDefaultPreset } from "ts-jest"; + +const tsJestTransformCfg = createDefaultPreset().transform; + +/** @type {import("jest").Config} **/ +export default { + preset: "ts-jest", + testEnvironment: "node", + transform: { + ...tsJestTransformCfg, + }, + testMatch: ["**/__tests__/**/*.test.ts"], + clearMocks: true, + + // test coverage + collectCoverageFrom: [ + "src/**/*.ts", + "!src/__tests__/**", + "!src/index.ts", + ] +}; \ No newline at end of file diff --git a/server/package-lock.json b/server/package-lock.json index 71816ce..781f253 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -27,883 +27,3792 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.6", + "@types/jest": "^30.0.0", "@types/multer": "^2.0.0", "@types/node": "^25.0.8", + "@types/supertest": "^6.0.3", + "jest": "^30.2.0", + "mongodb-memory-server": "^11.0.1", "nodemon": "^3.1.11", + "supertest": "^7.2.2", + "ts-jest": "^29.4.6", "ts-node": "^10.9.2", "typescript": "^5.9.3" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@fastify/busboy": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz", - "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==", - "license": "MIT" - }, - "node_modules/@firebase/app-check-interop-types": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz", - "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/app-types": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", - "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz", - "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==", - "license": "Apache-2.0" - }, - "node_modules/@firebase/component": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.0.tgz", - "integrity": "sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/util": "1.13.0", - "tslib": "^2.1.0" - }, + "node_modules/@babel/compat-data": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=20.0.0" + "node": ">=6.9.0" } }, - "node_modules/@firebase/database": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.0.tgz", - "integrity": "sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==", - "license": "Apache-2.0", + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, + "license": "MIT", "dependencies": { - "@firebase/app-check-interop-types": "0.3.3", - "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.7.0", - "@firebase/logger": "0.5.0", - "@firebase/util": "1.13.0", - "faye-websocket": "0.11.4", - "tslib": "^2.1.0" + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@firebase/database-compat": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.0.tgz", - "integrity": "sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==", - "license": "Apache-2.0", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "dev": true, + "license": "MIT", "dependencies": { - "@firebase/component": "0.7.0", - "@firebase/database": "1.1.0", - "@firebase/database-types": "1.0.16", - "@firebase/logger": "0.5.0", - "@firebase/util": "1.13.0", - "tslib": "^2.1.0" + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=20.0.0" + "node": ">=6.9.0" } }, - "node_modules/@firebase/database-types": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz", - "integrity": "sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==", - "license": "Apache-2.0", + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", "dependencies": { - "@firebase/app-types": "0.9.3", - "@firebase/util": "1.13.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@firebase/logger": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.0.tgz", - "integrity": "sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==", - "license": "Apache-2.0", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=6.9.0" } }, - "node_modules/@firebase/util": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz", - "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", - "hasInstallScript": true, - "license": "Apache-2.0", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", "dependencies": { - "tslib": "^2.1.0" - }, + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=20.0.0" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/firestore": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.6.tgz", - "integrity": "sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.3.0", - "fast-deep-equal": "^3.1.1", - "functional-red-black-tree": "^1.0.1", - "google-gax": "^4.3.3", - "protobufjs": "^7.2.6" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/paginator": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", - "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", "dependencies": { - "arrify": "^2.0.0", - "extend": "^3.0.2" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@google-cloud/projectify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", - "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/promisify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", - "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/storage": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.18.0.tgz", - "integrity": "sha512-r3ZwDMiz4nwW6R922Z1pwpePxyRwE5GdevYX63hRmAQUkUQJcBH/79EnQPDv5cOv1mFBgevdNWQfi3tie3dHrQ==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@google-cloud/paginator": "^5.0.0", - "@google-cloud/projectify": "^4.0.0", - "@google-cloud/promisify": "<4.1.0", - "abort-controller": "^3.0.0", - "async-retry": "^1.3.3", - "duplexify": "^4.1.3", - "fast-xml-parser": "^4.4.1", - "gaxios": "^6.0.2", - "google-auth-library": "^9.6.3", - "html-entities": "^2.5.2", - "mime": "^3.0.0", - "p-limit": "^3.0.1", - "retry-request": "^7.0.0", - "teeny-request": "^9.0.0", - "uuid": "^8.0.0" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/storage/node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" } }, - "node_modules/@google-cloud/storage/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@google/genai": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.35.0.tgz", - "integrity": "sha512-ZC1d0PSM5eS73BpbVIgL3ZsmXeMKLVJurxzww1Z9axy3B2eUB3ioEytbQt4Qu0Od6qPluKrTDew9pSi9kEuPaw==", - "license": "Apache-2.0", + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "dev": true, + "license": "MIT", "dependencies": { - "google-auth-library": "^10.3.0", - "ws": "^8.18.0" + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=20.0.0" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@modelcontextprotocol/sdk": "^1.24.0" - }, - "peerDependenciesMeta": { - "@modelcontextprotocol/sdk": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/genai/node_modules/gaxios": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", - "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "node-fetch": "^3.3.2", - "rimraf": "^5.0.1" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/genai/node_modules/gcp-metadata": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", - "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", "dependencies": { - "gaxios": "^7.0.0", - "google-logging-utils": "^1.0.0", - "json-bigint": "^1.0.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/genai/node_modules/google-auth-library": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", - "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", "dependencies": { - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^7.0.0", - "gcp-metadata": "^8.0.0", - "google-logging-utils": "^1.0.0", - "gtoken": "^8.0.0", - "jws": "^4.0.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/genai/node_modules/google-logging-utils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", - "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", - "license": "Apache-2.0", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, "engines": { - "node": ">=14" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/genai/node_modules/gtoken": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz", - "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "license": "MIT", "dependencies": { - "gaxios": "^7.0.0", - "jws": "^4.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@google/generative-ai": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.24.1.tgz", - "integrity": "sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=18.0.0" + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@grpc/grpc-js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.3.tgz", - "integrity": "sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", "dependencies": { - "@grpc/proto-loader": "^0.8.0", - "@js-sdsl/ordered-map": "^4.4.2" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=12.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz", - "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.5.3", - "yargs": "^17.7.2" + "@babel/helper-plugin-utils": "^7.10.4" }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.15", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", - "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", - "license": "Apache-2.0", - "optional": true, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" + "@babel/helper-plugin-utils": "^7.10.4" }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "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 + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "dev": true, "license": "MIT", "optional": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" } }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.4.tgz", - "integrity": "sha512-p7X/ytJDIdwUfFL/CLOhKgdfJe1Fa8uw9seJYvdOmnP9JBWGWHW69HkOixXS6Wy9yvGf1MbhcS6lVmrhy4jm2g==", + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "sparse-bitfield": "^3.0.3" + "tslib": "^2.4.0" } }, - "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.2.0.tgz", + "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==", + "license": "MIT" + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.3.tgz", + "integrity": "sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-types": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", + "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.4.tgz", + "integrity": "sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/component": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.7.0.tgz", + "integrity": "sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/database": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.1.0.tgz", + "integrity": "sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/auth-interop-types": "0.2.4", + "@firebase/component": "0.7.0", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.1.0.tgz", + "integrity": "sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.7.0", + "@firebase/database": "1.1.0", + "@firebase/database-types": "1.0.16", + "@firebase/logger": "0.5.0", + "@firebase/util": "1.13.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.16.tgz", + "integrity": "sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.3", + "@firebase/util": "1.13.0" + } + }, + "node_modules/@firebase/logger": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.5.0.tgz", + "integrity": "sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@firebase/util": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.13.0.tgz", + "integrity": "sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@google-cloud/firestore": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.6.tgz", + "integrity": "sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw==", "license": "Apache-2.0", "optional": true, + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "fast-deep-equal": "^3.1.1", + "functional-red-black-tree": "^1.0.1", + "google-gax": "^4.3.3", + "protobufjs": "^7.2.6" + }, "engines": { - "node": ">=8.0.0" + "node": ">=14.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", + "node_modules/@google-cloud/paginator": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/projectify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/promisify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", + "license": "Apache-2.0", "optional": true, "engines": { "node": ">=14" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/@google-cloud/storage": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.18.0.tgz", + "integrity": "sha512-r3ZwDMiz4nwW6R922Z1pwpePxyRwE5GdevYX63hRmAQUkUQJcBH/79EnQPDv5cOv1mFBgevdNWQfi3tie3dHrQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@google-cloud/paginator": "^5.0.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", + "abort-controller": "^3.0.0", + "async-retry": "^1.3.3", + "duplexify": "^4.1.3", + "fast-xml-parser": "^4.4.1", + "gaxios": "^6.0.2", + "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", + "mime": "^3.0.0", + "p-limit": "^3.0.1", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=14" + } }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/@google-cloud/storage/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/@google-cloud/storage/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/@google/genai": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.35.0.tgz", + "integrity": "sha512-ZC1d0PSM5eS73BpbVIgL3ZsmXeMKLVJurxzww1Z9axy3B2eUB3ioEytbQt4Qu0Od6qPluKrTDew9pSi9kEuPaw==", + "license": "Apache-2.0", + "dependencies": { + "google-auth-library": "^10.3.0", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@modelcontextprotocol/sdk": "^1.24.0" + }, + "peerDependenciesMeta": { + "@modelcontextprotocol/sdk": { + "optional": true + } + } + }, + "node_modules/@google/genai/node_modules/gaxios": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@google/genai/node_modules/gcp-metadata": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@google/genai/node_modules/google-auth-library": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", + "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^7.0.0", + "gcp-metadata": "^8.0.0", + "google-logging-utils": "^1.0.0", + "gtoken": "^8.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@google/genai/node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@google/genai/node_modules/gtoken": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz", + "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==", + "license": "MIT", + "dependencies": { + "gaxios": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@google/generative-ai": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.24.1.tgz", + "integrity": "sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.3.tgz", + "integrity": "sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/proto-loader": "^0.8.0", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz", + "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.5.3", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/core": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.2.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.2.0", + "jest-snapshot": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@sinonjs/fake-timers": "^13.0.0", + "@types/node": "*", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", + "@types/node": "*", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^5.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "slash": "^3.0.0", + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/test-result": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", + "slash": "^3.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/types": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.4.tgz", + "integrity": "sha512-p7X/ytJDIdwUfFL/CLOhKgdfJe1Fa8uw9seJYvdOmnP9JBWGWHW69HkOixXS6Wy9yvGf1MbhcS6lVmrhy4jm2g==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", + "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.47", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz", + "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cors": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^30.0.0", + "pretty-format": "^30.0.0" + } + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/multer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-2.0.0.tgz", + "integrity": "sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/node": { + "version": "25.0.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz", + "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/request": { + "version": "2.48.13", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz", + "integrity": "sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.5" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/superagent": { + "version": "8.1.9", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz", + "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/supertest": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.3.tgz", + "integrity": "sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/methods": "^1.1.4", + "@types/superagent": "^8.1.0" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "optional": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", + "optional": true, + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/babel-jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "30.2.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", + "dev": true, + "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/babel__core": "^7.20.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" + } + }, + "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==" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": 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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz", + "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/bson": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-7.0.0.tgz", + "integrity": "sha512-Kwc6Wh4lQ5OmkqqKhYGKIuELXl+EPYSCObVE6bWsp1T/cGkOCBN0I8wF/T44BiuhHyNi1mmKVPXk60d41xZ7kw==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "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", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "optional": true, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/dedent": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", + "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause", - "optional": true + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/@tootallnate/once": { + "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "license": "MIT", - "optional": true, "engines": { - "node": ">= 10" + "node": ">= 0.8" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@types/caseless": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", "license": "MIT", - "optional": true + "optional": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*" + "safe-buffer": "^5.0.1" } }, - "node_modules/@types/cors": { - "version": "2.8.19", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", - "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@types/express": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", - "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", - "dev": true, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/serve-static": "^2" + "engines": { + "node": ">= 0.8" } }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "dev": true, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "once": "^1.4.0" } }, - "node_modules/@types/express/node_modules/@types/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/http-errors": "*", - "@types/node": "*" + "is-arrayish": "^0.2.1" } }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@types/jsonwebtoken": { - "version": "9.0.10", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", - "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { - "@types/ms": "*", - "@types/node": "*" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", - "optional": true + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, - "node_modules/@types/multer": { + "node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-2.0.0.tgz", - "integrity": "sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", - "dependencies": { - "@types/express": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/node": { - "version": "25.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz", - "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.16.0" + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/request": { - "version": "2.48.13", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.13.tgz", - "integrity": "sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "license": "MIT", - "optional": true, - "dependencies": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.5" + "engines": { + "node": ">= 0.6" } }, - "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", - "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "license": "MIT", "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.35", - "safe-buffer": "^5.2.1" - }, "engines": { - "node": ">= 0.12" + "node": ">=6" } }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@types/mime": "^1", - "@types/node": "*" + "bare-events": "^2.7.0" } }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" }, - "node_modules/@types/whatwg-url": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", - "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/expect": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "event-target-shim": "^5.0.0" + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": ">=6.5" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "license": "MIT", "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "node_modules/accepts/node_modules/mime-db": { + "node_modules/express/node_modules/mime-db": { "version": "1.54.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", @@ -912,7 +3821,7 @@ "node": ">= 0.6" } }, - "node_modules/accepts/node_modules/mime-types": { + "node_modules/express/node_modules/mime-types": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", @@ -928,1584 +3837,1755 @@ "url": "https://opencollective.com/express" } }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, + "node_modules/express/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", "dependencies": { - "acorn": "^8.11.0" + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" + "node": ">= 0.6" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/farmhash-modern": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", + "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/anymatch": { + "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT" }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "node_modules/fast-xml-parser": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", "optional": true, - "engines": { - "node": ">=8" + "dependencies": { + "strnum": "^1.1.1" + }, + "bin": { + "fxparser": "src/cli/cli.js" } }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "license": "MIT", - "optional": true, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { - "retry": "0.13.1" + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", - "license": "MIT", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "bser": "2.1.1" } }, - "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==" - }, - "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==", + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "url": "https://github.com/sponsors/jimmywarting" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "paypal", + "url": "https://paypal.me/jimmywarting" } ], - "license": "MIT" - }, - "node_modules/bignumber.js": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", - "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, "engines": { - "node": "*" + "node": "^12.20 || >= 14.13" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/body-parser": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", - "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", "license": "MIT", "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.3", - "http-errors": "^2.0.0", - "iconv-lite": "^0.7.0", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", "on-finished": "^2.4.1", - "qs": "^6.14.1", - "raw-body": "^3.0.1", - "type-is": "^2.0.1" + "parseurl": "^1.3.3", + "statuses": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">= 18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, - "node_modules/body-parser/node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, "license": "MIT", "dependencies": { - "mime-db": "^1.54.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/body-parser/node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "license": "MIT", "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" + "semver": "^6.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/bson": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-7.0.0.tgz", - "integrity": "sha512-Kwc6Wh4lQ5OmkqqKhYGKIuELXl+EPYSCObVE6bWsp1T/cGkOCBN0I8wF/T44BiuhHyNi1mmKVPXk60d41xZ7kw==", + "node_modules/firebase-admin": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.6.0.tgz", + "integrity": "sha512-GdPA/t0+Cq8p1JnjFRBmxRxAGvF/kl2yfdhALl38PrRp325YxyQ5aNaHui0XmaKcKiGRFIJ/EgBNWFoDP0onjw==", "license": "Apache-2.0", + "dependencies": { + "@fastify/busboy": "^3.0.0", + "@firebase/database-compat": "^2.0.0", + "@firebase/database-types": "^1.0.6", + "@types/node": "^22.8.7", + "farmhash-modern": "^1.1.0", + "fast-deep-equal": "^3.1.1", + "google-auth-library": "^9.14.2", + "jsonwebtoken": "^9.0.0", + "jwks-rsa": "^3.1.0", + "node-forge": "^1.3.1", + "uuid": "^11.0.2" + }, "engines": { - "node": ">=20.19.0" + "node": ">=18" + }, + "optionalDependencies": { + "@google-cloud/firestore": "^7.11.0", + "@google-cloud/storage": "^7.14.0" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "node_modules/firebase-admin/node_modules/@types/node": { + "version": "22.19.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.6.tgz", + "integrity": "sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==", + "license": "MIT", "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" + "undici-types": "~6.21.0" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/firebase-admin/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/firebase-admin/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", - "engines": { - "node": ">= 0.8" + "bin": { + "uuid": "dist/esm/bin/uuid" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, "engines": { - "node": ">= 0.4" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", + "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==", + "license": "ISC", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/child_process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", - "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">= 6" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "optional": true, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "fetch-blob": "^3.1.2" }, "engines": { - "node": ">=12" + "node": ">=12.20.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/formidable": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", + "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=14.0.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, "engines": { "node": ">= 0.8" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/content-disposition": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", - "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", - "license": "MIT", - "engines": { - "node": ">=18" - }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "optional": true }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=14" } }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "node_modules/gaxios/node_modules/node-fetch": { + "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==", "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">=6.6.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", "dependencies": { - "object-assign": "^4", - "vary": "^1" + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=14" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "devOptional": true, + "license": "ISC", "engines": { - "node": ">= 12" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=8.0.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.3.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" + "node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://dotenvx.com" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">= 6" } }, - "node_modules/duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", - "optional": true, "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" + "balanced-match": "^1.0.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", "license": "Apache-2.0", "dependencies": { - "safe-buffer": "^5.0.1" + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", + "node_modules/google-gax": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", + "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.3.0", + "node-fetch": "^2.7.0", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=14" } }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "node_modules/google-gax/node_modules/node-fetch": { + "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==", "license": "MIT", "optional": true, "dependencies": { - "once": "^1.4.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", + "node_modules/google-logging-utils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", + "license": "Apache-2.0", "engines": { - "node": ">= 0.4" + "node": ">=14" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "gaxios": "^6.0.0", + "jws": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=14.0.0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", - "optional": true, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "depd": "^2.0.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">= 18" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "optional": true }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { - "mime-db": "^1.54.0" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { - "node": ">=18" + "node": ">= 0.8" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/farmhash-modern": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", - "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "license": "MIT" }, - "node_modules/fast-xml-parser": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", - "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "license": "MIT", "optional": true, "dependencies": { - "strnum": "^1.1.1" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, - "bin": { - "fxparser": "src/cli/cli.js" + "engines": { + "node": ">= 6" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, "dependencies": { - "websocket-driver": ">=0.5.1" + "debug": "4" }, "engines": { - "node": ">=0.8.0" + "node": ">= 6.0.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": ">= 14" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10.17.0" } }, - "node_modules/finalhandler": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 18.0.0" + "node": ">=0.10.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, - "node_modules/firebase-admin": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.6.0.tgz", - "integrity": "sha512-GdPA/t0+Cq8p1JnjFRBmxRxAGvF/kl2yfdhALl38PrRp325YxyQ5aNaHui0XmaKcKiGRFIJ/EgBNWFoDP0onjw==", - "license": "Apache-2.0", + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", "dependencies": { - "@fastify/busboy": "^3.0.0", - "@firebase/database-compat": "^2.0.0", - "@firebase/database-types": "^1.0.6", - "@types/node": "^22.8.7", - "farmhash-modern": "^1.1.0", - "fast-deep-equal": "^3.1.1", - "google-auth-library": "^9.14.2", - "jsonwebtoken": "^9.0.0", - "jwks-rsa": "^3.1.0", - "node-forge": "^1.3.1", - "uuid": "^11.0.2" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=18" + "node": ">=8" }, - "optionalDependencies": { - "@google-cloud/firestore": "^7.11.0", - "@google-cloud/storage": "^7.14.0" - } - }, - "node_modules/firebase-admin/node_modules/@types/node": { - "version": "22.19.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.6.tgz", - "integrity": "sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/firebase-admin/node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "license": "MIT" - }, - "node_modules/firebase-admin/node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=0.8.19" } }, - "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==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.10" } }, - "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "license": "MIT", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=0.10.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=0.10.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "license": "MIT", - "optional": true + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" }, - "node_modules/gaxios": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9", - "uuid": "^9.0.1" + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/gaxios/node_modules/node-fetch": { - "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==", - "license": "MIT", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "whatwg-url": "^5.0.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=10" } }, - "node_modules/gcp-metadata": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", - "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", - "license": "Apache-2.0", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "gaxios": "^6.1.1", - "google-logging-utils": "^0.0.2", - "json-bigint": "^1.0.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14" + "node": ">=10" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "optional": true, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "license": "ISC", + "node_modules/istanbul-lib-source-maps/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "is-glob": "^4.0.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { - "balanced-match": "^1.0.0" + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", + "node_modules/jest": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", + "import-local": "^3.2.0", + "jest-cli": "30.2.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/google-auth-library": { - "version": "9.15.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", - "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", - "license": "Apache-2.0", + "node_modules/jest-changed-files": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", + "dev": true, + "license": "MIT", "dependencies": { - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^6.1.1", - "gcp-metadata": "^6.1.0", - "gtoken": "^7.0.0", - "jws": "^4.0.0" + "execa": "^5.1.1", + "jest-util": "30.2.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/google-gax": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.1.tgz", - "integrity": "sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==", - "license": "Apache-2.0", - "optional": true, + "node_modules/jest-circus": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", + "dev": true, + "license": "MIT", "dependencies": { - "@grpc/grpc-js": "^1.10.9", - "@grpc/proto-loader": "^0.7.13", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "google-auth-library": "^9.3.0", - "node-fetch": "^2.7.0", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.2", - "protobufjs": "^7.3.2", - "retry-request": "^7.0.0", - "uuid": "^9.0.1" + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "co": "^4.6.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "p-limit": "^3.1.0", + "pretty-format": "30.2.0", + "pure-rand": "^7.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-cli": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/google-gax/node_modules/node-fetch": { - "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==", + "node_modules/jest-config": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.2.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "micromatch": "^4.0.8", + "parse-json": "^5.2.0", + "pretty-format": "30.2.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "encoding": "^0.1.0" + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { - "encoding": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { "optional": true } } }, - "node_modules/google-logging-utils": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", - "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", - "license": "Apache-2.0", + "node_modules/jest-diff": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" + }, "engines": { - "node": ">=14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/jest-docblock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "detect-newline": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/gtoken": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", - "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "node_modules/jest-each": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", + "dev": true, "license": "MIT", "dependencies": { - "gaxios": "^6.0.0", - "jws": "^4.0.0" + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "jest-util": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": ">=14.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/jest-environment-node": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" + }, "engines": { - "node": ">=4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/jest-haste-map": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", + "dev": true, "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "micromatch": "^4.0.8", + "walker": "^1.0.8" + }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "fsevents": "^2.3.3" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/jest-leak-detector": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "@jest/get-type": "30.1.0", + "pretty-format": "30.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-matcher-utils": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], + "node_modules/jest-message-util": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", + "dev": true, "license": "MIT", - "optional": true + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.2.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "node_modules/jest-mock": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", + "dev": true, "license": "MIT", "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" + "@jest/types": "30.2.0", + "@types/node": "*", + "jest-util": "30.2.0" }, "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "license": "MIT" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "engines": { + "node": ">=6" }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 6" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/http-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/jest-resolve": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "debug": "4" + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": ">= 6.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "node_modules/jest-resolve-dependencies": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", + "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.2.0" }, "engines": { - "node": ">= 14" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "node_modules/jest-runner": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-util": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.2.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/jest-validate": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, + "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.2.0" }, "engines": { - "node": ">=8" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-watcher": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.2.0", + "string-length": "^4.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-worker": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.2.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" + }, "engines": { - "node": ">=0.12.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/is-promise": { + "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=10" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jose": { @@ -2517,6 +5597,40 @@ "url": "https://github.com/sponsors/panva" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -2526,6 +5640,26 @@ "bignumber.js": "^9.0.0" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonwebtoken": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", @@ -2619,11 +5753,41 @@ "node": ">=18.0.0" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/limiter": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -2673,6 +5837,13 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -2708,12 +5879,38 @@ "lru-cache": "6.0.0" } }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -2749,6 +5946,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "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", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -2768,6 +6009,16 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2821,38 +6072,184 @@ "node": ">=20.19.0" } }, - "node_modules/mongodb-connection-string-url/node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-memory-server": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-11.0.1.tgz", + "integrity": "sha512-nUlKovSJZBh7q5hPsewFRam9H66D08Ne18nyknkNalfXMPtK1Og3kOcuqQhcX88x/pghSZPIJHrLbxNFW3OWiw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "mongodb-memory-server-core": "11.0.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/mongodb-memory-server-core": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-11.0.1.tgz", + "integrity": "sha512-IcIb2S9Xf7Lmz43Z1ZujMqNg7PU5Q7yn+4wOnu7l6pfeGPkEmlqzV1hIbroVx8s4vXhPB1oMGC1u8clW7aj3Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "camelcase": "^6.3.0", + "debug": "^4.4.3", + "find-cache-dir": "^3.3.2", + "follow-redirects": "^1.15.11", + "https-proxy-agent": "^7.0.6", + "mongodb": "^7.0.0", + "new-find-package-json": "^2.0.0", + "semver": "^7.7.3", + "tar-stream": "^3.1.7", + "tslib": "^2.8.1", + "yauzl": "^3.2.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/gaxios": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-memory-server-core/node_modules/gcp-metadata": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-7.0.1.tgz", + "integrity": "sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, "dependencies": { - "punycode": "^2.3.1" + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", + "json-bigint": "^1.0.0" }, "engines": { "node": ">=18" } }, - "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", + "node_modules/mongodb-memory-server-core/node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, "engines": { - "node": ">=12" + "node": ">=14" } }, - "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", + "node_modules/mongodb-memory-server-core/node_modules/mongodb": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.0.0.tgz", + "integrity": "sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" + "@mongodb-js/saslprep": "^1.3.0", + "bson": "^7.0.0", + "mongodb-connection-string-url": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.806.0", + "@mongodb-js/zstd": "^7.0.0", + "gcp-metadata": "^7.0.1", + "kerberos": "^7.0.0", + "mongodb-client-encryption": ">=7.0.0 <7.1.0", + "snappy": "^7.3.2", + "socks": "^2.8.6" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } } }, "node_modules/mongoose": { @@ -3008,6 +6405,29 @@ "node": ">= 10.16.0" } }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "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": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", @@ -3017,6 +6437,26 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/new-find-package-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/new-find-package-json/-/new-find-package-json-2.0.0.tgz", + "integrity": "sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=12.22.0" + } + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -3064,6 +6504,20 @@ "node": ">= 6.13.0" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, "node_modules/nodemon": { "version": "3.1.11", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz", @@ -3102,6 +6556,19 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3153,12 +6620,28 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "devOptional": true, "license": "MIT", - "optional": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -3169,12 +6652,70 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/package-json-from-dist": { "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==", "license": "BlueOak-1.0.0" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3194,6 +6735,26 @@ "util": "^0.10.3" } }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -3235,6 +6796,20 @@ "url": "https://opencollective.com/express" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -3247,6 +6822,57 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -3326,6 +6952,23 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/qs": { "version": "6.14.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", @@ -3365,6 +7008,13 @@ "node": ">= 0.10" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -3395,12 +7045,35 @@ "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==", + "devOptional": true, "license": "MIT", - "optional": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -3483,9 +7156,10 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3692,6 +7366,37 @@ "node": ">=10" } }, + "node_modules/slash": { + "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" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -3701,6 +7406,26 @@ "memory-pager": "^1.0.2" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", @@ -3735,6 +7460,18 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3748,6 +7485,20 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3802,6 +7553,39 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strnum": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", @@ -3822,6 +7606,42 @@ "license": "MIT", "optional": true }, + "node_modules/superagent": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz", + "integrity": "sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.1", + "cookiejar": "^2.1.4", + "debug": "^4.3.7", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.5", + "formidable": "^3.5.4", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.14.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/supertest": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.2.2.tgz", + "integrity": "sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cookie-signature": "^1.2.2", + "methods": "^1.1.2", + "superagent": "^10.3.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -3834,6 +7654,34 @@ "node": ">=4" } }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/teeny-request": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", @@ -3899,6 +7747,60 @@ } } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3935,6 +7837,72 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, + "node_modules/ts-jest": { + "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jest-util": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -3984,6 +7952,29 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -4016,6 +8007,20 @@ "node": ">=14.17" } }, + "node_modules/uglify-js": { + "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", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -4037,6 +8042,72 @@ "node": ">= 0.8" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/util": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", @@ -4076,6 +8147,32 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -4084,6 +8181,16 @@ "node": ">= 0.8" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/web-streams-polyfill": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", @@ -4147,12 +8254,19 @@ "node": ">= 8" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, "license": "MIT", - "optional": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4189,6 +8303,20 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/ws": { "version": "8.18.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", @@ -4222,8 +8350,8 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "devOptional": true, "license": "ISC", - "optional": true, "engines": { "node": ">=10" } @@ -4238,8 +8366,8 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "devOptional": true, "license": "MIT", - "optional": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -4257,8 +8385,22 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "devOptional": true, "license": "ISC", - "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, "engines": { "node": ">=12" } @@ -4276,8 +8418,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "devOptional": true, "license": "MIT", - "optional": true, "engines": { "node": ">=10" }, diff --git a/server/package.json b/server/package.json index 3521ae1..29c8b11 100644 --- a/server/package.json +++ b/server/package.json @@ -1,5 +1,5 @@ { - "name": "bird-species-api", + "name": "feather-scan", "version": "1.0.0", "description": "1. Clone the repository:\r ```sh\r git clone ", "main": "index.js", @@ -7,7 +7,9 @@ "build": "tsc", "start": "node dist/index.js", "dev": "nodemon src/index.ts", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage" }, "keywords": [], "author": "", @@ -31,9 +33,15 @@ "devDependencies": { "@types/cors": "^2.8.19", "@types/express": "^5.0.6", + "@types/jest": "^30.0.0", "@types/multer": "^2.0.0", "@types/node": "^25.0.8", + "@types/supertest": "^6.0.3", + "jest": "^30.2.0", + "mongodb-memory-server": "^11.0.1", "nodemon": "^3.1.11", + "supertest": "^7.2.2", + "ts-jest": "^29.4.6", "ts-node": "^10.9.2", "typescript": "^5.9.3" } diff --git a/server/src/__tests__/health.test.ts b/server/src/__tests__/health.test.ts new file mode 100644 index 0000000..8f3b9ac --- /dev/null +++ b/server/src/__tests__/health.test.ts @@ -0,0 +1,11 @@ +import request from 'supertest'; +import app from '../app'; + +describe('GET /health', () => { + it("should return ok", async () => { + const res = await request(app).get('/health'); + + expect(res.status).toBe(200); + expect(res.body).toEqual({ status: "ok" }); + }) +}); diff --git a/server/src/__tests__/history.test.ts b/server/src/__tests__/history.test.ts new file mode 100644 index 0000000..ffd1f3b --- /dev/null +++ b/server/src/__tests__/history.test.ts @@ -0,0 +1,72 @@ +// __tests__/history.test.ts + +// Intercept actual middleware with mock middleware +// attach 'user' property to HTTP reqs +import { uid } from './setup/auth'; + +jest.mock("../middlewares/auth", () => ({ + __esModule: true, + default: (req: any, _res: any, next: any) => { + req.user = { uid }; + next(); + }, +})); + +import request from 'supertest'; +import app from '../app'; +import { connectTestDB, disconnectTestDB } from './setup/db'; +import History from '../models/History.models'; + +// db connect & disconnect +beforeAll(async () => { + await connectTestDB(); +}); +afterAll(async () => { + await disconnectTestDB(); +}); + +// GET +describe('GET /history', () => { + it("should return 200 for authenticated user", async () => { + const res = await request(app).get('/history'); + + expect(res.status).toBe(200); + expect(res.body).toMatchObject({ + page: expect.any(Number), + limit: expect.any(Number), + totalCount: expect.any(Number), + userHistory: expect.any(Array), + }) + }); +}); + + +// DELETE +describe('DELETE /history', () => { + it("should return 204 and delete user's own record", async () => { + const record = await History.create({ + uid, + modelType: "bird", + prediction: { + label: 'Bald Eagle', + confidence: 100, + } + }); + const res = await request(app).delete(`/history/${record._id}`); + + expect(res.status).toBe(204); + + const found = await History.findById(record._id); + expect(found).toBeNull(); + }); + + it("should return 404 when deleting non-existent record", async () => { + const fakeId = '000000000000000000000000'; + const res = await request(app).delete(`/history/${fakeId}`); + + expect(res.status).toBe(404); + expect(res.body).toMatchObject({ + error: "Record not found" + }); + }); +}); \ No newline at end of file diff --git a/server/src/__tests__/setup/auth.ts b/server/src/__tests__/setup/auth.ts new file mode 100644 index 0000000..c591944 --- /dev/null +++ b/server/src/__tests__/setup/auth.ts @@ -0,0 +1 @@ +export const uid = 'iNB3nKNm5VaypOSOwG09myzSTJF3'; diff --git a/server/src/__tests__/setup/db.ts b/server/src/__tests__/setup/db.ts new file mode 100644 index 0000000..40aad07 --- /dev/null +++ b/server/src/__tests__/setup/db.ts @@ -0,0 +1,19 @@ +// __tests_/setup/db.ts +import mongoose from "mongoose"; +import { MongoMemoryServer } from 'mongodb-memory-server'; + +let mongo: MongoMemoryServer; + +// Creates a temp DB on machines RAM (/temp directory) +export const connectTestDB = async () => { + mongo = await MongoMemoryServer.create(); + // creates a tmp uri like "mongodb://127.0.0.1:55417/" + const uri = mongo.getUri(); + await mongoose.connect(uri); +}; + +export const disconnectTestDB = async () => { + await mongoose.connection.dropDatabase(); + await mongoose.connection.close(); + await mongo.stop(); +}; \ No newline at end of file diff --git a/server/src/__tests__/user.test.ts b/server/src/__tests__/user.test.ts new file mode 100644 index 0000000..dd84a2a --- /dev/null +++ b/server/src/__tests__/user.test.ts @@ -0,0 +1,42 @@ +// __tests__/user.test.ts + +// Intercept actual middleware with mock middleware +// attach 'user' property to HTTP reqs +import { uid } from './setup/auth'; + +jest.mock("../middlewares/auth", () => ({ + __esModule: true, + default: (req: any, _res: any, next: any) => { + req.user = { uid }; + next(); + }, +})); + +import request from 'supertest'; +import app from '../app'; +import User from '../models/User.models'; +import { connectTestDB, disconnectTestDB } from './setup/db'; + +beforeAll(async() => await connectTestDB()); +afterAll (async() => await disconnectTestDB()); + +describe('GET /user', () => { + it("should return 200 and user data", async() => { + await User.create({ + uid, + name: 'test', + email: 'abc@test.com', + }); + + const res = await request(app).get('/user'); + + expect(res.status).toBe(200); + expect(res.body).toMatchObject({ + userData: { + uid: expect.any(String), + name: expect.any(String), + email: expect.any(String), + } + }); + }); +}); \ No newline at end of file diff --git a/server/src/app.ts b/server/src/app.ts new file mode 100644 index 0000000..e70ee22 --- /dev/null +++ b/server/src/app.ts @@ -0,0 +1,30 @@ +/* + - src/app.ts + - creates express app + - defines entry points & routes +*/ + +import express, { Request, Response } from "express" +import cors from "cors"; +import historyRoutes from './routes/history.routes'; +import uploadRoutes from './routes/upload.routes'; +import healthRoutes from './routes/health.routes'; +import userRoutes from './routes/user.routes'; + +// Create express app +const app = express(); +app.use(cors()); +app.use(express.json()); + +// routes +app.use('/history', historyRoutes); +app.use('/upload', uploadRoutes); +app.use('/health', healthRoutes); +app.use('/user', userRoutes); + +// test route +app.get("/test", (req: Request, res: Response) => { + res.status(200).send("OK"); +}); + +export default app; \ No newline at end of file diff --git a/server/src/controllers/health.controller.ts b/server/src/controllers/health.controller.ts index 542bb0f..e4055f2 100644 --- a/server/src/controllers/health.controller.ts +++ b/server/src/controllers/health.controller.ts @@ -1,5 +1,5 @@ import { Request, Response } from 'express'; export const healthCheck = (req: Request, res: Response) => { - res.status(200).send("OK"); + res.status(200).json({ status: "ok" }); }; \ No newline at end of file diff --git a/server/src/controllers/history.controller.ts b/server/src/controllers/history.controller.ts index ce72daa..d2d72f1 100644 --- a/server/src/controllers/history.controller.ts +++ b/server/src/controllers/history.controller.ts @@ -6,7 +6,6 @@ import { AuthRequest } from "../middlewares/auth"; import { Response } from "express"; import History from "../models/History.models"; -import { addHistoryRecordSchema } from "../validators/history.schema"; export const getHistory = async (req: AuthRequest, res: Response) => { try { @@ -52,7 +51,7 @@ export const deleteRecord = async (req: AuthRequest, res: Response) => { } await record.deleteOne(); - res.status(200).json({ message: "Deleted successfully" }); + res.status(204).send(); } catch (err) { res.status(500).json({ error: "Failed to delete record" }); } diff --git a/server/src/controllers/upload.controller.ts b/server/src/controllers/upload.controller.ts index 0aeed54..1f19479 100644 --- a/server/src/controllers/upload.controller.ts +++ b/server/src/controllers/upload.controller.ts @@ -63,7 +63,7 @@ export const uploadImage = async (req: AuthRequest, res: Response) => { const validateResponse = MLPredictionSchema.safeParse(response); if (!validateResponse.success) { - res.status(500).json({ error: "Internal server error" }); + res.status(500).json({ error: "Prediction validation failed" }); return; } @@ -84,13 +84,11 @@ export const uploadImage = async (req: AuthRequest, res: Response) => { label: response.label, confidence: response.confidence, info: response.info, - history }); } catch (err) { // console.error(err); if (!res.headersSent) { res.status(500).json({ error: "Server error" }); - return } return; } diff --git a/server/src/controllers/user.controller.ts b/server/src/controllers/user.controller.ts index 8cc7e9c..feed1a6 100644 --- a/server/src/controllers/user.controller.ts +++ b/server/src/controllers/user.controller.ts @@ -3,7 +3,7 @@ import { Response } from 'express'; import { AuthRequest } from '../middlewares/auth'; // Gets user data (name, email, uid) -export const getUserRecords = async (req: AuthRequest, res: Response) => { +export const getUserRecord = async (req: AuthRequest, res: Response) => { try { const user = req.user!; const { uid } = user; diff --git a/server/src/index.ts b/server/src/index.ts index 9638b97..4dc5cfa 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -8,33 +8,12 @@ - fail fast if bootstrapping fails (fail fast = fast crash when critical err) */ -import express, { Request, Response } from "express" -import cors from "cors"; import connectDB from "./config/db"; -import historyRoutes from './routes/history.routes'; -import uploadRoutes from './routes/upload.routes'; -import healthRoutes from './routes/health.routes'; -import userRoutes from './routes/user.routes'; import env from './config/env'; +import app from './app'; connectDB(); -// Create express app -const app = express(); -app.use(cors()); -app.use(express.json()); - -// routes -app.use('/history', historyRoutes); -app.use('/upload', uploadRoutes); -app.use('/health', healthRoutes); -app.use('/user', userRoutes); - -// test route -app.get("/test", (req: Request, res: Response) => { - res.status(200).send("OK"); -}); - // LISTEN const PORT = Number(env.PORT) || 3000; app.listen(PORT, () => { diff --git a/server/src/middlewares/auth.ts b/server/src/middlewares/auth.ts index a3e4a6e..deab5b1 100644 --- a/server/src/middlewares/auth.ts +++ b/server/src/middlewares/auth.ts @@ -1,60 +1,61 @@ - /* - middleware: - - a gate between client & api endpoints - - acts as a guard, only allows - - auth.ts: - 1. verify token sent by client (in authheader) with firebase servers - 2. attach idToken to request (req.user) for further use - 3. ensure user exists in DB - */ - import { Request, Response, NextFunction } from 'express'; - import admin from '../config/firebase'; - import UserModel from '../models/User.models'; - - // Create a child class of 'Request' containing additional 'user' prop - export interface AuthRequest extends Request { - user?: admin.auth.DecodedIdToken; - } +/* + middleware: + - a gate between client & api endpoints + - acts as a guard, only allows + + auth.ts: + 1. verify token sent by client (in authheader) with firebase servers + 2. attach idToken to request (req.user) for further use + 3. ensure user exists in DB +*/ +import { Request, Response, NextFunction } from 'express'; +import admin from '../config/firebase'; +import UserModel from '../models/User.models'; + +// Create a child class of 'Request' containing additional 'user' prop +export interface AuthRequest extends Request { + user?: admin.auth.DecodedIdToken; +} - // A function that extracts & attaches 'user' token to HTTP requests - const authMiddleware = async ( - req: AuthRequest, - res: Response, - next: NextFunction - ) => { - try { - const authHeader = req.headers.authorization; - - if (!authHeader || !authHeader.startsWith('Bearer ')) { - res.status(401).json({ message: "Unauthorized" }); - return; - } - - // S1.VERIFY FIREBASE ID TOKEN - // raw firebase id token (jwt string) - const token = authHeader.split(" ")[1]; - - // a JSON object w properties like: uid, email, name, etc. - // it is safe to use bcz server generated, expiry checked - const decodedToken = await admin.auth().verifyIdToken(token); - - // S2. ATTACH TOKEN TO HTTP REQUEST - req.user = decodedToken; - - // S3. ENSURE USER EXISTS IN DB - const { uid, name, email } = decodedToken; - const user = await UserModel.findOneAndUpdate( - { uid }, - { $setOnInsert: { uid, name, email } }, - { upsert: true, new: true }, - ); - - next(); - } catch (err) { - res.status(401).json({ error: "Invalid or expired token" }); +// A function that extracts & attaches 'user' token to HTTP requests +const authMiddleware = async ( + req: AuthRequest, + res: Response, + next: NextFunction +) => { + try { + const authHeader = req.headers.authorization; + + if (!authHeader || !authHeader.startsWith('Bearer ')) { + res.status(401).json({ message: "Unauthorized" }); return; } - }; - export default authMiddleware; + // S1.VERIFY FIREBASE ID TOKEN + // raw firebase id token (jwt string) + const token = authHeader.split(" ")[1]; + + // a JSON object w properties like: uid, email, name, etc. + // it is safe to use bcz server generated, expiry checked + const decodedToken = await admin.auth().verifyIdToken(token); + + // S2. ATTACH TOKEN TO HTTP REQUEST + req.user = decodedToken; + // console.log(decodedToken); + + // S3. ENSURE USER EXISTS IN DB + const { uid, name, email } = decodedToken; + await UserModel.findOneAndUpdate( + { uid }, + { $setOnInsert: { uid, name, email } }, + { upsert: true }, + ); + + next(); + } catch (err) { + res.status(401).json({ error: "Invalid or expired token" }); + return; + } +}; + +export default authMiddleware; diff --git a/server/src/models/User.models.ts b/server/src/models/User.models.ts index a518396..89180e8 100644 --- a/server/src/models/User.models.ts +++ b/server/src/models/User.models.ts @@ -10,15 +10,15 @@ const userSchema = new mongoose.Schema( }, name: { type: String, - required: true + required: true, }, email: { type: String, - required: true + required: true, }, }, { - timestamps: true + timestamps: true, } ); diff --git a/server/src/routes/history.routes.ts b/server/src/routes/history.routes.ts index 466454a..ad50bb6 100644 --- a/server/src/routes/history.routes.ts +++ b/server/src/routes/history.routes.ts @@ -1,5 +1,5 @@ /* - routes/history.ts + routes/history.routes.ts - creates all endpoints related to history entity (db table) - this includes get, post, update, del, etc. - export this router to mount it on top of main server @@ -14,9 +14,6 @@ const router = Router(); // All endpoints below go through middleware router.use(authMiddleware); -// Insert record in DB -// router.post('/', addRecord); - // Get all records of given user router.get('/', getHistory); diff --git a/server/src/routes/user.routes.ts b/server/src/routes/user.routes.ts index 7c54a9c..4980025 100644 --- a/server/src/routes/user.routes.ts +++ b/server/src/routes/user.routes.ts @@ -1,11 +1,11 @@ import { Router } from 'express'; -import { getUserRecords } from '../controllers/user.controller'; +import { getUserRecord } from '../controllers/user.controller'; import authMiddleware from '../middlewares/auth'; const router = Router(); router.use(authMiddleware); -router.get('/', getUserRecords); +router.get('/', getUserRecord); export default router; \ No newline at end of file diff --git a/server/src/validators/history.schema.ts b/server/src/validators/history.schema.ts deleted file mode 100644 index 71e2eba..0000000 --- a/server/src/validators/history.schema.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - src/validator - - only job is to validate external input - - eg. db schema, HTTP req bodies, env vars, etc. - - use 'zod' to enforce history record structure -*/ - -import { z } from 'zod'; - -export const addHistoryRecordSchema = z.object({ - modelType: z.string().min(1), - prediction: z.object({ - label: z.string(), - confidence: z.number().max(100), - }), -}); - diff --git a/server/src/validators/prediction.schema.ts b/server/src/validators/prediction.schema.ts index 5367db2..eb824cf 100644 --- a/server/src/validators/prediction.schema.ts +++ b/server/src/validators/prediction.schema.ts @@ -3,4 +3,4 @@ import { z } from 'zod'; export const MLPredictionSchema = z.object({ label: z.string().min(1), confidence: z.number(), -}) \ No newline at end of file +}); \ No newline at end of file From f76e3503932774f70259595abdeaddbc8295ef8e Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Mon, 19 Jan 2026 17:19:37 +0530 Subject: [PATCH 2/6] Add github workflow --- .gitignore | 1 + images/test_coverage.png | Bin 188041 -> 0 bytes revision.md | 5 ++++- server/.github/workflows/test.yml | 15 +++++++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) delete mode 100644 images/test_coverage.png create mode 100644 server/.github/workflows/test.yml diff --git a/.gitignore b/.gitignore index 27b402e..9b3565c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules .env *.zip +images/ diff --git a/images/test_coverage.png b/images/test_coverage.png deleted file mode 100644 index a22c604a6e2580eef57d06a40ebefedefd9d8003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188041 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 Wu&?}vki$Cv>1#0=(OhBO&;JV)p8692 diff --git a/revision.md b/revision.md index f799c41..2fd628d 100644 --- a/revision.md +++ b/revision.md @@ -104,4 +104,7 @@ - Supertest: Fake HTTP requests to Express - Test Coverage: - how much of ur code gets executed when performing tests - - \ No newline at end of file + +## Continuous Integration +- the process of merging code into main branch frequently & ensure that the codebase is in a workable state +- each merge triggers an automatic build & test process \ No newline at end of file diff --git a/server/.github/workflows/test.yml b/server/.github/workflows/test.yml new file mode 100644 index 0000000..f267570 --- /dev/null +++ b/server/.github/workflows/test.yml @@ -0,0 +1,15 @@ +name: Test Project + +on: + pull_request + +jobs: + test: + runs-on: ubuntu-latest + container: + image: node:24 + steps: + - uses: actions/checkout@v3 + - run: npm ci + - run: npm test + - run: npm run build From 2397e8d23961112e8c03b78848d5b6a6ebbb293b Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Mon, 19 Jan 2026 17:27:04 +0530 Subject: [PATCH 3/6] Add github workflow --- .github/workflows/test.yml | 26 ++++++++++++++++++++++++++ server/.github/workflows/test.yml | 15 --------------- 2 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 server/.github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..ae8b30a --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,26 @@ +name: Backend Tests + +on: + pull_request + +jobs: + test: + runs-on: ubuntu-latest + defaults: + run: + working-directory: server + + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: server/package-lock.json + + + - run: npm ci + - run: npm test + # - run: npm run build diff --git a/server/.github/workflows/test.yml b/server/.github/workflows/test.yml deleted file mode 100644 index f267570..0000000 --- a/server/.github/workflows/test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Test Project - -on: - pull_request - -jobs: - test: - runs-on: ubuntu-latest - container: - image: node:24 - steps: - - uses: actions/checkout@v3 - - run: npm ci - - run: npm test - - run: npm run build From 5afa03eeb32a04baa4a3ca9f8d959f0ed380a7de Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Mon, 19 Jan 2026 17:33:58 +0530 Subject: [PATCH 4/6] Dummy commit to test CI --- server/src/controllers/history.controller.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/controllers/history.controller.ts b/server/src/controllers/history.controller.ts index d2d72f1..6ff8a1e 100644 --- a/server/src/controllers/history.controller.ts +++ b/server/src/controllers/history.controller.ts @@ -33,7 +33,6 @@ export const getHistory = async (req: AuthRequest, res: Response) => { userHistory }); // empty arr if no history } catch (err) { - // console.log(err); res.status(500).json({ error: "Failed to fetch records" }); } }; From 5cab8a818fea0374adac500b1bceec515d89e968 Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Mon, 19 Jan 2026 17:49:19 +0530 Subject: [PATCH 5/6] Add mock auth in health.test.ts to bypass firebase --- server/src/__tests__/health.test.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/src/__tests__/health.test.ts b/server/src/__tests__/health.test.ts index 8f3b9ac..4c2142a 100644 --- a/server/src/__tests__/health.test.ts +++ b/server/src/__tests__/health.test.ts @@ -1,3 +1,17 @@ +// __tests__/health.test.ts + +// Intercept actual middleware with mock middleware +// attach 'user' property to HTTP reqs +import { uid } from './setup/auth'; + +jest.mock("../middlewares/auth", () => ({ + __esModule: true, + default: (req: any, _res: any, next: any) => { + req.user = { uid }; + next(); + }, +})); + import request from 'supertest'; import app from '../app'; From 9f82398886384fba3349f1cb77027ebcfba9c44a Mon Sep 17 00:00:00 2001 From: Devansh Deshpande Date: Mon, 19 Jan 2026 18:10:07 +0530 Subject: [PATCH 6/6] fix: fixed firebase app init from import time to server startup time (index.ts) --- server/src/__tests__/health.test.ts | 12 ------------ server/src/config/firebase.ts | 17 ++++++++++++----- server/src/index.ts | 2 ++ server/src/middlewares/auth.ts | 5 ++--- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/server/src/__tests__/health.test.ts b/server/src/__tests__/health.test.ts index 4c2142a..0e9ba94 100644 --- a/server/src/__tests__/health.test.ts +++ b/server/src/__tests__/health.test.ts @@ -1,17 +1,5 @@ // __tests__/health.test.ts -// Intercept actual middleware with mock middleware -// attach 'user' property to HTTP reqs -import { uid } from './setup/auth'; - -jest.mock("../middlewares/auth", () => ({ - __esModule: true, - default: (req: any, _res: any, next: any) => { - req.user = { uid }; - next(); - }, -})); - import request from 'supertest'; import app from '../app'; diff --git a/server/src/config/firebase.ts b/server/src/config/firebase.ts index 3877d83..a9f3d93 100644 --- a/server/src/config/firebase.ts +++ b/server/src/config/firebase.ts @@ -3,15 +3,22 @@ - initialise admin and export */ -import serviceAccount from '../../serviceAccountKey.json'; import admin from 'firebase-admin'; -// Initialise firebase app -if (admin.apps.length === 0) { +let initialized = false; + +export const initFirebase = async () => { + if (initialized || process.env.NODE_ENV === 'test') return; + + const serviceAccountKey = require('../../serviceAccountKey.json'); + // Initialise firebase app admin.initializeApp({ - credential: admin.credential.cert(serviceAccount as admin.ServiceAccount) + credential: admin.credential.cert( + serviceAccountKey as admin.ServiceAccount + ), }); + + initialized = true; } -// export already initialised admin app export default admin; \ No newline at end of file diff --git a/server/src/index.ts b/server/src/index.ts index 4dc5cfa..c5061ff 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -11,8 +11,10 @@ import connectDB from "./config/db"; import env from './config/env'; import app from './app'; +import { initFirebase } from "./config/firebase"; connectDB(); +initFirebase(); // LISTEN const PORT = Number(env.PORT) || 3000; diff --git a/server/src/middlewares/auth.ts b/server/src/middlewares/auth.ts index deab5b1..73ac84b 100644 --- a/server/src/middlewares/auth.ts +++ b/server/src/middlewares/auth.ts @@ -18,11 +18,11 @@ export interface AuthRequest extends Request { } // A function that extracts & attaches 'user' token to HTTP requests -const authMiddleware = async ( +export default async function authMiddleware( req: AuthRequest, res: Response, next: NextFunction -) => { +) { try { const authHeader = req.headers.authorization; @@ -58,4 +58,3 @@ const authMiddleware = async ( } }; -export default authMiddleware;