From 8037f2bf22f974f8db4e4fcf9dec13df2e9aba2f Mon Sep 17 00:00:00 2001 From: zainrikaz21-prog Date: Tue, 17 Mar 2026 13:14:51 +0530 Subject: [PATCH 1/2] feat: T001 backend documentation and T002 NestJS project setup --- backend/.gitignore | 56 + backend/.prettierrc | 4 + backend/README.md | 98 + backend/eslint.config.mjs | 35 + backend/nest-cli.json | 8 + backend/package-lock.json | 10997 ++++++++++++++++ backend/package.json | 86 + backend/src/app.controller.spec.ts | 22 + backend/src/app.controller.ts | 12 + backend/src/app.module.ts | 10 + backend/src/app.service.ts | 8 + backend/src/main.ts | 8 + backend/test/app.e2e-spec.ts | 25 + backend/test/jest-e2e.json | 9 + backend/tsconfig.build.json | 4 + backend/tsconfig.json | 25 + docs/backend.md | 282 + docs/image.png | Bin 0 -> 85753 bytes .../frontend_frameworks.md" | 14 - 19 files changed, 11689 insertions(+), 14 deletions(-) create mode 100644 backend/.gitignore create mode 100644 backend/.prettierrc create mode 100644 backend/README.md create mode 100644 backend/eslint.config.mjs create mode 100644 backend/nest-cli.json create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 backend/src/app.controller.spec.ts create mode 100644 backend/src/app.controller.ts create mode 100644 backend/src/app.module.ts create mode 100644 backend/src/app.service.ts create mode 100644 backend/src/main.ts create mode 100644 backend/test/app.e2e-spec.ts create mode 100644 backend/test/jest-e2e.json create mode 100644 backend/tsconfig.build.json create mode 100644 backend/tsconfig.json create mode 100644 docs/backend.md create mode 100644 docs/image.png delete mode 100644 "\360\237\223\201 docs /frontend_frameworks.md" diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..4b56acf --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,56 @@ +# compiled output +/dist +/node_modules +/build + +# Logs +logs +*.log +npm-debug.log* +pnpm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# OS +.DS_Store + +# Tests +/coverage +/.nyc_output + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# temp directory +.temp +.tmp + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json diff --git a/backend/.prettierrc b/backend/.prettierrc new file mode 100644 index 0000000..a20502b --- /dev/null +++ b/backend/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..8f0f65f --- /dev/null +++ b/backend/README.md @@ -0,0 +1,98 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Discord +Backers on Open Collective +Sponsors on Open Collective + Donate us + Support us + Follow us on Twitter +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Project setup + +```bash +$ npm install +``` + +## Compile and run the project + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Run tests + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Deployment + +When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information. + +If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps: + +```bash +$ npm install -g @nestjs/mau +$ mau deploy +``` + +With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure. + +## Resources + +Check out a few resources that may come in handy when working with NestJS: + +- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework. +- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy). +- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/). +- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks. +- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com). +- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com). +- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs). +- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com). + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myƛliwiec](https://twitter.com/kammysliwiec) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE). diff --git a/backend/eslint.config.mjs b/backend/eslint.config.mjs new file mode 100644 index 0000000..4e9f827 --- /dev/null +++ b/backend/eslint.config.mjs @@ -0,0 +1,35 @@ +// @ts-check +import eslint from '@eslint/js'; +import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; +import globals from 'globals'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + { + ignores: ['eslint.config.mjs'], + }, + eslint.configs.recommended, + ...tseslint.configs.recommendedTypeChecked, + eslintPluginPrettierRecommended, + { + languageOptions: { + globals: { + ...globals.node, + ...globals.jest, + }, + sourceType: 'commonjs', + parserOptions: { + projectService: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + }, + { + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-floating-promises': 'warn', + '@typescript-eslint/no-unsafe-argument': 'warn', + "prettier/prettier": ["error", { endOfLine: "auto" }], + }, + }, +); diff --git a/backend/nest-cli.json b/backend/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/backend/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000..8e1e6b1 --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,10997 @@ +{ + "name": "backend", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "backend", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@nestjs/common": "^11.0.1", + "@nestjs/config": "^4.0.3", + "@nestjs/core": "^11.0.1", + "@nestjs/jwt": "^11.0.2", + "@nestjs/passport": "^11.0.5", + "@nestjs/platform-express": "^11.0.1", + "@nestjs/typeorm": "^11.0.0", + "bcryptjs": "^3.0.3", + "class-transformer": "^0.5.1", + "class-validator": "^0.15.1", + "cookie-parser": "^1.4.7", + "passport": "^0.7.0", + "passport-jwt": "^4.0.1", + "pg": "^8.20.0", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.1", + "typeorm": "^0.3.28" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@nestjs/cli": "^11.0.0", + "@nestjs/schematics": "^11.0.0", + "@nestjs/testing": "^11.0.1", + "@types/bcryptjs": "^2.4.6", + "@types/cookie-parser": "^1.4.10", + "@types/express": "^5.0.0", + "@types/jest": "^30.0.0", + "@types/node": "^22.10.7", + "@types/passport-jwt": "^4.0.1", + "@types/supertest": "^6.0.2", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2", + "globals": "^16.0.0", + "jest": "^30.0.0", + "prettier": "^3.4.2", + "source-map-support": "^0.5.21", + "supertest": "^7.0.0", + "ts-jest": "^29.2.5", + "ts-loader": "^9.5.2", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.3", + "typescript-eslint": "^8.20.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.19.tgz", + "integrity": "sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/core/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.19.tgz", + "integrity": "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.19", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.17", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-19.2.19.tgz", + "integrity": "sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "@inquirer/prompts": "7.3.2", + "ansi-colors": "4.1.3", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/@inquirer/prompts": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.2.tgz", + "integrity": "sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.1.2", + "@inquirer/confirm": "^5.1.6", + "@inquirer/editor": "^4.2.7", + "@inquirer/expand": "^4.0.9", + "@inquirer/input": "^4.1.6", + "@inquirer/number": "^3.0.9", + "@inquirer/password": "^4.0.9", + "@inquirer/rawlist": "^4.0.9", + "@inquirer/search": "^3.0.9", + "@inquirer/select": "^4.0.9" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@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": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "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.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.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": { + "@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": ">=6.9.0" + } + }, + "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-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": ">=6.9.0" + } + }, + "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": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "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": ">=6.9.0" + } + }, + "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": ">=6.9.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": ">=6.9.0" + } + }, + "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", + "engines": { + "node": ">=6.9.0" + } + }, + "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", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "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": { + "@babel/core": "^7.0.0-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": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.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/@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": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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/@borewit/text-codec": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", + "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.0.tgz", + "integrity": "sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.0.tgz", + "integrity": "sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "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/load-nyc-config/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/@istanbuljs/load-nyc-config/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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@istanbuljs/load-nyc-config/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/@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.3.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "jest-message-util": "30.3.0", + "jest-util": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz", + "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.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.3.0", + "jest-config": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-resolve-dependencies": "30.3.0", + "jest-runner": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "jest-watcher": "30.3.0", + "pretty-format": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz", + "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-mock": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.3.0", + "jest-snapshot": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "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.3.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz", + "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@sinonjs/fake-timers": "^15.0.0", + "@types/node": "*", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.3.0.tgz", + "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/types": "30.3.0", + "jest-mock": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.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.5.0", + "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.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.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/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "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://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", + "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.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/test-result": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/types": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", + "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.3.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.3.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.3.0", + "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/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "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/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/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==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "devOptional": true, + "license": "MIT" + }, + "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/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/@nestjs/cli": { + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-11.0.16.tgz", + "integrity": "sha512-P0H+Vcjki6P5160E5QnMt3Q0X5FTg4PZkP99Ig4lm/4JWqfw32j3EXv3YBTJ2DmxLwOQ/IS9F7dzKpMAgzKTGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "@angular-devkit/schematics-cli": "19.2.19", + "@inquirer/prompts": "7.10.1", + "@nestjs/schematics": "^11.0.1", + "ansis": "4.2.0", + "chokidar": "4.0.3", + "cli-table3": "0.6.5", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "9.1.0", + "glob": "13.0.0", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "tsconfig-paths": "4.2.0", + "tsconfig-paths-webpack-plugin": "4.2.0", + "typescript": "5.9.3", + "webpack": "5.104.1", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 20.11" + }, + "peerDependencies": { + "@swc/cli": "^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0", + "@swc/core": "^1.3.62" + }, + "peerDependenciesMeta": { + "@swc/cli": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/@nestjs/cli/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@nestjs/cli/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@nestjs/cli/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/@nestjs/cli/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nestjs/cli/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nestjs/cli/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nestjs/cli/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@nestjs/cli/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@nestjs/cli/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.104.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", + "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.4", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.16", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "11.1.16", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.16.tgz", + "integrity": "sha512-JSIeW+USuMJkkcNbiOdcPkVCeI3TSnXstIVEPpp3HiaKnPRuSbUUKm9TY9o/XpIcPHWUOQItAtC5BiAwFdVITQ==", + "license": "MIT", + "dependencies": { + "file-type": "21.3.0", + "iterare": "1.2.1", + "load-esm": "1.0.3", + "tslib": "2.8.1", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": ">=0.4.1", + "class-validator": ">=0.13.2", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/config": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-4.0.3.tgz", + "integrity": "sha512-FQ3M3Ohqfl+nHAn5tp7++wUQw0f2nAk+SFKe8EpNRnIifPqvfJP6JQxPKtFLMOHbyer4X646prFG4zSRYEssQQ==", + "license": "MIT", + "dependencies": { + "dotenv": "17.2.3", + "dotenv-expand": "12.0.3", + "lodash": "4.17.23" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "rxjs": "^7.1.0" + } + }, + "node_modules/@nestjs/core": { + "version": "11.1.16", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.16.tgz", + "integrity": "sha512-tXWXyCiqWthelJjrE0KLFjf0O98VEt+WPVx5CrqCf+059kIxJ8y1Vw7Cy7N4fwQafWNrmFL2AfN87DDMbVAY0w==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@nuxt/opencollective": "0.4.1", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "8.3.0", + "tslib": "2.8.1", + "uid": "2.0.2" + }, + "engines": { + "node": ">= 20" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^11.0.0", + "@nestjs/microservices": "^11.0.0", + "@nestjs/platform-express": "^11.0.0", + "@nestjs/websockets": "^11.0.0", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/jwt": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-11.0.2.tgz", + "integrity": "sha512-rK8aE/3/Ma45gAWfCksAXUNbOoSOUudU0Kn3rT39htPF7wsYXtKfjALKeKKJbFrIWbLjsbqfXX5bIJNvgBugGA==", + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "9.0.10", + "jsonwebtoken": "9.0.3" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0" + } + }, + "node_modules/@nestjs/passport": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-11.0.5.tgz", + "integrity": "sha512-ulQX6mbjlws92PIM15Naes4F4p2JoxGnIJuUsdXQPT+Oo2sqQmENEZXM7eYuimocfHnKlcfZOuyzbA33LwUlOQ==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "passport": "^0.5.0 || ^0.6.0 || ^0.7.0" + } + }, + "node_modules/@nestjs/platform-express": { + "version": "11.1.16", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.16.tgz", + "integrity": "sha512-IOegr5+ZfUiMKgk+garsSU4MOkPRhm46e6w8Bp1GcO4vCdl9Piz6FlWAzKVfa/U3Hn/DdzSVJOW3TWcQQFdBDw==", + "license": "MIT", + "dependencies": { + "cors": "2.8.6", + "express": "5.2.1", + "multer": "2.1.1", + "path-to-regexp": "8.3.0", + "tslib": "2.8.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^11.0.0", + "@nestjs/core": "^11.0.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "11.0.9", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-11.0.9.tgz", + "integrity": "sha512-0NfPbPlEaGwIT8/TCThxLzrlz3yzDNkfRNpbL7FiplKq3w4qXpJg0JYwqgMEJnLQZm3L/L/5XjoyfJHUO3qX9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.17", + "@angular-devkit/schematics": "19.2.17", + "comment-json": "4.4.1", + "jsonc-parser": "3.3.1", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.8.2" + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/core": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.17.tgz", + "integrity": "sha512-Ah008x2RJkd0F+NLKqIpA34/vUGwjlprRCkvddjDopAWRzYn6xCkz1Tqwuhn0nR1Dy47wTLKYD999TYl5ONOAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^4.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@nestjs/schematics/node_modules/@angular-devkit/schematics": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.17.tgz", + "integrity": "sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "19.2.17", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.17", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nestjs/schematics/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@nestjs/schematics/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nestjs/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@nestjs/testing": { + "version": "11.1.16", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.16.tgz", + "integrity": "sha512-E7/aUCxzeMSJV80L5GWGIuiMyR/1ncS7uOIetAImfbS4ATE1/h2GBafk0qpk+vjFtPIbtoh9BWDGICzUEU5jDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^11.0.0", + "@nestjs/core": "^11.0.0", + "@nestjs/microservices": "^11.0.0", + "@nestjs/platform-express": "^11.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@nestjs/typeorm": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-11.0.0.tgz", + "integrity": "sha512-SOeUQl70Lb2OfhGkvnh4KXWlsd+zA08RuuQgT7kKbzivngxzSo1Oc7Usu5VxCxACQC9wc2l9esOHILSJeK7rJA==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "@nestjs/core": "^10.0.0 || ^11.0.0", + "reflect-metadata": "^0.1.13 || ^0.2.0", + "rxjs": "^7.2.0", + "typeorm": "^0.3.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/@nuxt/opencollective": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz", + "integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0", + "npm": ">=5.10.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/@sinclair/typebox": { + "version": "0.34.48", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz", + "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==", + "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": "15.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.1.1.tgz", + "integrity": "sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==", + "license": "MIT" + }, + "node_modules/@tokenizer/inflate": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz", + "integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "token-types": "^6.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", + "devOptional": true, + "license": "MIT" + }, + "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==", + "devOptional": true, + "license": "MIT" + }, + "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==", + "devOptional": true, + "license": "MIT" + }, + "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==", + "devOptional": true, + "license": "MIT" + }, + "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/bcryptjs": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", + "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookie-parser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.10.tgz", + "integrity": "sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/express": "*" + } + }, + "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/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "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/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@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/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/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/node": { + "version": "22.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz", + "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/passport": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.17.tgz", + "integrity": "sha512-aciLyx+wDwT2t2/kJGJR2AEeBz0nJU4WuRX04Wu9Dqc5lSUtwu0WERPHYsLhF9PtseiAMPBGNUOtFjxZ56prsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/passport-jwt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/passport-jwt/-/passport-jwt-4.0.1.tgz", + "integrity": "sha512-Y0Ykz6nWP4jpxgEUYq8NoVZeCQPo1ZndJLfapI249g1jHChvRfZRO/LS3tqu26YgAS/laI1qx98sYGz0IalRXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "*", + "@types/passport-strategy": "*" + } + }, + "node_modules/@types/passport-strategy": { + "version": "0.2.38", + "resolved": "https://registry.npmjs.org/@types/passport-strategy/-/passport-strategy-0.2.38.tgz", + "integrity": "sha512-GC6eMqqojOooq993Tmnmp7AUTbbQSgilyvpCYQjT+H6JfG/g6RGc7nXEniZlp0zyKJ0WUdOiZWLBZft9Yug1uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/passport": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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/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/validator": { + "version": "13.15.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", + "license": "MIT" + }, + "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/@typescript-eslint/eslint-plugin": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", + "integrity": "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/type-utils": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.57.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz", + "integrity": "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", + "integrity": "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.57.0", + "@typescript-eslint/types": "^8.57.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", + "integrity": "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", + "integrity": "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", + "integrity": "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz", + "integrity": "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", + "integrity": "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.57.0", + "@typescript-eslint/tsconfig-utils": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz", + "integrity": "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", + "integrity": "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.57.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.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==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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/ansis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true, + "license": "MIT" + }, + "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/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", + "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "30.3.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", + "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", + "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.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", + "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "30.3.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==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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.10.8", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", + "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bcryptjs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", + "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==", + "license": "BSD-3-Clause", + "bin": { + "bcrypt": "bin/bcrypt" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "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/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, + "license": "MIT", + "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/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.30001779", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001779.tgz", + "integrity": "sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==", + "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/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/chardet": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "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/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", + "license": "MIT" + }, + "node_modules/class-validator": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.15.1.tgz", + "integrity": "sha512-LqoS80HBBSCVhz/3KloUly0ovokxpdOLR++Al3J3+dHXWt9sTKlKd4eYtoxhxyUjoe5+UcIM+5k9MIxyBWnRTw==", + "license": "MIT", + "dependencies": { + "@types/validator": "^13.15.3", + "libphonenumber-js": "^1.11.1", + "validator": "^13.15.22" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "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", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-json": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.4.1.tgz", + "integrity": "sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT" + }, + "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/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.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" + }, + "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.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "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/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dayjs": { + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "license": "MIT" + }, + "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/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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/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/diff": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "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/dotenv-expand": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", + "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "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": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.313", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.313.tgz", + "integrity": "sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==", + "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", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", + "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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": { + "is-arrayish": "^0.2.1" + } + }, + "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/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-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "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": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "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": { + "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/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/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", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "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", + "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": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "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/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-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==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "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": { + "bser": "2.1.1" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-type": { + "version": "21.3.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.0.tgz", + "integrity": "sha512-8kPJMIGz1Yt/aPEwOsrR97ZyZaD1Iqm8PClb1nYFclUCkBi0Ma5IsYNQzvSFS9ib51lWyIw5mIT9rWzI/xjpzA==", + "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.4.1", + "strtok3": "^10.3.4", + "token-types": "^6.1.1", + "uint8array-extras": "^1.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "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, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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": { + "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" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", + "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^4.0.1", + "cosmiconfig": "^8.2.0", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "dev": true, + "license": "Unlicense" + }, + "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/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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">=6.9.0" + } + }, + "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", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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": { + "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": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": ">=8.0.0" + } + }, + "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.4" + } + }, + "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": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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/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": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", + "engines": { + "node": ">=0.8.19" + } + }, + "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": { + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "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-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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_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": ">=6" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "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/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "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": ">=8" + } + }, + "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": { + "@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": ">=10" + } + }, + "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": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "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": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.3.0.tgz", + "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.3.0", + "@jest/types": "30.3.0", + "import-local": "^3.2.0", + "jest-cli": "30.3.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "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-changed-files": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.3.0.tgz", + "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.1.1", + "jest-util": "30.3.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", + "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "co": "^4.6.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "p-limit": "^3.1.0", + "pretty-format": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz", + "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" + }, + "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-config": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.3.0.tgz", + "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.3.0", + "@jest/types": "30.3.0", + "babel-jest": "30.3.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-circus": "30.3.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-runner": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "parse-json": "^5.2.0", + "pretty-format": "30.3.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": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "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://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "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", + "dependencies": { + "detect-newline": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-each": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "chalk": "^4.1.2", + "jest-util": "30.3.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.3.0.tgz", + "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-mock": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.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.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", + "walker": "^1.0.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" + } + }, + "node_modules/jest-haste-map/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": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-leak-detector": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", + "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.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-message-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": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "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", + "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": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", + "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runner": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz", + "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.3.0", + "@jest/environment": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.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.3.0", + "jest-haste-map": "30.3.0", + "jest-leak-detector": "30.3.0", + "jest-message-util": "30.3.0", + "jest-resolve": "30.3.0", + "jest-runtime": "30.3.0", + "jest-util": "30.3.0", + "jest-watcher": "30.3.0", + "jest-worker": "30.3.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-runner/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/jest-runner/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/jest-runtime": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.3.0.tgz", + "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/globals": "30.3.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.5.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.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-runtime/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "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://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.3.0.tgz", + "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", + "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.3.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.3.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "pretty-format": "30.3.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.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "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": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.3.0.tgz", + "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.3.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz", + "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.3.0", + "string-length": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-worker": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.3.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.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": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-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/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/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/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.12.40", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.40.tgz", + "integrity": "sha512-HKGs7GowShNls3Zh+7DTr6wYpPk5jC78l508yQQY3e8ZgJChM3A9JZghmMJZuK+5bogSfuTafpjksGSR3aMIEg==", + "license": "MIT" + }, + "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/load-esm": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/load-esm/-/load-esm-1.0.3.tgz", + "integrity": "sha512-v5xlu8eHD1+6r8EHTg6hfmO97LN8ugKtiXcy5e6oN72iD2r6u0RPfLl6fxM+7Wnh2ZRq15o0russMst44WauPA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + }, + { + "type": "buymeacoffee", + "url": "https://buymeacoffee.com/borewit" + } + ], + "license": "MIT", + "engines": { + "node": ">=13.2.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "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.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.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==", + "devOptional": true, + "license": "ISC" + }, + "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", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "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/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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.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/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/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.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz", + "integrity": "sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.6.0", + "concat-stream": "^2.0.0", + "type-is": "^1.6.18" + }, + "engines": { + "node": ">= 10.16.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/multer/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/multer/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.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", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "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/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "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.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "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", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "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/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "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/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/passport": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.7.0.tgz", + "integrity": "sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ==", + "license": "MIT", + "dependencies": { + "passport-strategy": "1.x.x", + "pause": "0.0.1", + "utils-merge": "^1.0.1" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-jwt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.1.tgz", + "integrity": "sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==", + "license": "MIT", + "dependencies": { + "jsonwebtoken": "^9.0.0", + "passport-strategy": "^1.0.0" + } + }, + "node_modules/passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", + "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" + }, + "node_modules/pg": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz", + "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.12.0", + "pg-pool": "^3.13.0", + "pg-protocol": "^1.13.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.3.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz", + "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.12.0.tgz", + "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.13.0.tgz", + "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz", + "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "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": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "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/pkg-dir/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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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/pkg-dir/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/pkg-dir/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/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", + "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "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/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "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", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/require-directory": { + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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-cwd/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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/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/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/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/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sql-highlight": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sql-highlight/-/sql-highlight-6.1.0.tgz", + "integrity": "sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA==", + "funding": [ + "https://github.com/scriptcoded/sql-highlight?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/scriptcoded" + } + ], + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "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/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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/strtok3": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.4.tgz", + "integrity": "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "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": "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/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "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/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", + "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/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": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "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/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/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": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", + "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==", + "license": "MIT", + "dependencies": { + "@borewit/text-codec": "^0.2.1", + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "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-loader": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz", + "integrity": "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tapable": "^2.2.1", + "tsconfig-paths": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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": "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/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/typeorm": { + "version": "0.3.28", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.28.tgz", + "integrity": "sha512-6GH7wXhtfq2D33ZuRXYwIsl/qM5685WZcODZb7noOOcRMteM9KF2x2ap3H0EBjnSV0VO4gNAfJT5Ukp0PkOlvg==", + "license": "MIT", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "ansis": "^4.2.0", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "dayjs": "^1.11.19", + "debug": "^4.4.3", + "dedent": "^1.7.0", + "dotenv": "^16.6.1", + "glob": "^10.5.0", + "reflect-metadata": "^0.2.2", + "sha.js": "^2.4.12", + "sql-highlight": "^6.1.0", + "tslib": "^2.8.1", + "uuid": "^11.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@sap/hana-client": "^2.14.22", + "better-sqlite3": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0 || ^6.0.0", + "mssql": "^9.1.1 || ^10.0.0 || ^11.0.0 || ^12.0.0", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0 || ^5.0.14", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/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", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "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", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/typeorm/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "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://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/typeorm/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.0.tgz", + "integrity": "sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.57.0", + "@typescript-eslint/parser": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/utils": "8.57.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "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/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "license": "MIT", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "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/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "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", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "devOptional": true, + "license": "MIT" + }, + "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/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "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/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.105.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", + "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..4af7094 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,86 @@ +{ + "name": "backend", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@nestjs/common": "^11.0.1", + "@nestjs/config": "^4.0.3", + "@nestjs/core": "^11.0.1", + "@nestjs/jwt": "^11.0.2", + "@nestjs/passport": "^11.0.5", + "@nestjs/platform-express": "^11.0.1", + "@nestjs/typeorm": "^11.0.0", + "bcryptjs": "^3.0.3", + "class-transformer": "^0.5.1", + "class-validator": "^0.15.1", + "cookie-parser": "^1.4.7", + "passport": "^0.7.0", + "passport-jwt": "^4.0.1", + "pg": "^8.20.0", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.1", + "typeorm": "^0.3.28" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.18.0", + "@nestjs/cli": "^11.0.0", + "@nestjs/schematics": "^11.0.0", + "@nestjs/testing": "^11.0.1", + "@types/bcryptjs": "^2.4.6", + "@types/cookie-parser": "^1.4.10", + "@types/express": "^5.0.0", + "@types/jest": "^30.0.0", + "@types/node": "^22.10.7", + "@types/passport-jwt": "^4.0.1", + "@types/supertest": "^6.0.2", + "eslint": "^9.18.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-prettier": "^5.2.2", + "globals": "^16.0.0", + "jest": "^30.0.0", + "prettier": "^3.4.2", + "source-map-support": "^0.5.21", + "supertest": "^7.0.0", + "ts-jest": "^29.2.5", + "ts-loader": "^9.5.2", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.7.3", + "typescript-eslint": "^8.20.0" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/backend/src/app.controller.spec.ts b/backend/src/app.controller.spec.ts new file mode 100644 index 0000000..d22f389 --- /dev/null +++ b/backend/src/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello World!"', () => { + expect(appController.getHello()).toBe('Hello World!'); + }); + }); +}); diff --git a/backend/src/app.controller.ts b/backend/src/app.controller.ts new file mode 100644 index 0000000..cce879e --- /dev/null +++ b/backend/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts new file mode 100644 index 0000000..8662803 --- /dev/null +++ b/backend/src/app.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +@Module({ + imports: [], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/backend/src/app.service.ts b/backend/src/app.service.ts new file mode 100644 index 0000000..927d7cc --- /dev/null +++ b/backend/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Hello World!'; + } +} diff --git a/backend/src/main.ts b/backend/src/main.ts new file mode 100644 index 0000000..f76bc8d --- /dev/null +++ b/backend/src/main.ts @@ -0,0 +1,8 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + await app.listen(process.env.PORT ?? 3000); +} +bootstrap(); diff --git a/backend/test/app.e2e-spec.ts b/backend/test/app.e2e-spec.ts new file mode 100644 index 0000000..36852c5 --- /dev/null +++ b/backend/test/app.e2e-spec.ts @@ -0,0 +1,25 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import request from 'supertest'; +import { App } from 'supertest/types'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/backend/test/jest-e2e.json b/backend/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/backend/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/backend/tsconfig.build.json b/backend/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/backend/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/backend/tsconfig.json b/backend/tsconfig.json new file mode 100644 index 0000000..aba29b0 --- /dev/null +++ b/backend/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "nodenext", + "moduleResolution": "nodenext", + "resolvePackageJsonExports": true, + "esModuleInterop": true, + "isolatedModules": true, + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2023", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": false, + "strictBindCallApply": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/docs/backend.md b/docs/backend.md new file mode 100644 index 0000000..58238ca --- /dev/null +++ b/docs/backend.md @@ -0,0 +1,282 @@ +# IDB Training & Development Analytics Platform — Backend Documentation + +## 1. Overview +This document describes the backend framwork, architecture decisions, folder structure, packages, and development guidelines for IDB Training and Analytical Platform. + +### Backend Core Responsibilities + +API Orchestration: Providing a robust suite of RESTful endpoints to serve as the data backbone for the React.js client. + +Security & Permissions: Enforcing identity verification and managing granular Role-Based Access Control (RBAC) to ensure data integrity. + +Domain Logic Management: Processing the core functional requirements of the system, including the administration of programs, participant data, financial records, and high-level analytics. + +Database Interaction: Utilizing Sequelize as the ORM to facilitate structured communication and query execution with the PostgreSQL database. + +## 2. Technolgy Stack + +the following technologies are used in this backend: + +| Layer | Technology | Version | Reason + Runtime Node.js v18+ Runs Javascript on the server + Framework NestJS v10+ Build in structures for controllers, Services and repositories + Language TypeScript v5+ catches errors before running thecode + Database PostgreSQL v16 Best for structured relational data + ORM Prisma v5+ Modern ORM with auto generated queries and clean schema file + Authentification JWT + HTTP only Cookies - Secure Login System + Password Hashing bcryptjs v2.4+ Encrypts passwords before saving + Validation Class Validator - Check incoming data is correct + Containerization Docker - Runs the app consistnetly on any machine + VErsion Control Git/GitHub - Saves code History and enables team work + + +## Why NestJS over ExpressJS + + NestJS was chosen over Express.js for the following Reason: + + Feature Express.js NestJS + + Structure Manual — you build it yourself Built-in modules, controllers, services | + TypeScript Optional Default + Repository pattern Manual setup required Built-in with Prisma + Validation Manual Built-in with class-validator + Scalability Hard to maintain as project grows Designed to scale + Fits project requirement Partially Perfectly + + +NestJS was selected because the project requires models, repositories, services and APIs as seperate Layers. +NEstJS enforces this structure by design, making the codebase clean, consistent, and easy to maintain across the team. + + +## Layered Architecture + +Every feature in the backend follows this strict layered pattern: + + ... + HTTP Request + | + v + Controller -> Handles HTTP request and Response + | + v + Service -> Contains all business logic + | + V + Repository -> Communities with the database + | + V + Prisma ORM -> Transaltes to SQL Queries + | + v + PostgreSQL DB -> Stores the data + ... + + +| Layer | File | Resposibility + controller *.controller.ts REcieves request, calls services, return response + Service *.Service.ts Business Logic, Validation rules, Calculations + Repository *.repository.ts Databse Queries - find, save, update , delete + Module *.module.ts Wires everything together + DTO *.dto.ts Defines the shape of incoming data + + + ## 5. Row version - OPtimistic concurrency Control + + Every table in the databse must include a rowVersion column. This is considered mandatory for this project + + ### What it is? + Row version is a number that increments by 1 evevrytime a record is updated. BEfore updating the system check whetehr the rowVersionin the request matches the rowVersion in the database.If they do not match it means that someone else has already updated the record and request is rejected. + + ### Why it is needed? + Prevents two users from overwriting each other's changes at the same time. + + + ## Authentication Flow - HTTP-onyl cookies + + Authentication uses JWT tokens stored in HTTP-only Cookies. Tokens are NOT stored in localStorage or Authorization headers. + + ### Why HTTP - Only cookies? + +Cookie Flag Purpose +HTTP only JAvascript cannot read the cookie - prevenst XSS Attacks +Secure Cookies is only sent over HTTPS +SameSite= Strict cookies not sent with cross-site requests - prevents CSRF attacks + +### Login Flow - Step by Step + +1. The user send POST /api/auth/login with email and password +2. Backend finds the user by email in the database +3. Backend compares entered password with hashed passswed in the database +4. If match + Then generate JWT Token +5. Return token inside set-cookie header with HttpOnly, Secure, SameSite flags +6. Browser stores the cookie automatically +7. Every request after that sends the cookie and validates it +8. Auth middleware reads token from cookie and validates it +9. If Valid + Attach user to request aand allow access +10. POST/api/auth/logout Clears cookie + + +## 7.API Conventions + +### BaseURL + +... + http://localhost:3000/api +... + +### Endpoint Naming + +... + + GET /api/users → Get all users (paginated) + GET /api/users/:id → Get one user + POST /api/users → Create a new user + PUT /api/users/:id → Update a user + DELETE /api/users/:id → Delete a user + POST /api/auth/login → Login + POST /api/auth/logout → Logout + GET /api/auth/me → Get currently logged in user + +... + +### Pagination, Search and Filter + +All GET list endpoints must support pagination, search and filter. + +| Parameter | Type | Description + Page Number Page number - default 1 + limit Number Items per page - default 10 + Search String Search by name or email + role String Filter by role + District String Filter by district + Status String Filter by active or inactive + + +### Standard Response Format + +... +{ + "Success": True + "Message": "Users retrieved Successfully" + "Data": [] + "Meta": { + "Page":1, + "Limit": 10, + "Total": 100, + "Total Pages": 10 + } +} +... + + +## Environmental Variable + +copy.env.example to .env and fill in your values. +never commit the .env file to Git as it contains sensitive information. + +... + SERVER + PORT = 3000 + NODE_ENV = Development + + PostreSQL Database + DB_HOST = localhost + DB_PORT = 5432 + DB_NAME = idb_platform + DB_USER = postgres + DB_PASSWORD = your_postgresql_password_here + + JWT + + JWT_SECRET = + JWT_EXPIRES_IN = 7d + + Frontend URL + CLIENT_URL = http://localhost:5173 +... + + +| Variable | DEscription + PORT Port that the server runs on - default = 3000 + NODE_ENV Environment - development or production + DB_HOST Database host - localhosy foe local machine + DB_PORT Postgresql port - default 5432 + DB_NAME NAme of the Postgresql database + DB_USER PostgreSQL username + DB_PASSWORD PostgreSQL PAssword + JWT_SECRET Secret key used to sign JWT Tokens + JWT_EXPIRES_IN How long the token lasts + CLIENT_URL React frontend URL for CORS + + + ## How to setup and run + + ### Prerequisites + Node.js v18+ + PostgreSQL v16 + Deocker Desktop + Git + Postman + + ### Steps + + ... + Step 1: Clone the repository git clone cd idb-platform + Step 2: Intall dependecies + npm install + Step 3: Setup environmental variables + cp.env.example.env + Open .env and fill in your PostgreSQL password and JWT secret + Step 4 — Create the database in PostgreSQL + CREATE DATABASE idb_platform; + Step 5 — Run Prisma migration + npx prisma migrate dev + Step 6 — Start the server in development mode + npm run start:dev + Step 7 — Verify it is running + Open browser and go to http://localhost:3000 + ... + + ### Running with Docker + + ... + Start all containers + docker-compose up --build + Stop all containers + docker-compose down +... + + +## 10.Git Wirkflow + +### Branch Structure +... + main → stable production code only + └── develop → main development branch + ├── feature/T006-user-model + ├── feature/T007-auth + └── fix/T006-user-pagination + +... + +### Commit message convention + +... + Feat: add user entity with row version + fix: Correct password hashing in user services + docs: Update backend documentation + test: add unit tests for user services +... + +### Rules + +- never commmit directly to the main +- Always create a brach for every task +- Always write a clear commit the .env file + + + +---- + *Document maintained by Backend Team Last updates: 17.03.2026* diff --git a/docs/image.png b/docs/image.png new file mode 100644 index 0000000000000000000000000000000000000000..bbb38003e7f3f5bc8ae76aff1fd0474cc366429a GIT binary patch literal 85753 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

^V%JoDT=Lv_We`$@k1WuaiWG&WPsA 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 literal 0 HcmV?d00001 diff --git "a/\360\237\223\201 docs /frontend_frameworks.md" "b/\360\237\223\201 docs /frontend_frameworks.md" deleted file mode 100644 index 7150719..0000000 --- "a/\360\237\223\201 docs /frontend_frameworks.md" +++ /dev/null @@ -1,14 +0,0 @@ -# Frontend Frameworks & Libraries - -- **React.js**: Core frontend framework -- **Material UI v5**: Component library with IDB theme support -- **MUI X Data Grid**: Advanced tables -- **Chart.js**: Dashboard visualizations -- **Leaflet.js**: Interactive maps -- **React Router DOM**: Page routing & access control -- **Zustand**: Global state management -- **Axios**: API communication -- **React Hook Form**: Form validation -- **date-fns**: Date handling -- **jsPDF / SheetJS**: Export PDF/Excel -- **Lucide React**: Icon library From b9f27fd7a91c7ee10eabfb9dd4c1dde0c579358c Mon Sep 17 00:00:00 2001 From: zainrikaz21-prog Date: Tue, 17 Mar 2026 13:23:25 +0530 Subject: [PATCH 2/2] Delete docs/image.png --- docs/image.png | Bin 85753 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/image.png diff --git a/docs/image.png b/docs/image.png deleted file mode 100644 index bbb38003e7f3f5bc8ae76aff1fd0474cc366429a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85753 zcmZs?byQSQ`#nA|bPGrb!hj&1O4raSDIwim(gMQJVbCCw(uj0}G)Sj(cS}kmd=KyY ze*XBa_2Vv<%i+#FanCu=e)h9>gsQSEF4hw)2n2#FFDIoAfgqhhAjmBk$l#NEq>fPt zga9HhCH~qAX@3FTcS8CEazqNpzOHikex|&=K@B51S`1?Sr3NOUtd=mUT7e zm>FaDf`y+JO&xPm;UxdPrdL^E0bxH3nU8OVQ5mRiuKn*0owN2D=dkg-G`Zomb(<{AcN0AQh%t)%aP3vV2MD{ykO}KvvM1jsE~$uCxCbrlrMt{? zRohKozJEnsnuYq`tA-9+4m{22>R-?1;O=B$C4Dh$_X!)pf37kQ?Ayepy?u4FB@v1r zX)n&Du`8GC%l{%@}%8y_BU;K{hF9m_^AMa5Re_3#97CGUo8GgkbY>>{^9o(*N{WRrTS1)&8!x5A!YU5Wwia_MaAJI6i;=&#)Ow9=cq& zm|UR!pLuEh^#(NfsnUqD$wCiiOU+isqxaB*tAk(F|LKAG!xLi<{q%kQ(*yf}FH0ZJ z4`g=!`$|*#k-1u&*!#QR{cj2+_YXkIm0%5)8uyqYb|h=1NfIHn#S{-23%Kt<67tDp)ViN5zmf4I01ZHhrYy<#G(Zj~IxPphuT$JnIoQg3SPXDp}Km{sA}ohDs#$fgcE zW4Rjn%Kz?e4*f4z&_`=sHu_eJUB(@utg5ydPc&;-8VAunGTLiVp~Y95f#C zCo3kuZx6@iwArrL{PD zh%mx}R5C>0>kL`_8c6O>;?S-i&JZ)A88%DBM|LEI_~TXVT8nO|gnxmymLnz2j?)WE zfaLBlcH!_wn0T0qLOep3k`rl4|MkLd5 zcpzIBA{<$@>Y?RGH9wBD)0jaqDq*kHU`*c-sEt7MDJ^4#>+rdYytyhv&xE!p0<7NhvpH^5FWcp;qASRNMDZRVk0BLwlNw=H7wK9jKa?*}gwEIzUh^L@@>Pwqg8bU$m zA-NxJQRI@r5Bq_@d#tKp#w6^iZjJq$VqG4tRRfkjj+R?)huN2p=&ps8KIDnMzh*o_ zonfF5s z%l+TQk`YszwCL@T}e>r=jn0mx|cGzpld~p8w9Kmb}(J z)h_upmiXVUQR5xl-(9pUdG8f>gyB<*`Q4&Z`yy81_cK-*6UwRlG1xAzczPlqv;27J zP4!HQafO5cweRU0LmE_ltOjn2zMf6PhPy-m`^G;tb9dKMEr##UCh)~>j|P%o{6T5& zjyulk`hY8S9J=4jkl_}{!EEI7r+PG7w*M~U{dw{hg3xhpwd~g1Z&qMsnt#tG@#~t>tnRJ79BU^H1%P)}>R+zw=NGK2x(F zTW*8tU5b3!XoZFJo{y2KPpzd92Fj_itq(hhdS6_%nvdvoKEM>Y? z*5ylnH}coA?%Rlh)ZK-~S{FlS6EYrKVocg9wQQNkELwEJa-aV^94{Bo_FfP1TON9+ zC2%n8>C}Y-_%4eT)Ndyx*BJ~=O z)BQzRn6G!eIor#pBekveT;PdG`&2-tT@&O`GxG}#RuQiiI4*gbCH(;GEfHM<0gP%h=Eyf(I=E)~^OOzX}ciOpVCs-OMy>@)i+N)MFts(9=N zn@VESR-SR|p$U`wOT?gzlMv@-RO@I^ZzxSI`LUjt!~X6z-6gOufyL)Q1JU2*92Fo- z{oXAI4flN3jzhFl>GL^d$mtyDg$NS!#5@9F+3ZW7?!9 z%%O(KEDZiyYrIH1iqigPTvai2l^MiC%K!q;Rf!S#KG)3wwYS;@sw>Mu_#QO}nu!?d zIPY)%)Zz(;eEGrFOsuKi60J0;xzR^M1)@NDPVODpv*G*`U#4GbWva0bAV-wFVJ*8l zZL~mVu%54bdvpG0uEwE%j-Y<%sptILlU{}*)YM|5jMIA1^ZT2n`}FtcGYn~Nu|eYK zf$5a*=BV#4W$`0!Kbk%Dzda7FvY%O9{lF3GWBF2Hth=x(X}-fPFPwl)m75KQf-Kh^ zD1GU6Fn=|s$kBAzd;^YW?OcV&g_Qp)`q>+=Hd8`|n=Tf8Mx{yRX95ervI83^KxfV} z#o@J?AtKH1dgn7dAY9|DsDRiIx!8QRMyFUXd5K{-<$ki~kT*%UZFpdafm!o=XIP+> zwLsjpgu2#KMn?X)RRgY}dtze#1e}ITTBi=n@EX&uNa2sCEAiKVh^7Zt8412H{wHvR z8>7%#RSB$Lbe&5*$@z^Wx~1v zXgD}^6f#k@@KH<%5j-vz4LELW!V?J;vTn&?NT9DITa#Gtv~-o&XJFS)j$5dagr>%qEz`=^TdoTm!7l5E@>jP1Tvb0fZT1gLE@ zjnBz&#Js57!&U$Uwm6X=+x9w~z4VMNVd#>UC%iV`P!--S$QE4pg*~cyjV;x5Y861K zayZib{^r?de%co=D&2O*kWGHW!y8XF`lm_^Zpu3Fu)nUW?6DzOs#Br(!ey3&UzMIr zVl&~X+FE#cyd5#q*j+~BXJ@7O@7U(-D{;4$;#WvEvBa&;izn7C`uNw`JvLklP2%$I ztE}ba6;FP$ftTG|1(&N!X@3OxgzvbSfr?YU+f-MH;?dX3|wcdAB zEfLj$H)Ym}2IAvF|49`9etbouldv>3{@CWfca0)bm;?-pyxhDPe2>0*``-_x%^m>y zuM#!ehs9OZx>*AsI83?0>%7W-$c^~9b&U-k0Jp(p#QXm>RssO|lFOmNxbS~-lKJ;yRO9~796jOl;RQXT(pA?7 z(x|6G=l_Gp=s0AYoLesdzQz~5T`4VOyzk|={l(s?LNsFuIf&VAv>I5(2{ z*`nMGAsa}-t`BvcFF-;t0HXNz$hRh+i-+|I+Pq2^@o5Gy0-RF^+oRcAgDJIs;xT6Z zRS@(`fMiAQZ%_Fay*l3eA57s3qcY994%6Fkw47jRm+PA$nSVgA$xRp!PnXPr#He&m z6qBkn>rJz7{a1rdfYLf1AcxW2Nm7ba^Hpf-aB=M-^Mc|rFQnoKDi=IYV%!0uHLG3? zPKCt`gLUZOZ>Im_0_^PkS3*b|-1mMVrTd=rb_0Z8-c9B6a_h9`S=24ZR`x~9{lxu< zB$$H35(6Xuf9_@?b4YTIcEl>Fu?LT|r$|(Av$ZH}!D^YZ;G)7$t@-@qY*0hxEc!P% z`uEI#Wj6@Z6AB0Q?=LiZwt%sx`(4{;Quz@|Vn?(R8;|A4Q~MsZ={YrZdE?c6K~>Wm z2#BqC;oQw;(iVv7e5abHl* z=Syk4Sdnp^C&(^jK9aT778(q=f8H&gdYG;WskRo)4UIgdcc-tSHcO+P@F?KygY9{9 z*y0bOQwpy`1HiVX03lMN;Zw1`6ZoXL9Ygj@LV>>ws#+sd>32S3mCzbpsF6>L*5i-? z$8>PK-t6>GOVQGz!R%XZ1j8b?N`1SNn`D@HT7P@eUwZj(D+++&tF4SBfI*C8NtgVK zu}6lH){a&>eEx2)?Bp1=_${)%DP_;(LuH5NFg{`$de~0Io(z|7wX`Ndbf@za@?!&i zz7(TV5xrV>9TM0Y*H95T>3Mbmp!CO&A7?79@X5K?!P=qXb4;BLQ|+jxCl5reQcPk$ zLyN_w_w4z*^E(;UAO)R3oXYfV-RsJtscJB9^8mGT)GY^!-Cqq)8T$O;nbLQ4C>aL- zoaUzv*KeiU-Qa&EJzZVM>)K40O89dSV@A&rIhD55(O{}~`>@8p9zKd9O~j+^j-q~8 z8UW~eva@J@&(U$+U95NAB2p1PZpY>bUIGn$qToB1W0&wg+dZ4mHW~!U9xW`1z(F2O zrqY*O3Y!e2B%~DY%M31D>u`ZJe*P;;*Z%Q=`^0xm&!MZ=rG`%p>s>a|TttNq>Ygzm z4LJn1*VCgY9NRypS4?8Vu9fLOtu89+!)VQ#oNg5K&#^ZIyS^Fi=G4GOF05mfqxsTw zf4UrRQY0b6eG=qJ)!#Mphic{=Q_|B9ernnmEvX1>#6N%a6(a&{&^M1>x~$8YVIoDl zw@)rHk@jFf2w}rtgA#OxAGIZQgbD4NItT~gF+DfNeEID$2KFdzUaN&;>rYgqLB*tN zHi|lZgLgiyb#IpdUecLpf|!I&yra$4d9z$Ar2Au>`FWo&$hkjTP>wQopD+42@iej? zqVR6ad>5eC+nX#-0iYj%7JHBx4AK4!$@Y&#H$-kb5ogBkA%)Q6=aBtecXm5n#pduD zJ$^_{=$VGH$_xq8{d?n+x~oIUiWUT0b&++R$gwdKR67zN3JlE8YZtwLD-xHQYz-vG zHOLmKJz{cvSY)`K!P(fBqJKCI{tdN=d^iN_7vyMVeFjc|rQnKZPqR0eEYem|%l@Ehj}J&4zVTKM-fh;x%MxG75HeEMNYH6Aqd zKRN=dp5W6MvK&%t>wI)9;>%Y)X?^rSBc}t3-JueSqb)Q-xTC_`*1}Faq-Car*OByrFS`(wj@I1O^OY*iCPAqnfv zh%#-hskHQ^0s=*nqUh@ z3uo!m23B+BG$2cUm*(T;%N)UiBjymh`Q(-RO zLkd`(U~>jS#7oJ)u{i2Pxdc+eMNmO1H!}@_a9v_kBoq}th?S#X`xM&x7Rfdt86M2| z6Vw&I_fu(1GC}li;1<;?VUD-!v+a6;!p^&ckV%tlbPZx0M_m0PZ1{-9yNi&Q68nSc z8r5H1gBB-{{2kMYm7nV$?nTSqWPPLW@<(xo}RTX&Y6kvg6*G33rp|QdT=hIgK%&RvP!^_d@RBF zi}mE~NTxWTmI`s>bzCP(janS$YPu<1_nGojXRF@4n1dHqz5F|(xVcMU*;(mLs<53K z^`pvpMdFH)fUQj}Xbsl=&$-iGQla_wbDT~%FGRsnCoNo}T~Nz}pUQ!X6YEDg3m*eo zbV>!Ua9IpFWG+hVZrdP+Vucs?so-n*A^q)xG&6b6S5wh6k|R$Ay!{87gxt0ta^i<% z1du}@NKjgu2EmK_g)>Q|NfGO4yhw~*5IX!HqI6w|r6vucBSyhS9D_YFLNWziiqo4X z2mBl>BHW`YVuMq~4TWzi^PWBN>Wf=`2iFe2op;NEh$Wg@g6!RW_w}KDlLWwxd8{2m zXMy9Oi}1+>k{e&w*} zzrVkAp^YdZy^3rZb`zex3b{~P7=J)3bJH3k06Aa z+b`<UZ;b63$WUbK^KmBYnLBI+NFlWV)wUz ztoU7NrE>8BnfZ$(zR2G?0Jem-_<}@on6J1}l(9eNvXy4iVOHT5Rhq|{Vz33bvvP`V ztqnctdOm3i(_DDN%Y|iSi$Ph}X}{kYK_oD(ZS;QQIiVSC(K8YifONvIL~40r`KeFv ztu_h)?u(yi(fXkSC@rkV%$cPWA2$wQW%Ver%}R7F7-U=hfVH|=x;w9Zz&&v)qAP{o zTq$^PbF6RfU5~YIx5Vz%G~Zq$LD7O+qW*P@-5syTsnA9qE%${+tDJn`X!Zgm&+( zzGLua)~@uufbS(B!T_q=N`7HA0M_MD>P%Leqnp=3{ZVp8hO5dM`af> zy!&Xrba7`QYZ#+L$A16R6_gyvz4#VJ)v)`$$mI@Wr{ZC~<)t`!|NF#O;Ck3}(SZH& z3cw6eX)e!jx7l)zZ6=qgjWW&nES>RxXuGr3Boz%d9fq ze;(Dj@dt^$(BaQD9(?7mPz(e_F^+!8|Ngy4^XZUKqub62p!aS-472iYRY~{WW$KTo z)%Zy&(tun|Gzz>Pp0giub8X2be>Ta(|kNk3uA9y@sm#)DESb3F6LId16bZo z3dfRiUz^R3YmGcsA5vz}~czP>W0pFtq#!h9b=trr{*vKf`+RZoni zSeA`vTTw#$Ws>}#aVYnWzReq?5{l7`wLOaxrp-Sx&W+xGZfZfk_z>P*E#6S&ljA0f zI(+4iuLx;UlTeHfKI&jv)W2K0|3^*ru9Goljpj)Z+#Ad>NCbqW;KVSE5kVZTXH*o3 z$2+1Ev_35=WBFfN;)|dWLo-LD@Itf=goyZw$1j&rsm2 zKs1#BbOjJok$P@q13teK4f-^sX35Woc=#s$ScFUyEPkb(Fg5e&G0dbUx>#D1*Z|BXWMZX5@R7+nSe8ql;FqREk9X{;%4uJY_KC z!~tIg@N%ajKC^7`k>{ZTuA8b%8Lig*6H&aPFM+zn$xnm z;3d?D?WFtP3CNiJ0dRA0tS%tuxkY6q4FcuKEUfsr<^Er3h+JI_x?UFmj^Y@e6=E}@ zqau`Kaw0p!dDgF|z+&-VXh?2<^)j;F`|q|maiy`=t|=P88ATeh7wv4*Z@Zr^@JLk( zIpbeoEa2MC*Ktu5J&$~@wZiVK``e^ODRHZOyDBT4qLZ7rQqVIXN^LIDtg#*6{xQz# zWZg3oM*-HO+tXo+o={#tDXL3Qc+n-jLYfX%I@$0RKN+c ztJ=(9OB;jU)wI+>BRmSUybAN*|Kf5zYS`7mBJxvD;e_KDw0GpJ_ivs^PZPQ&OFXBg zBq$)ue{6}$kI74@5pLclNquXMhDsSFciaF8R+6MssKihnllm(1%cJi8?#6R}`r&i} zfC$u?o?6E9d(2oQfuxo4UniK>jd%?}=&IQz8H{v^(VXN7%OUr_K$d*-bYmuR{bI={ zifJ2GKl19f<+_grO9pF%^T$^v9i;+2QlfXH6`&R+G@tbSN61iy|9Ns+$6&Q#ia43Y zr#;kkf-&j^9Q0^nvUCbhdG2VX4rWFsmKlYczwg3M+>RJwXL=m?G5%-YCvj15ST2|_ zh)1_0wI(ygG`#jZ@L>n6VwggaGrjB3g9R3j7JChIEXjE{H|bD13YP+TCMPz)*}B3u z@9Lg{e5gv;@snjOUn9rL`Hmn6iw;n!w_+FJrm5YzT~x9ph*$t#GMAey3H-*cdc#Cbll*3um#*+VZ~s-tb1N?TZn)dP;V z66M8dF4$EoE9f@(+Mh#UCLjGI2O`BY4z_nA;ClI=uWp-4RuGk&dv{lFrTg$&k04YO z4J%FqL$GlfWQ$bQ-LPNS93Y^0s--J@3h}Y9BXg^I&2MbuX(f>)JUmo3Yypgd z)=0&jDI*hoQvmFQ(O8D13{ho2Nhk|GrU|2574EE$-W|~B0X3mK7X`Yyfnwu05^ zl7v^%4%;*lM`g~}bxMPBtj6dwZR~bF0N1ai`y5!>U}gRv7hofOxij+zPbevaC&d&w|@ z>wd8EbLfvNp$mw3y2K4My28Pyw21a&`*L4-^}H`(kPEp@o@$HL+NNXYke_o>=#m5r z79O05ujYknEHovR1}O|&bSWZ&9qVY&{Lap%e5ukXjx@jenCD!9w0*d?*Zk!h!+w6Z zwW4r(N>e|hN~kl_+b--NY-T4KJIg_7o=7tqIDc|5i}hnwWiR4lDw?j?FDvm>a#2DD z{DrucoFsAT#Z^5_NVJ@d7;l~J!|i)ghJ_A=#g&OPQ_Pt!xjtY?-3F4py-YH~a>oj% zbkE{bqm?4GnXM{BOy$yQp~%x`z2+Bqa?Z~>A=sUhE_?Zby+IC{USDUH)111!7#of- zr-^w-ZA^pk=Jx7OWMk7PT^?7*fuBHVATgo3!djn9iQ$+CLYTg-!>2K~vY>I-KN=#c?PCJti329=BhA`FKoG1u4Qxz)2}#FkcO~utyD6QU z{_3&Q`U_)Kj@p`>0C?CDxxFP030xM3z;^%|Ckyw<7xo$Cnc~NAsc{U*yOZ1+I(L_R zu9AK`Z5EYFrP}W7mbuRlszpq_NvtDml|-jH_*^x#Z%sV-F2Z`_LShT5W|lo!5=eP{ zg!uaH9L$6cs)!hJn9J+6*DK81C)1bsZcET=RrMb@{^)4x0O59~UTiixe7Yv*9d(CH zA8khLsJl&y6&eIcOuQmwl7B2eM*A~ceR^Aj;9iJl(g?2VS?>%Ef|(@gRtr+P$2-8e z>Dwa0Y+r9!W4+BiM|b8)d&%Z7I#XHP?eR!CT$p`E{`b5HF=B{uA4x)O@j{M8e?p;M zMS)PDp}@9R3X@PXp~UJ-Wp3Jyg;%SKWKU8cj0wadX-<+J_D9}H8Tj$ zMTJdv;s@N4kKF`6Zb`(qPS&x!ySm0ny7X2pSVSe4pi{?fBC~-R<5*llk(oJ z&z{5tVibrtydDcHM+>cAm+H>L`;m4o z7_BxdR9h|i1$j7irjo0J3(94Nsr-yi;TT7@N(6(MK7sq3!~g07js$%wjE8^_B8CVf zA)Nj}T89!4YYLB%&&4!x!eoE!d9&YCtJ$AFkjwizaqNw5mB;hk6xQtKXDC4-WYQ{_ z%FUJKAxs2Q*mMy4aqMh;G#ELGu;&K>h$&ox<^7ANWut_s1#F;vR$qOVh{v)e20*3sju#^cwEHVi4{xV`PDfex){s{z3% zE5b8WmI99K46=M7U$dn@kYo+xJ|=}j8a#P12cEl&?$j-f;;KB?NRY(Cr25Wi{LE9H zxK+QMX7l1FUMm}dShYxt?JZ--3W2aXgJ25^BhvCM8M~tB2|$r6v5MZpXYsU8(u^zz zQ>^N$*lPuCx|nW}jiXagI6aB0XoFLjmBO)Layao*u+5DN-FF(eJ^h7N;W;wT1*e>T z*RVD0TYA_iFJnTZuG-}To()I|(U{77oRJ&Ia?fO{2X&#}i?8GlDt=xd4XMj#(okK0 zAPIkiPz+$u-w8$Pa`~$+iKp($^;K00$=emG0O>@mJN6>gGdXKm2h7t*CZnQe8Yf}| zYEFdiYN4iW=*4HHw^cuHx1Siu<%vYv8CG2(gqn)da1voGBk*7$tpWY>$Xr42a+<=6 zV&qKY$=wYIapLl}4a*7Z>gH@O-P>8h@B-8?pEh1d)xS)QE+etCLQlHcuPi0Pv6n$b zOGWdR{a&ZVyNNlgH zEnwAZCy-=f$%T(yG?tOJ6MrQ9K+@-pM|O+JtQNGB>dqd-Z6K4P zg^#EB!zO2|3u%z10*T))glpElufJMBn&&^k%_qa%v0>Y1U3<2P^b0+JEVSba-gyxRau?#+1FERzDZ51C4pz+mR z1W^f{lj#sW8a~?ouAZCRAT|rfCXZ7~Mk`5vP&uQ?%I9LiPua|dHosugja(v-Np6HN z*Vs*F{rC+Per8>e^<(elk1vLtztV(_P3o}07;x~3+2H5|(Gtr=(2%xWw`<5>9z6WG z&7Ig{1kJ$E6R(24efBi{cXcsOPH@zo`1}yJdI{yjC`gi>MZ@hLaEzxzsZ$cK!?EQ0 z(AY~&$HQPh8Hg*njaz5M?FdDmY4KBws&f1@oti&$=}w+2J=*@beK!hF!>xATS`q2U zI57QC8YGo!@10U_(4CUpg@hwG7Z6zsx4#Dt6f5zj#wU8AEl6PiOOIdEv# ze3J_G3d;Yu;Y`~nkWGX`^(zBnG>&XD`zS1qAe`oNkBG}|u~xCSj7)B>Vp1Q^XV09+ zQZ^yo&`QD$i%ipu3s>vUEV?5aa9ymhI+RqZ7YP`>f4WcV;`H%rB((kfLCNU);?PNE znA(Ghhkt%w9pPfg?p&zQupX-j7?(-FqMVirWVCGf0%GX^(A<;a#e4 zJVu4?_r_f)7g#4#s%t!gUQ1M;vh}&yP(bpUyPX(Dyivw#s3gP2u{Th-B z%-P@Q!ZJ&AkjiUk77RX73ba!Y+e7dpNrHBzLVPAPwR?jo@wpJ}a3lz3bR&!EUqUix zHZ-;yAHDt)Lo&`f)~N8`e>gc(?_bnaD)4(JFekj==0+|-70084P?0!WT~(&R4=Zx} zwOEY~h_^vna-7)S+c@9{crvle<)8;H=YdLHCOZ!5 z9(GQx9SfSy`bG_&p_hFurLAf?YNE`_I4E`_^2v$CT8c-0ekyqcu~W$TG{O9eF?}oB z70^~Ce|fPo8|kDO-z1^wOB?F*aYC|QJJ4Qy6K0;}gZ1#|B zV=ViurX{5(jCA5myZNoI>M1hD0xQzNzjept0XgXws3C6}7tOFkYJCESiy5j(@1ZwRFP3aOKQ zSsgOBD=RXadc%8Fldm$sq zIX=;7>UYG92)kF|8q(COx1PcZSVVELP&u8aBMS=fz{LbSH?1Gb!Bj#L@^rSr=_0M) z#FFzf{2I_-9lASUlKo_Gy}+fD)q4oiJVJ11yor+a?VjNq5ntOspaRuDCub8g^`Pfc z4}HmI{MQ?4yF4a?yenu!)k=tpMw&HrvB^j5YCY}?4Jcl3f)XeFqOi;A-=RUS@CscA z<)H>~{kQLTBg~EYBNa1aW0!ix%VVY?7`Zp<9j9F#`B*)m;!+3u-csrLD4KlTg5?vkO29@B@fPdF6+I-i)tIxcW zJd5j6IbQtnu&I3COqw4W9D&??K*DfV6~Gn}-0xmhp9Dd-GkZ={SFbNO8@o!+_tbf{>Er^jSHRmFI25tP%go0d`cmXGNUG0{>qPyBdz>Hk@p7Id09OS`h z11@GyS^IQ>Qc<2&Z0ZBsgzmCna8gwXD7w3L3zXcJ1Sbi0rLW3aUcAO2uCEB~R%zC( zbzC4})1?Fjoc35L(a7Yj4CnR;M&H*nUVwUB1Zu#GE#IGisX2`i8qzVFWSu&wt$Sm8 z|HlR3h2fc1??Kwn&@w{nP}tMvrp@dhOJIZ`CopTOPcpgcqpc8T$wmTo7fYisd%>D{ zzys+E3a(jFrOO~CV$n~?XRNI4MGgI8u@(@@q+{^pEcm6MX7yD-m3l6G*$o>J0(y8o zo$6Ft?aQa=a-n}{DFSqi-*v4@8#Jstw~U{CwxiPU9me z_twa378IQ?`~@73^&bGDUa9-TR9Iwomz-0dyk?1-kLJH;RbTSS{DVYS6Euh`UV#3`z z?u84!7r*XHO}}T#x<3jNbK9R*Gt~0T{K5t4Wsks0DkMpnai4hsWAcVe9X?Pz({09E z1b<>1701G}610+}jDM@E%)H(lNH#lslo+WWMf#F%vTgj4Eah9Ea*fpM2s%Qp+C)ZE zPr*aNB=&MNmO;es<}$;PUUC>TyrkpfPef&O>>RV`N3LA=0t#ojZBUe`BOT3oquld| zUv2&wk;&vNK5TmrLipE~O}u|U58F=Mh+{;UCxjm1j?;!YK#TgIap7fVUw`?gx&-Sy zbZG_3!~d-kBUQ>|Xvh$gD~9my7ll*RI~FF^nYQ@UgP1P%gWJyYL!2WZzHqf#xY$o! z6NN&fWdbL2N$`4ca}|=@KKP~9%{r+8(#S2S>r$Pe6 zCu`EYzD&CgH|N!|u8wlY2C&x~G9#YWna=62u4vJZyL1Q4Vo);f5lu3&fxhSUB9 zN8s65KYKRSD`Kh34RK-i!toLVp-PN>nDat$IT@pISS2kwMh#`hBgrIQNM(UeRNs}4 z0a1BQnta`?#>`AJy-4y)PCNMm-D>8B9GN;ZPX$`rrUBJ1MMf>p2eI5|y-l`xYFE*N zY$m=eHOP(TZi9YE`ScR%z~uYLorr?DSISRY^r+{AGW{>Vn@O)O4B4 zLv1DL4|w0e!mQ*CU>L*GCSmW-7xh9#j&tI?Dy%*%`;aYfp0tMs6w1nPacT`hEza#q z>Nn#xR5k>}Gs)jQQS=^Je{DkXoDT8|hHM4Ic;+wr^r}&x^i#i#8bB`}{K{cLMXGoU z2^_s<>-d>+q&8})jeMT8++NimvZCcD9Hx%2?sl7g)(0Kzt*POYz9;*wLoVbNWk}F! z2$U!$B8;4=P*KzR#}8RO#m4Qd4^@tFe-vzC3d(Jkb@toykP634VZTsKjTem@dVvnZ zjJRv4b;S zM6b2GwQl(>NB-5Tctz34A2u4ED0;>{LW2h?sYM`~TH-4k{gypTs|SWTePDrrv^7>I|Q)zx|? z656kSbGRhsH-+sMqJ_3{O~tgXaF$j8M}N>su*qsApeGnC;@<9o(kuA=-f1_N_lfvp zvLio|@>#X+{;>aDrL8WU7Fl=?O&Do+vKXM#=TdBKjBacg;hl6XJyMBI9#UEf+ye!K z+EZkw_3vEP_R=M$ zq4f1h_KT7a)$RwV1#|+J-lc{h6dfzO%vRZ~0ok0emopFx$b5Q|JNB1y^CN$}PwfPhLJb_TG=Lp&~d``k>xViZAQh7qgT)RJdJ@e`oXIL92)09 zeAs*TAP*h5>x@$YNIeBW$h6gk(VAz^=*tY+3U1+F7zYxl?}(!wiX1`hR>MA#x&2v;NwA}>fr8>O5g zG`9_nfC=p$0G=5OMAM~Vo|RYJw82Z40m z9JMSd19mX+VVWKgB&Lqd1H;DWW$K};TOf<@0cs7Wx|L8swo7c3On2i%#$Br=SqDfw z$ge}}M;IMXb>V$@%L|3VpgeZwEkI2!c1vr(ICpGsD6+Ocik#B=V5CHT*3HCQh^k(% z$E>2Fav||Jp2KKy$M?Hk95XS)2NInRsF7bOPkq$%`1_V{NTR!;=J$6*;j@F88mU0o z9rxheeC2q;zw*2a@%o@Z1ma6HM42B+G7UsPSMN`kf(pc|;A(GReQYz}gC_H(`?~7~ zSK5EnwoXkKyd@8|)J*e-=fu9h=kqvw>-!)hKduI&=(<>x8vL*Al=s(zI=8~`QlvqX z^f)8dHeef#{%pu8ZIAun>iusWgV*^RzDmF=sgM-ijy#4;oY>0KhpAzGR-&J*FVSj1 z!t{k69y3&d8LSub#w);Mqb~=E1{G}#9uQXQ30pC4vX>rIl@cVtj?}%1g^6umtQ(L_ z++x-t?64nU87zCdW4{RXXc~y2(Sg<0FT+MYIOtKnWTkx?DQ92alpvk2GjJG@z@mKz z)B(VhLn+|04usqJ%4xgY>)veBWP23NzE>x}R$`;!LZIRG4Te&pQ*L_wcW3R_CyE!A z1M9tUq^vp!9me)4w&1h&UD!K*CIT3K6Pcm9-|=b}(Q~ECO(595zw??n3!p2 zO~K8N)DLd#|L-h3jQZ|SQ`^8D)X9YJfRy9?SprsIt&Mn_Z>KYi7`PfcTY+B<)afIz3>Hs^4AZR!3QY@2m%s`qmLmJt$EUz4)7BK z_iuI2ZnuC^AB$=FRqah*mkCBXaiD-Zd3ZqJ7YYLLOgPZ7AA?Zb*wQ9|i}H;$kOqHS z0=@nbzbd)2nyAemc2_73yGHghBP2xD#=$t*XO!Z138Y`Usm-0jFJ zR`Yn= zy#M92@PAyuW%6xT$K@;Ip@mJFJa&!n0NO1;ot?trpERM zPCMKnb5rUd|3-<}zjyfdLugA)PoH5+E`5)nuPm0~wD{mcU9d zk;l?|PvKU02W~J01{ZeqBlm9*sU`?2oB*nKPy**78Qmwb2*9&qeHB=iJld@TlLCs+ zfsf}@*$6d+&Iyo)K(i!DwUWxioe{Vww1SZ#$EYGtUI zoRRAB=@XudGgM0z7K)-}0J3CLkcFbG=yG?s5i|u`zio&Lp#3JaYeLkUq!gYcNVQDh zZo-?YG+@Ho=`2-jD7D+B28mScgnYRoOqt^$r)0<9ZMVcICrGLf7-~QmA{(sAuefdv zxejD~RpZFs<4K#8LK1)3M;|<0RrQiB6-7-0c;(9;<>k`ve8YDAqO6F~itpmBEx`$C z3MTlBtcoc7JvP=uM;<7i6yRKJC>(0NLPvyLhDwVCe~a0!165=NKA&X*1j`Xw8Nl9$ zz}DgGc`#p}`U80K4C|VX+Oa`>7Krbb?rqTVD9KJ{!I3)yth(q_Uah={H^D_g55^au zCfftLyIQP%q^vD#PV=5k#gc7} zeP$`J3akweMng5jcN>p~k*IDP-S;*Fo^4d*B`N{ot1@@BG;-SBc%eq4heQ7rh$c;H zmmuX(;6mp|YrebQ18(GPpukY+9?Y3>*}eia$#z99?vuX(e`G_#uRv*&!vfgtEuAZrqqWau3+1dv(H#GB@l2dDQs69IA1GpAF5v4E-(Z zFIKI;z>flrffFS^U=m|2sm+Az(12%Rt;EpF>LOjmr@GGFpF0X(@M4Uz}T7w!%{S)C3;_v7|DYDI#Qb#AW2Zvyi+ zO(*UI%OSd-B**4Zs8{;kzCB|2e>}ZqRMqSD{!N2) zi6GJ~f^;K|bV{eBbhng(QqtW53eqhpp-70Jgmj8@Ntf`{v)8jjqH}k9I?D~cRxB`i3=o%LjCk_o~fOqlRJni z%$4}lm-K&^rxRO4Evong9C=I|mT#&${=U+FUbyHSCb`eG!(59?7bkWQ!9u4^Ih2tH zG1iNCmE;uSZuLI5tjPi6tCjxUxt{#vM4L4Mfp^q&OxTboop+`t454vMI+Xfj%WE^V z!fB{UcWv$3CE$0kLd5Xc-MQvIue)25?`i^J8ira1k6g*k!MBHqq@&o@itM%50Rt7Q z*Z8!tZfBn}^TmE)Tm+9ssw`vg1NYY&8Df4sRksV03nIlhBSoz~{v}s1s)&*Fd#c;w zX_po;K;syJzkGQdFkt|bRXDfmzo*~nOMjm$5&Vg(jzCe7xXcS7siI=yr^7f@&j6_* zaS5Z;;%lrYY+qw7LXVQ~c+Yw1m3i3UeK2mWo!UTR{9!lx{-2OT>Rnw&5_BTR5&CSR zF#0b7?|bs~ng+BJ@#8(v>wM@O&%QrH=2%U-(y%Nt^o1X!U@0rWvIy$`Z92yvS;V|`B>6pHk$M(;xkWUvGir_4%r@$R1 zCnQpNOhA174Fg!8W~%aJ@7+TR*L75=Wrg{Y z51C(MUTLK8*-Z4f^q^ZnXShF;wEnrzyA^&c=xFJ6D#N`#(wGxQZ>-IfdI6|osn-0i zZ#fTWA`J{|ZyWI1B5)qqlK5fE>xfn@9xLn*1nn7IqBv3gBv^ibZ&S4pUkpJ-%hiO# zZ0^6f;Dok>E05`Y4%G*deB88o_qPli?D;*u;(l(fQqTw*NWr5N;0q^@kMXT=mmkQ_ zeekfl|1q}<5_g=MZRAV#QSIea(!qnCJ7z)uj`jQr#P*TiT40kzI<@ro)W*4{XzXj7 zIzsuyz^LOunMc2?qHGW}gcD4rNA0zZs=jSrNF> zI1#FO&0-0-sUzmc5Tm_MKfhAz$Da%i&ioNd#HgFe=Q7_0;^|Ss*sL*$@JDVovu+s= z!R`X6itNv0^3zH~N^`FaKRO3ObaHfn)D`zj%S7w1>2VY%u3EZcysKA}v~$MN`o3}E zn*?|H;td=vcRy{UPxJh((*HD@^Z;{p^5FetbYG&blh*0audkfj-!HCUQh91XjnZeU zSh0b!Pqz5esjB^C`As9))vrFfn(tYHK3`)tc7?)W^0fC2I@T)}`8O8!f@wLo>7(yF zWUlZ(&iUS5dSdA;Lt%sxUDJ45(-EQ@Ev%hsO$Dyne({6sj+M_HVgAyStBO+9{8m`{ zf*(I--@Hv$?Tf}IA4W>a-$p;NT+2DnUTK24>rdT8GeAp$JH^2(5>L!niQOlFfyGf4 zJq{Y{-{^OYLlA{A$;|VdxJ2#JCu|D-{vvUF#z!J+DGTB3!mKD?sa;{Z0Wr6ScHqv! zQQKTjhp)($=2*~{NH5G@CATy%x&A;SoSR(4aT4Z7$3MDs{QcdL7OVR6y=s=Wy6E_r z7NfA!biFt@j|8IIT&>~c3{si+e;M|S%8eP6-re7jQO2|^)2ZT&vg$-g?vS2N#d{g( zney-WUg{%KR5EAH^;DG?KBzF-DGxKEU#k7$hR=U|A$##=urTgXi)t1F?P2hR;&bTs z^-_z91m~fRs!YKigXX{omj_-%DGTXYT88@R%d&x zpN1z-|E%`rTB}1jvy~0hU*e2a3vM1{oegzNVVn-*)gZds4x=fU?tylRa->!+8ju`i zoy99ekLv|KnBMPyNIa#;k`uNBh=fPW5e&E=SE^mHM60=Kw)+!URcLF7>o1wM6dN9} zY0uD7EHJkWLx|u>b1mc9l zO?GQkUBbk;sm@#ba|Jr8jzQw3rhH#mNxh`hKrSNdY+kQg+cq=s9kZb$8z{p9%+zK zcyJuQ<)>RAg|ehfI;@=L{xFuaPcC^0#nhx6U#E6S^W}OsEt{*-;0v=0LKB`R8BUFE zvXAV?O5~#Nh>kHMqtepw=IMs|Cwr@HdS3RksNM_&}_ugs+&$c6UE#B;Pxg zd$UdcCFhR>YidSnstp-)kE5KWe4NdrvUrM|$f@ZMMeO4|wC6}Q_6_!;6O-qF3cB3? zOpvX-SX?SYH~7WA0)-{J(dH@IXXH!mK~mk)iOS9$O)C`{#K=1wh$9q~zj^sbyS9FP zu)OpXBX&;hO%O|EoN}#OoIwA`{=lrJ+ds$j;Az~eh$ppQ@1@MHxF1>3{|ebxzwhRy zjpV`220uPrq&Vk)+!Xfo)o&|F4}-g?ciAC>&{x8^s=|URK2DdJ&>X_1gr9t0SlQ&a zl3(KsX>5`xCF!5+o$w0gOLf?Dzf4#=Ih$12>riB)U3cZ}`>g+v!dU8+OcP_ZK9n}l zYIIM}$5^sW*O8RQk87^Cvd~pKP~dMZ*0f;q>4|MVV-@I3aXT;%QjsYrl0F&`-Kh^~ z_y5`*TI2u6r(tH9N!juCz`YMj-n6b}DT`{N21J4Nt6r(n6!+g1r}1h;5#8@(hzO$| zt2Xt@&{AkyN?`Y?G!@r>sq|FK8_A}atH4Wh+on{;_J>rb`2#(V=PsreI< zO|OZc?h(o~?P_*>ntqc=j!QQx>xe@>iXuKVBabh(h?M9QSM_NI$^zZz`S@MGv#gRXrnf_3Z?!`Qrs1Z3-)*yQa# zbooo+zf4znn8D`Sv2G(bDW=6Y?IK}f+50BRi4N~{e&!{^7uL?{Bfc+&A)?MTDo-EK z*|5B3sf#h*vx{SJW07b6k`$K8>`cSd9O}WSWLU*CS%&4Qn7o0~^w!aN>Ag)okUtVN zY(LJGbU6>$n~={EW$W6L@?#YzMml1=@_il}z{nrHlk_V09K>1k&8gw^3BLS1~3$5Y*Pt#9r=+5bG2*J;@hV6oObKV=rI_uL11=zdTeGA`_~0GSb$TpTA?y>~0q!#vTS>DT8uCCt6p0t_K-K2 z7^acjx_W`x(}qOPzs`?->rC?p9n_qjcg<_$8^jM3rc_m?g|oFM7A)hUW?aSzpR-~WJ;h#sQ0QkdYS^kwo26ear#bj8a`y4ZTPDcgl$dKp#CB#H z>ZnSClgJ(&DBK!*Kn?>*Y?u^kGL3U}QmFQaoIctwEbCnz@a?C^+VQt|2D&0%vZ0>e zUK0l7fvT*INKt1ySAz`i$x{kbx33wtx*v=)6o;X!_A1j&46=`4Twi|)k?pIML%wX| zKJGh9F<&jbX+Mk-jRM)=rCAl;?KyvOa>W78?+!vKDo(sy)u0m&X7OYy&T0IzK_mN3 z8C!8OXG>GFs1kGiwYy)eO%CVtc}2JfHOkZ%f4}zwkyP2;Pr0J0dRQyn6%JQ-6MX0j zxo!;LL4@=%RKHJz3tw;V#(KFVQbL>( z#`=3w2*>29xwp4K3#mGjKQ`skmkCwdcEYD@s+0XzB!f2fDh45}4uU_pYy1E*Vf9o- z2HUb)#R8dWLy~FKAYt}RItuZibRRX|-E_^bHIfFXyXS@7-my>bW7$MXej@3QH4ue9 z{3#5Qj>d|PXwTDSu&GGBPwj5Rwp|}thEhiXkKi|2qvQAhCCfM=86~j7tJQssV_YG=pw$Fw*PA^@!NG-ePa3aZ1r)&3d{{6qTFfkJ20^hTYPYt z9v>FG$E1=C*0fA+{XF&*OWZFaJ7~71H*@U4YHfo)QMEmt2Sg?RDxT+9jo>Pt-*QN@ zBa;`Pa!8N!mHv*s!^ zMk>_fDmr5`_GUuqOnqr&LOT)MUUN>NmNOzlX1vd;z5HHMgBJ4ISv|R3qH?tTT18V6 zSg)Q8^bsn!Ymk#qKIoDpE~3udKPc5H{UN20-e>Vaiha-qjXYw+I=_jhs^JH=gc`0t zcX5c)Q?Dm-D#wZDWYUdQ`afgdlLd6%C88t8Eu!@Ju&&Ceu_1#z*hpfybc-ia?#}QN z3qE@;^J*1ThSSN<-HI|_?3$EM<$}1wELw1X%1z%5RoX6mr*Cd9v&a*J&7qE!l<0^p zI21G3EnA<@>kzi|z(y#Cn>I7&ZU{4JomSKaJz@CU7;GWCqvDvO$2MFMri7j$gc09a zH=D;2)tNr#>em$s9k;lV*712}dkPRbduwZtv`HCBSO1)1Lf`)pmgJ#{J^E#b)}X4P z)#1IzWlXmny@_GBri#*|erLhZmGm^iR|U8j{>z@xc(?33@oN4ak`2={Cb^JhWl+>0 zmobMvGHfzX;EfLTN2Ve?=E1OADrlm-!0hbWj0kl&dg6J7+{Z_Vp5KHUf~8U4jLhUJEm?{K`7&C2 zWJbaKB3ePJ+yWV6422~^TK{o}AzL}S^sQ6JC3~G{WO8)Y@=R^?Z?ZgC*pgqcyU38J zS&>7lh>l*&ngBZ{A`DaMS^vcChtgn&yh+rkF_nA)Tmb*z{Pw`D=DE4_}eyqvewJyqiLnb&0}vi>wSsh1j^X zE~W_*74Mfxq|ikA7TJkqDHUXFELo>cR1^XkS|lR!5LIBFD=A%vw!>Dts|BqnduMoo&T6lxFOrS=@>h|2gq@s% z6zNo?z9N=Vp|9^Gg`(?szo*br+16GWW8FA!PoI5NBH#5uBax;Z$EHT8R2BixCH88K zp0gPDEOl{0=Ho5xw8Y^uxkt=V-Glg-9J{G<;RrTvR3v&->s^53o{Ewl!}tmOhcz9H z<%j8W%O(GVIq3a*8-cxbY)2TqTkRj+tPwxKgn&+^ZC}#p(fp4soL_Qy`OBfXsrLWb?Djf{~?4Gspsl!r}-xsTRat|rd0()Eu0h257*Q)c&x$q1D*rxYN`Bj z0lL5lyeyX@WaWL=;{g3YdHDkCZ?ZNv2liiMtc+rUzs67;!o<5O_=n&Oj>TZ|#}Gbs zKv>X5TR9vTUS6BYLjR6rzokwQNMz4-1TVK8Mgr$1f(5(!NZf(DhmA1Nyxgc(jN z7zH155W?&}n@i%5E8HBf%M0Mln6f@k9{N!5NRG{>4@6a)!SuIYk4Sg}xLbuabN zPvoqeTss9Wr45L0940OGr{zrlYWaB==&B zu8&6586L-w3q8}gx&GG+bSN;0|M;z2qeduqngHYE5qyRa1GgDSW@{rQGVdgV7aj3H zfE3eU%;Ps9+*K26YO_hAHQF64}@#l*v1gAlbkHI0M84)N=XQ0{$rVAl_7yH9$onJQR+c zC42MpF-`jcj4rgFOe3&zLpfO~DevT$1`h%Ng{C3q=`8Qi^Wmd24(ZkvwaT8p&Gl7Y z{g9yejkMJjqFM&%lt7kj`Hq+St_ba8S_jZY%H2ku?aSGyg`#^A`5#c4s4nOa{#e&Gkd%u9Gv^H=v zhHOES@K`(8wjGXO%cY_xtwe7OyUI<~Z8>uBf8|(-E-h`27V@&YK`ptF8b`>9z&gO+ zfB9sFBu9ivBW7dVK_``l=gYV*sxiKh<~e{Qk~a@7fwBTZ?;OxiYqZ`e0j)Ug2_m|q zn8YmX-J7ag`UKMQS%NN=z7P~ugLM6U0NsI@C4(<)1ycS#^Q~eM%9F^-Z&*awb0{5u zzDwURd4>`Wl;*qK@i__+8TIw`vO}0mYYS+M9IEQ>!mfntH5`UGzQvi^eYPDJ_9r_Z zZ6*H7o}B%i0)NLS6~Y)hgS?{ z|HquAX9w`e+rGqjOzpPb1$(K^gJFncxSIoJX4R2Gm4%7=Lad9w<_>GkzDca7P~THlMxR^--3$KRgU* zHOkUBb?zsuF0A;v{h?t>Ow$8PU}wTC4hg_TXu#b2nUdNVMMC{H;z4}ipOpUW`C4mf zfsUQVwz{I)t2rN*{d&iYz};p)zs637PneABU;%J}iKP5wPa&sKR2~z6JEd@N0DnjX z;Ecx>NnLQTJ}fpW6PYtIsM5*vU5+dU@(noAZWb~_5ECrdYcKfU7l2i#Y572DYnp%O z1m$p{+i=gD)RdK}+xn)YaU#%23HsnASNzzVIy^^${P{?69zNay7aC)u zoOLJ$UTwhX(C&hS-`%8ynpFdmfh)cM);ly;>P+Ju zHKE($oI^g}_au zYU`!cOGk{Cm;@(k<3w!}b@;aX=D;<>${Is4y0ntZUZCV3$Q9rSSn75h-cS*?Qkc&1 zx$t=zvh{7xPzputB-d{>LvYsh^SN-InlKIPG8|bdwN6NqjW*;$Ka`c@(}mm|Ol`Q0 zvJPIzPrC{T*$k5B0#WA@fh1 zrF0NIJS|d8>RvEhGYjpb;HZ{@)do_tl%KQz?SGCOR3RSWY*on$#yU62x(kO_$}2od zfLOnMP34{LV}OK`EaxjNE7d4X{>a$ftU(Gefjm5IBm1uk33W4%XHM~aAFygEO#Wt3 zdw`ZBn1pp6*cVS%_&CnnGicXujg8l82Z0UPgY$2u@%edB;HAHCy;XlA9B9dc?u!7d z?h@5e&k%SCP=JlQB1fbBNi18~)fr@@#dG!?)f)!^^y1>@oUu%=3DkouZ!rdU9;Zk& z`{~G2hmCI_QA-LTJ9f*rHgqlbob*_^=L!8B$@XCi#^kz#pK!$fq@)@w!%|+M z6*!QB0s9uTMp_vZ(m-2;vrLnLO8X*oX;Fn?PMV3H^s3ZYXF|p}*Mu(iMe^>tZ@4GyL=2#)=Sx#GB zG6(G<=fyISV>h-r8O`>gBrKKE*jMVCr&O1x1RX#1i=4XE%*=HJ7bK^qR>V}1KLMj3 zf{2eX@3cndgSx{2*1S2;*QfC_7|6|t?=hfzl2cNcHZTP~n^>6EKT9C~1j(Fr zDW3lw9_HF>r&i_xbN1+3Z34lxj3~cFx+O#2(Q>)yI2FqGhh<%i-c$>u;&ueJ2(7hJ zqH;INSt8H({7YW4KZKa&M7epSpOwvT`c>X!CUO2tub7;JL!hs|!E`1w%u_ zUA7VTN2~?T#W~)@dMFr_O8+}o%@}?Nw=&K{un#QG2H@om*^X@^2#)@#MlgUnTo@~YJq$IZnctrjIOYx@D1^YtWzTFk{f=eHcI}qJqdgEa&pCW|Hp--l{B-FeA} z3F}m=xWHaUAgx5b%Te#e`UALF>EEAkX)Ih3;jm?h75<8*K?@r14r)lyiXZA#X8Se) zw@6MYN5pI86v>ZSmQ+s9*e$#iyWkF!LWoNPkZhSd8nOpM-yT&&Atq4a&v*hKkvJTV zf^(kQaOprHcK03u<#;kPBF+602GFa3Pj>

^V%JoDT=Lv_We`$@k1WuaiWG&WPsA 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