From 5717c11be0600ea8c8c6f6c5d48934b0bdfde4cf Mon Sep 17 00:00:00 2001 From: Michael Liendo Date: Thu, 18 Jul 2024 19:08:58 -0400 Subject: [PATCH 1/5] chore: update workspaces and readme (#13) * chore: add scripts for the shared folder * chore: update scripts for workspaces * chore: create readme and add migrations up for the server * chore: format code * chore: workflows * chore: fix workflow * chore: change names * chore: fix server workflow --- .github/workflows/client.yml | 13 +- .github/workflows/lint.yml | 31 + .github/workflows/server.yml | 12 +- LICENSE | 7 + LICENSE.md | 0 README.md | 65 +- client/README.md | 30 - client/package-lock.json | 4562 ----------------------- client/package.json | 8 +- package-lock.json | 1979 ++++++---- package.json | 30 +- server/package.json | 9 +- server/src/controllers/Auth/login.ts | 2 +- server/src/controllers/Auth/register.ts | 2 +- server/src/controllers/User/me.ts | 3 +- server/src/index.ts | 17 +- server/src/middlewares/checkJwt.ts | 2 +- server/src/repository/User.ts | 2 +- server/src/services/Auth.ts | 2 +- server/src/services/User.ts | 2 +- server/src/types/Reply.ts | 2 +- server/src/types/Request.ts | 2 +- server/src/utils/errorHandler.ts | 5 +- server/src/utils/jwt.ts | 2 +- shared/biome.json | 23 + shared/package.json | 8 +- shared/src/index.ts | 2 +- shared/src/interfaces/User.ts | 2 +- shared/src/interfaces/index.ts | 4 +- shared/tsconfig.json | 6 +- 30 files changed, 1444 insertions(+), 5390 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 LICENSE delete mode 100644 LICENSE.md delete mode 100644 client/package-lock.json create mode 100644 shared/biome.json diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index dd7bc55..1c829c4 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -14,9 +14,6 @@ jobs: build: name: Build runs-on: ubuntu-latest - env: - workdir: ./client - steps: - name: Checkout Source uses: actions/checkout@v3 @@ -27,13 +24,7 @@ jobs: node-version: 20 - name: Install Dependencies - working-directory: ${{ env.workdir }} run: npm install - - name: Lint Check - working-directory: ${{ env.workdir }} - run: npm run lint - - - name: Build Check - working-directory: ${{ env.workdir }} - run: npm run build + - name: Client Build Check + run: npm run client:build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..f066d01 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,31 @@ +name: Lint + +on: + push: + branches: + - main + pull_request: + +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + +jobs: + lint: + name: Lint Code + runs-on: ubuntu-latest + + steps: + - name: Checkout Source + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Install Dependencies + run: npm install + + - name: Lint Check + run: npm run lint diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 49a3146..fdba627 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -14,8 +14,6 @@ jobs: build: name: Build runs-on: ubuntu-latest - env: - workdir: ./server steps: - name: Checkout Source @@ -27,16 +25,10 @@ jobs: node-version: 20 - name: Install Dependencies - working-directory: ${{ env.workdir }} run: npm install - - name: Lint Check - working-directory: ${{ env.workdir }} - run: npm run lint - - - name: Build Check - working-directory: ${{ env.workdir }} + - name: Server Build Check env: NODE_ENV: production PORT: 3000 - run: npm run build + run: npm run server:build diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d34396a --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2024 Michael Liendo + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md index ecab19f..3ec0164 100644 --- a/README.md +++ b/README.md @@ -1 +1,64 @@ -# linx +
+

Linx

+
+ +## Development + +### Requirements + +- [Node](https://nodejs.org/en/download/) +- [Docker](https://www.docker.com) + +### Getting Started + +```bash +git clone https://github.com/Michael-Liendo/linx.git + +# step into repository directory +cd ./linx + +# Install dependencies +npm install +``` + +#### Run Server + +```bash +# Go to server +cd ./server + +# Copy .env file +cp .env.example .env + +# Run a PostgreSQL with Docker Compose +docker compose up + +# Go to Root folder +cd .. + +# Run the database migrations +npm run server:migrations:up + +# Run the server +npm run server:dev +``` + +#### Run Client + +```bash +# Go to server +cd ./client + +# Copy .env file +cp .env.example .env + +# Go to Root folder +cd .. + +# Run the server +npm run client:dev +``` + +## License + +Licensed under the MIT License diff --git a/client/README.md b/client/README.md index 0d6babe..e69de29 100644 --- a/client/README.md +++ b/client/README.md @@ -1,30 +0,0 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default { - // other rules... - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - project: ['./tsconfig.json', './tsconfig.node.json'], - tsconfigRootDir: __dirname, - }, -} -``` - -- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` -- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/client/package-lock.json b/client/package-lock.json deleted file mode 100644 index 76a0482..0000000 --- a/client/package-lock.json +++ /dev/null @@ -1,4562 +0,0 @@ -{ - "name": "client", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "client", - "version": "0.0.0", - "dependencies": { - "react": "^18.3.1", - "react-dom": "^18.3.1" - }, - "devDependencies": { - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", - "postcss": "^8.4.39", - "tailwindcss": "^3.4.4", - "typescript": "^5.2.2", - "vite": "^5.3.1" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz", - "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.8.tgz", - "integrity": "sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helpers": "^7.24.8", - "@babel/parser": "^7.24.8", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8", - "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.24.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz", - "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.8", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", - "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "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-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz", - "integrity": "sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", - "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", - "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", - "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.8", - "@babel/types": "^7.24.8", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz", - "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "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==", - "dev": true, - "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.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", - "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", - "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", - "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", - "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", - "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", - "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", - "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", - "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", - "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", - "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", - "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", - "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", - "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", - "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", - "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", - "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "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.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "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.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", - "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/type-utils": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", - "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", - "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", - "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", - "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", - "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", - "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", - "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.16.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "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/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": 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-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "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.23.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", - "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", - "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": { - "caniuse-lite": "^1.0.30001640", - "electron-to-chromium": "^1.4.820", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001641", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", - "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", - "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": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "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/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/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/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "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/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.826", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.826.tgz", - "integrity": "sha512-zULpSu/wQI4X9qWAHabbi0ZUfJ/bEFTA6bfdXlg6HSf5XS7A8vMdzpJC4r5Ws/5E5NGdrNHmXgvGewGuHMxhPQ==", - "dev": true, - "license": "ISC" - }, - "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==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.8.tgz", - "integrity": "sha512-MIKAclwaDFIiYtVBLzDdm16E+Ty4GwhB6wZlCAG1R3Ur+F9Qbo6PRxpA5DK7XtDgm+WlCoAY2WxAwqhmIDHg6Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "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/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/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/eslint/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/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/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/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/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "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/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-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "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/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": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, - "license": "ISC" - }, - "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "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==", - "dev": true, - "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/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/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/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "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==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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-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-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "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/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "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==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "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-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/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/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/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "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.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/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "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/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "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/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "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/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/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true, - "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/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "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/path-scurry/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/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/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true, - "license": "ISC" - }, - "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/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", - "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "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/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/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "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/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", - "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.1", - "@rollup/rollup-android-arm64": "4.18.1", - "@rollup/rollup-darwin-arm64": "4.18.1", - "@rollup/rollup-darwin-x64": "4.18.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", - "@rollup/rollup-linux-arm-musleabihf": "4.18.1", - "@rollup/rollup-linux-arm64-gnu": "4.18.1", - "@rollup/rollup-linux-arm64-musl": "4.18.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", - "@rollup/rollup-linux-riscv64-gnu": "4.18.1", - "@rollup/rollup-linux-s390x-gnu": "4.18.1", - "@rollup/rollup-linux-x64-gnu": "4.18.1", - "@rollup/rollup-linux-x64-musl": "4.18.1", - "@rollup/rollup-win32-arm64-msvc": "4.18.1", - "@rollup/rollup-win32-ia32-msvc": "4.18.1", - "@rollup/rollup-win32-x64-msvc": "4.18.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "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/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "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/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "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-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", - "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "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.1.2", - "picocolors": "^1.0.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==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.39", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "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/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "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/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==", - "dev": true, - "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/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-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==", - "dev": true, - "license": "ISC" - }, - "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/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "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" - } - } - } -} diff --git a/client/package.json b/client/package.json index 6cded20..2a63ddc 100644 --- a/client/package.json +++ b/client/package.json @@ -1,13 +1,13 @@ { "name": "@linx/client", "private": true, - "version": "0.0.0", + "version": "0.0.1", "type": "module", "main": "src/main.js", "scripts": { + "start": "vite preview", "dev": "vite", "build": "tsc -b && vite build", - "preview": "vite preview", "lint": "biome format ./src && biome check ./src", "format": "biome format --write ./src && biome check --write ./src", "format:unsafe": "biome format --write ./src && biome check --write --unsafe ./src" @@ -21,14 +21,10 @@ "react-router-dom": "^6.24.1" }, "devDependencies": { - "@biomejs/biome": "1.8.3", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.1", "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", "postcss": "^8.4.39", "tailwindcss": "^3.4.4", "typescript": "^5.2.2", diff --git a/package-lock.json b/package-lock.json index 8479b76..b90afa1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,14 @@ "client/", "shared/", "server/" - ] + ], + "devDependencies": { + "@biomejs/biome": "1.8.3" + } }, "client": { "name": "@linx/client", - "version": "0.0.0", + "version": "0.0.1", "dependencies": { "@linx/shared": "^0.0.1", "classnames": "^2.5.1", @@ -23,7 +26,6 @@ "react-router-dom": "^6.24.1" }, "devDependencies": { - "@biomejs/biome": "1.8.3", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.1", @@ -34,8 +36,23 @@ "vite": "^5.3.1" } }, - "client/node_modules/@ampproject/remapping": { + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -46,29 +63,47 @@ "node": ">=6.0.0" } }, - "client/node_modules/@babel/compat-data": { - "version": "7.24.8", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, "engines": { "node": ">=6.9.0" } }, - "client/node_modules/@babel/core": { - "version": "7.24.8", + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", + "@babel/generator": "^7.24.9", "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", "@babel/helpers": "^7.24.8", "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8", + "@babel/types": "^7.24.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -83,16 +118,26 @@ "url": "https://opencollective.com/babel" } }, - "client/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", + "node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "client/node_modules/@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", "dev": true, "license": "MIT", "dependencies": { @@ -106,16 +151,64 @@ "node": ">=6.9.0" } }, - "client/node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "client/node_modules/@babel/helper-module-transforms": { - "version": "7.24.8", + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "dev": true, "license": "MIT", "dependencies": { @@ -132,16 +225,20 @@ "@babel/core": "^7.0.0" } }, - "client/node_modules/@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "client/node_modules/@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "license": "MIT", "dependencies": { @@ -152,16 +249,53 @@ "node": ">=6.9.0" } }, - "client/node_modules/@babel/helper-validator-option": { + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "client/node_modules/@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -172,8 +306,39 @@ "node": ">=6.9.0" } }, - "client/node_modules/@babel/plugin-transform-react-jsx-self": { + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", "dev": true, "license": "MIT", "dependencies": { @@ -186,8 +351,10 @@ "@babel/core": "^7.0.0-0" } }, - "client/node_modules/@babel/plugin-transform-react-jsx-source": { + "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -200,8 +367,62 @@ "@babel/core": "^7.0.0-0" } }, - "client/node_modules/@biomejs/biome": { + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@biomejs/biome": { "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.3.tgz", + "integrity": "sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==", "dev": true, "hasInstallScript": true, "license": "MIT OR Apache-2.0", @@ -226,7 +447,7 @@ "@biomejs/cli-win32-x64": "1.8.3" } }, - "client/node_modules/@biomejs/cli-darwin-arm64": { + "node_modules/@biomejs/cli-darwin-arm64": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.3.tgz", "integrity": "sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==", @@ -243,7 +464,7 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-darwin-x64": { + "node_modules/@biomejs/cli-darwin-x64": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.3.tgz", "integrity": "sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==", @@ -260,7 +481,7 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-linux-arm64": { + "node_modules/@biomejs/cli-linux-arm64": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.3.tgz", "integrity": "sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==", @@ -277,8 +498,27 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-linux-x64": { + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz", + "integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.3.tgz", + "integrity": "sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==", "cpu": [ "x64" ], @@ -292,8 +532,10 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-linux-x64-musl": { + "node_modules/@biomejs/cli-linux-x64-musl": { "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.3.tgz", + "integrity": "sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==", "cpu": [ "x64" ], @@ -307,7 +549,7 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-win32-arm64": { + "node_modules/@biomejs/cli-win32-arm64": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.3.tgz", "integrity": "sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==", @@ -324,7 +566,7 @@ "node": ">=14.21.3" } }, - "client/node_modules/@biomejs/cli-win32-x64": { + "node_modules/@biomejs/cli-win32-x64": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz", "integrity": "sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==", @@ -341,561 +583,306 @@ "node": ">=14.21.3" } }, - "client/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "cpu": [ - "x64" - ], + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, "engines": { "node": ">=12" } }, - "client/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", + "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==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "client/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.1", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ - "x64" + "ppc64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" - ] + "aix" + ], + "engines": { + "node": ">=12" + } }, - "client/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.1", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ - "x64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" - ] - }, - "client/node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "client/node_modules/@types/babel__generator": { - "version": "7.6.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "client/node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "client/node_modules/@types/babel__traverse": { - "version": "7.20.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "client/node_modules/@types/estree": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "client/node_modules/@types/react-dom": { - "version": "18.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "client/node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, + "android" + ], "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "node": ">=12" } }, - "client/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "client/node_modules/esbuild": { + "node_modules/@esbuild/android-arm64": { "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "hasInstallScript": true, "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, + "optional": true, + "os": [ + "android" + ], "engines": { "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "client/node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "client/node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "client/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "client/node_modules/react-refresh": { - "version": "0.14.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "client/node_modules/rollup": { - "version": "4.18.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.1", - "@rollup/rollup-android-arm64": "4.18.1", - "@rollup/rollup-darwin-arm64": "4.18.1", - "@rollup/rollup-darwin-x64": "4.18.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", - "@rollup/rollup-linux-arm-musleabihf": "4.18.1", - "@rollup/rollup-linux-arm64-gnu": "4.18.1", - "@rollup/rollup-linux-arm64-musl": "4.18.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", - "@rollup/rollup-linux-riscv64-gnu": "4.18.1", - "@rollup/rollup-linux-s390x-gnu": "4.18.1", - "@rollup/rollup-linux-x64-gnu": "4.18.1", - "@rollup/rollup-linux-x64-musl": "4.18.1", - "@rollup/rollup-win32-arm64-msvc": "4.18.1", - "@rollup/rollup-win32-ia32-msvc": "4.18.1", - "@rollup/rollup-win32-x64-msvc": "4.18.1", - "fsevents": "~2.3.2" - } - }, - "client/node_modules/vite": { - "version": "5.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.39", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "client/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz", - "integrity": "sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.8", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", - "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", - "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.8", - "@babel/types": "^7.24.8", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/types": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz", - "integrity": "sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@biomejs/biome": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.3.3.tgz", - "integrity": "sha512-vTJn7RBzLWIabUuUIoEopO860YyBrbPEu4Pztfd28jRU5QD074hKZ9IQs24pFO6A2R296gaeYmN62f4u7pUruQ==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "biome": "bin/biome" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.*" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/biome" - }, - "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.3.3", - "@biomejs/cli-darwin-x64": "1.3.3", - "@biomejs/cli-linux-arm64": "1.3.3", - "@biomejs/cli-linux-x64": "1.3.3", - "@biomejs/cli-win32-arm64": "1.3.3", - "@biomejs/cli-win32-x64": "1.3.3" + "node": ">=12" } }, - "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.3.3.tgz", - "integrity": "sha512-2X87ZfbmWwe4NGukrUvnoYdI//muSgjNUCAHJ2DO+kS1sB7kDy1s6PN/IYyTJuqRcJtDuOnSpaUDE7KxR1YhtA==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ - "arm64" + "s390x" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.3.3.tgz", - "integrity": "sha512-t+7DWTCbSgHOBcPsGKuwS1qh1z9zbXFK8i8ktE18yW7iF/W0zI62k44fYqYeFJKlb0Q08aqUvez3L+AQJFsn+w==", + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -903,50 +890,50 @@ "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.3.3.tgz", - "integrity": "sha512-D8CvXaB8lkXXBQ6B3n0MXSSZFiE60+aNHorBLimVTtKiMod8QvAP425oQFZFul5wMXZqPLGTKFjXbAi/rvnc1A==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "linux" + "netbsd" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.3.tgz", - "integrity": "sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ - "arm64" + "x64" ], "dev": true, - "license": "MIT OR Apache-2.0", + "license": "MIT", "optional": true, "os": [ - "linux" + "openbsd" ], "engines": { - "node": ">=14.21.3" + "node": ">=12" } }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.3.3.tgz", - "integrity": "sha512-bqB05fwJnRZwRlcm/BS/s4qPickqiXZkiU/nOYvHApfsPeqgSHgv5HWoBYuSUjgqBbX3XZJArsC5dCcVW7vAJw==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -954,16 +941,16 @@ "license": "MIT", "optional": true, "os": [ - "linux" + "sunos" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.3.3.tgz", - "integrity": "sha512-muFOjAv1ONMfaJDlo4Ds+Qb9lkdSLM2XaxOe3AJPejSq3Vi0aRr51ZnE02BofMnL2sVsOA9cO54wibsuTcopbw==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -974,15 +961,15 @@ "win32" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@biomejs/cli-win32-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.3.3.tgz", - "integrity": "sha512-PMkMhS4smmmTMflxuZUx3REFSazEL9xsGscvZO1dKWI4ET23la+KxEM4TlSpjOyO66UerqSkuUlZecn0QhD63A==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ - "x64" + "ia32" ], "dev": true, "license": "MIT", @@ -991,18 +978,22 @@ "win32" ], "engines": { - "node": ">=14.*" + "node": ">=12" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -1139,17 +1130,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1178,14 +1158,14 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@linx/client": { @@ -1220,6 +1200,18 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1244,39 +1236,263 @@ "node": ">= 8" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz", + "integrity": "sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "win32" + ] }, - "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==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "engines": { - "node": ">=14" - } + "os": [ + "win32" + ] }, - "node_modules/@remix-run/router": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.17.1.tgz", - "integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "engines": { - "node": ">=14.0.0" - } + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@tsconfig/node10": { "version": "1.0.11", @@ -1306,6 +1522,51 @@ "dev": true, "license": "MIT" }, + "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.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "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.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, "node_modules/@types/bcrypt": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.2.tgz", @@ -1316,6 +1577,13 @@ "@types/node": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/jsonwebtoken": { "version": "9.0.6", "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz", @@ -1326,9 +1594,9 @@ } }, "node_modules/@types/node": { - "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "version": "20.14.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", + "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -1352,6 +1620,16 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", @@ -1366,6 +1644,26 @@ "dev": true, "license": "MIT" }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1429,15 +1727,15 @@ } }, "node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "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", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -1461,6 +1759,12 @@ } } }, + "node_modules/ajv/node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "license": "MIT" + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1471,16 +1775,16 @@ } }, "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/any-promise": { @@ -1525,9 +1829,9 @@ } }, "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true, "license": "MIT" }, @@ -1745,9 +2049,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001641", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001641.tgz", - "integrity": "sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==", + "version": "1.0.30001642", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", + "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", "dev": true, "funding": [ { @@ -1780,46 +2084,6 @@ "node": ">=4" } }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -1845,6 +2109,19 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -1861,22 +2138,19 @@ "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==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "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==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, "license": "MIT" }, @@ -1916,6 +2190,13 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "license": "ISC" }, + "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.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", @@ -2062,9 +2343,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.827", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.827.tgz", - "integrity": "sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==", + "version": "1.4.829", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.829.tgz", + "integrity": "sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==", "dev": true, "license": "ISC" }, @@ -2074,6 +2355,45 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -2083,6 +2403,16 @@ "node": ">=6" } }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -2142,7 +2472,20 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8.6.0" + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/fast-json-stringify": { @@ -2241,6 +2584,18 @@ "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==", "license": "MIT" }, + "node_modules/fastify/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -2354,6 +2709,12 @@ "node": ">=8" } }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2405,6 +2766,16 @@ "node": ">=10" } }, + "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-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -2442,16 +2813,16 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "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.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/globals": { @@ -2580,9 +2951,9 @@ } }, "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -2703,6 +3074,19 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -2725,6 +3109,18 @@ "npm": ">=6" } }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -2903,11 +3299,14 @@ } }, "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==", + "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" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } }, "node_modules/make-dir": { "version": "3.1.0", @@ -2924,15 +3323,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -3020,6 +3410,12 @@ "node": ">=8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3105,9 +3501,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz", + "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", "dev": true, "license": "MIT" }, @@ -3251,6 +3647,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/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/pg": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.12.0.tgz", @@ -3377,9 +3780,9 @@ } }, "node_modules/pino": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.2.0.tgz", - "integrity": "sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.3.1.tgz", + "integrity": "sha512-afSfrq/hUiW/MFmQcLEwV9Zh8Ry6MrMTOyBU53o/fc0gEl+1OZ/Fks/xQCM2nOC0C/OfDtQMnT2d8c3kpcfSzA==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", @@ -3664,15 +4067,6 @@ "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==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3725,13 +4119,23 @@ "react": "^18.3.1" } }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-router": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.24.1.tgz", - "integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==", + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz", + "integrity": "sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.17.1" + "@remix-run/router": "1.18.0" }, "engines": { "node": ">=14.0.0" @@ -3741,13 +4145,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.24.1.tgz", - "integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==", + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.1.tgz", + "integrity": "sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.17.1", - "react-router": "6.24.1" + "@remix-run/router": "1.18.0", + "react-router": "6.25.1" }, "engines": { "node": ">=14.0.0" @@ -3891,6 +4295,42 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3969,15 +4409,12 @@ "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/set-blocking": { @@ -4271,9 +4708,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", "dev": true, "license": "MIT", "dependencies": { @@ -4308,26 +4745,6 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss/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/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -4345,6 +4762,12 @@ "node": ">=10" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/tarn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", @@ -4543,6 +4966,13 @@ "rimraf": "bin.js" } }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -4607,15 +5037,6 @@ "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==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -4647,6 +5068,62 @@ "node": ">= 0.10" } }, + "node_modules/vite": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -4741,6 +5218,26 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -4754,6 +5251,19 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -4811,9 +5321,10 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "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/yaml": { @@ -4887,7 +5398,7 @@ "zustand": "^4.5.4" }, "devDependencies": { - "@biomejs/biome": "^1.3.3", + "@biomejs/biome": "1.8.3", "@types/bcrypt": "^5.0.2", "@types/node": "^20.14.10", "ts-node-dev": "^2.0.0", diff --git a/package.json b/package.json index 0846786..ba31cc8 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,30 @@ { "name": "linx", - "workspaces": ["client/", "shared/", "server/"] -} \ No newline at end of file + "workspaces": [ + "client/", + "shared/", + "server/" + ], + "scripts": { + "client:start": "cd client && vite preview", + "server:start": "cd server && node dist/src/index.js", + "build": "npm run build --ws", + "client:build": "npm run build -w @linx/client", + "server:build": "npm run build -w @linx/server", + "client:dev": "npm run dev -w @linx/client", + "server:dev": "npm run dev -w @linx/server", + "lint": "npm run lint --ws", + "format": "npm run format --ws", + "format:unsafe": "npm run format:unsafe --ws", + "client:lint": "npm run lint -w @linx/client", + "client:format": "npm run format -w @linx/client", + "client:format:unsafe": "npm run format:unsafe -w @linx/client", + "server:lint": "npm run lint -w @linx/server", + "server:format": "npm run format -w @linx/server", + "server:format:unsafe": "npm run format:unsafe -w @linx/server", + "server:migrations:up": "npm run migrations:up -w @linx/server" + }, + "devDependencies": { + "@biomejs/biome": "1.8.3" + } +} diff --git a/server/package.json b/server/package.json index 53a2ad2..8158148 100644 --- a/server/package.json +++ b/server/package.json @@ -11,16 +11,14 @@ "migrations:up": "knex migrate:latest", "migrations:down": "knex migrate:down", "lint": "biome format ./src && biome check ./src", - "format": "biome format --write ./src && biome check --apply ./src", - "format:unsafe": "biome format --write ./src && biome check --apply-unsafe ./src" + "format": "biome format --write ./src && biome check --write ./src", + "format:unsafe": "biome format --write ./src && biome check --write --unsafe ./src" }, "repository": { "type": "git", "url": "git+ssh://git@github.com/Michael-Liendo/linx.git" }, - "keywords": [ - "server" - ], + "keywords": ["server"], "author": "Michael Liendo (https://michaelliendo.com/)", "license": "MIT", "bugs": { @@ -43,7 +41,6 @@ "zustand": "^4.5.4" }, "devDependencies": { - "@biomejs/biome": "^1.3.3", "@types/bcrypt": "^5.0.2", "@types/node": "^20.14.10", "ts-node-dev": "^2.0.0", diff --git a/server/src/controllers/Auth/login.ts b/server/src/controllers/Auth/login.ts index 2dfa6a2..6e1f8ec 100644 --- a/server/src/controllers/Auth/login.ts +++ b/server/src/controllers/Auth/login.ts @@ -1,4 +1,4 @@ -import { IUserForLogin } from '@linx/shared'; +import type { IUserForLogin } from '@linx/shared'; import validator from 'validator'; import { BadRequestError } from '../../utils/errorHandler'; diff --git a/server/src/controllers/Auth/register.ts b/server/src/controllers/Auth/register.ts index ffd6a4c..b926aff 100644 --- a/server/src/controllers/Auth/register.ts +++ b/server/src/controllers/Auth/register.ts @@ -1,7 +1,7 @@ import validator from 'validator'; import Services from '../../services'; -import { Reply, Request } from '../../types'; +import type { Reply, Request } from '../../types'; import { BadRequestError } from '../../utils/errorHandler'; import type { IUserForRegister } from '@linx/shared'; diff --git a/server/src/controllers/User/me.ts b/server/src/controllers/User/me.ts index bb920af..f85d6fc 100644 --- a/server/src/controllers/User/me.ts +++ b/server/src/controllers/User/me.ts @@ -1,7 +1,6 @@ -import { Reply, Request } from '../../types'; +import type { Reply, Request } from '../../types'; export default async function me(request: Request, reply: Reply) { - // biome-ignore lint/correctness/noUnusedVariables: const { password, ...user } = request.user; try { return reply.code(200).send({ message: 'Ok', data: { user } }); diff --git a/server/src/index.ts b/server/src/index.ts index 77c5a24..f95096f 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -34,13 +34,10 @@ database }); // Run the server! -fastify.listen( - { port: Number(process.env.PORT) || 3000 }, - function (err, address) { - if (err) { - console.error(err); - process.exit(1); - } - console.log(`[SERVER] Server is now listening on ${address}`); - }, -); +fastify.listen({ port: Number(process.env.PORT) || 3000 }, (err, address) => { + if (err) { + console.error(err); + process.exit(1); + } + console.log(`[SERVER] Server is now listening on ${address}`); +}); diff --git a/server/src/middlewares/checkJwt.ts b/server/src/middlewares/checkJwt.ts index 648136f..e7ea5d4 100644 --- a/server/src/middlewares/checkJwt.ts +++ b/server/src/middlewares/checkJwt.ts @@ -1,7 +1,7 @@ import type { DoneFuncWithErrOrRes, FastifyInstance } from 'fastify'; import fastifyPlugin from 'fastify-plugin'; import Services from '../services'; -import { Request } from '../types'; +import type { Request } from '../types'; import { UnauthorizedError } from '../utils/errorHandler'; import { Jwt } from '../utils/jwt'; diff --git a/server/src/repository/User.ts b/server/src/repository/User.ts index 95ed517..fbaa1fe 100644 --- a/server/src/repository/User.ts +++ b/server/src/repository/User.ts @@ -1,4 +1,4 @@ -import { IUser, IUserForRegister } from '@linx/shared'; +import type { IUser, IUserForRegister } from '@linx/shared'; import database from './database'; export class User { diff --git a/server/src/services/Auth.ts b/server/src/services/Auth.ts index 9f75e57..7926ecd 100644 --- a/server/src/services/Auth.ts +++ b/server/src/services/Auth.ts @@ -45,7 +45,7 @@ export default class Auth { const id = await Repository.user.createUser(registeredUser); - const token = await this.login({ + const token = await Auth.login({ email: data.email, password: data.password, }); diff --git a/server/src/services/User.ts b/server/src/services/User.ts index 981afe5..2ad40e3 100644 --- a/server/src/services/User.ts +++ b/server/src/services/User.ts @@ -1,4 +1,4 @@ -import { IUser } from '@linx/shared'; +import type { IUser } from '@linx/shared'; import Repository from '../repository'; export default class User { diff --git a/server/src/types/Reply.ts b/server/src/types/Reply.ts index b124538..9735821 100644 --- a/server/src/types/Reply.ts +++ b/server/src/types/Reply.ts @@ -1,4 +1,4 @@ -import type { IncomingMessage, ServerResponse } from 'http'; +import type { IncomingMessage, ServerResponse } from 'node:http'; import type { IReply } from '@linx/shared'; import type { FastifyReply, diff --git a/server/src/types/Request.ts b/server/src/types/Request.ts index 0f22643..9263685 100644 --- a/server/src/types/Request.ts +++ b/server/src/types/Request.ts @@ -1,4 +1,4 @@ -import { IUser } from '@linx/shared'; +import type { IUser } from '@linx/shared'; import type { FastifyRequest } from 'fastify'; export interface Request extends FastifyRequest { diff --git a/server/src/utils/errorHandler.ts b/server/src/utils/errorHandler.ts index 278619d..574669f 100644 --- a/server/src/utils/errorHandler.ts +++ b/server/src/utils/errorHandler.ts @@ -1,7 +1,10 @@ import { StatusCodes } from 'http-status-codes'; export abstract class ErrorWithDetails extends Error { - constructor(message?: string, public details?: unknown) { + constructor( + message?: string, + public details?: unknown, + ) { super(message); } abstract statusCode: StatusCodes; diff --git a/server/src/utils/jwt.ts b/server/src/utils/jwt.ts index b97c73f..67e418b 100644 --- a/server/src/utils/jwt.ts +++ b/server/src/utils/jwt.ts @@ -1,4 +1,4 @@ -import jwt, { JwtPayload } from 'jsonwebtoken'; +import jwt, { type JwtPayload } from 'jsonwebtoken'; import { UnauthorizedError } from './errorHandler'; export class Jwt { diff --git a/shared/biome.json b/shared/biome.json new file mode 100644 index 0000000..988ea57 --- /dev/null +++ b/shared/biome.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", +"organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "correctness": { "noUnusedVariables": "warn" }, + "complexity": { "noStaticOnlyClass": "off" } + } + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "javascript": { + "formatter": { + "quoteStyle": "single" + } + } +} \ No newline at end of file diff --git a/shared/package.json b/shared/package.json index 8085701..e8cb743 100644 --- a/shared/package.json +++ b/shared/package.json @@ -3,5 +3,11 @@ "version": "0.0.1", "main": "src/index.ts", "author": "Michael Liendo", - "license": "MIT" + "license": "MIT", + "scripts": { + "build": "tsc", + "lint": "biome format ./src && biome check ./src", + "format": "biome format --write ./src && biome check --write ./src", + "format:unsafe": "biome format --write ./src && biome check --write --unsafe ./src" + } } diff --git a/shared/src/index.ts b/shared/src/index.ts index 1916b35..9578609 100644 --- a/shared/src/index.ts +++ b/shared/src/index.ts @@ -1 +1 @@ -export * from './interfaces' \ No newline at end of file +export * from './interfaces'; diff --git a/shared/src/interfaces/User.ts b/shared/src/interfaces/User.ts index 4ce441b..cb83315 100644 --- a/shared/src/interfaces/User.ts +++ b/shared/src/interfaces/User.ts @@ -23,4 +23,4 @@ export interface IUser { password?: string; createdAt: Date; updatedAt: Date; -} \ No newline at end of file +} diff --git a/shared/src/interfaces/index.ts b/shared/src/interfaces/index.ts index 07952c7..7d4ca01 100644 --- a/shared/src/interfaces/index.ts +++ b/shared/src/interfaces/index.ts @@ -1,2 +1,2 @@ -export * from './User' -export * from './Server' \ No newline at end of file +export * from './User'; +export * from './Server'; diff --git a/shared/tsconfig.json b/shared/tsconfig.json index 0f02b4b..54998b2 100644 --- a/shared/tsconfig.json +++ b/shared/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { + "target": "ES2020", "declaration": true, - "module": "commonjs", + "module": "CommonJS", + "moduleResolution": "node", + "esModuleInterop": true, + "outDir": "./dist" }, "include": [ "src/**/*.ts" From cbfee7aa659cf1ea65c62b879b6752ccdd67fd64 Mon Sep 17 00:00:00 2001 From: Dariana Date: Thu, 18 Jul 2024 18:45:02 -0500 Subject: [PATCH 2/5] Add new components into Home (#14) * Add function Navbar * Add new components into Home - Imported all new components in home.tsx file - Add isotype and logotype in the navbar e Layout-Home - New component of Button Outline - Each function was placed in the components folder - Two images were added referring to the visual identity of the Linx project (Isotype and Logo) - The width size of the two previous images was changed to ensure good accessibility, behavior and coherence * chore: format code --- client/public/isotypeLinx.png | Bin 0 -> 57289 bytes client/public/logotypeLinx.png | Bin 0 -> 63158 bytes client/src/components/Button-Outline.tsx | 29 ++++++++++++++++++++++ client/src/components/Layout-Home.tsx | 27 ++++++++++++++++++++ client/src/components/Navbar.tsx | 30 +++++++++++++++++++++++ client/src/pages/home.tsx | 5 +++- 6 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 client/public/isotypeLinx.png create mode 100644 client/public/logotypeLinx.png create mode 100644 client/src/components/Button-Outline.tsx create mode 100644 client/src/components/Layout-Home.tsx create mode 100644 client/src/components/Navbar.tsx diff --git a/client/public/isotypeLinx.png b/client/public/isotypeLinx.png new file mode 100644 index 0000000000000000000000000000000000000000..13662275a2c1ccfdf417c1f97e3cb8d01861fcca GIT binary patch literal 57289 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 L8aE2BSq1+O4)Sx6 literal 0 HcmV?d00001 diff --git a/client/public/logotypeLinx.png b/client/public/logotypeLinx.png new file mode 100644 index 0000000000000000000000000000000000000000..cba51a98f76948864da23ca8ee276a3bfc818f88 GIT binary patch literal 63158 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 cl<>*9(>%j#-GA(O7hFvHB2RgOUY5)KL literal 0 HcmV?d00001 diff --git a/client/src/components/Button-Outline.tsx b/client/src/components/Button-Outline.tsx new file mode 100644 index 0000000..0dadbd5 --- /dev/null +++ b/client/src/components/Button-Outline.tsx @@ -0,0 +1,29 @@ +import cn from 'classnames'; +import type { ReactNode } from 'react'; + +export default function Button({ + children, + type = 'button', + className, + onClick, +}: ButtonProps) { + return ( + + ); +} + +interface ButtonProps { + children: ReactNode; + type?: 'submit' | 'button'; + className?: string; + onClick?: () => void; +} diff --git a/client/src/components/Layout-Home.tsx b/client/src/components/Layout-Home.tsx new file mode 100644 index 0000000..7d5b430 --- /dev/null +++ b/client/src/components/Layout-Home.tsx @@ -0,0 +1,27 @@ +import ButtonOutline from './Button-Outline'; + +export default function Layout() { + return ( +
+
+
+ Isotype Linx +
+
+

Linx

+

+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. Repellat + error corrupti vitae incidunt totam blanditiis, voluptatem ratione + eius consequuntur qui. Quae laborum quasi assumenda ea autem beatae, + sed corrupti atque! +

+ Button +
+
+
+ ); +} diff --git a/client/src/components/Navbar.tsx b/client/src/components/Navbar.tsx new file mode 100644 index 0000000..9320a94 --- /dev/null +++ b/client/src/components/Navbar.tsx @@ -0,0 +1,30 @@ +export default function Navbar() { + return ( + <> + + + ); +} diff --git a/client/src/pages/home.tsx b/client/src/pages/home.tsx index 4a56aed..1eb39e1 100644 --- a/client/src/pages/home.tsx +++ b/client/src/pages/home.tsx @@ -1,7 +1,10 @@ +import Layout from '../components/Layout-Home'; +import Navbar from '../components/Navbar'; export default function Home() { return ( <> -

Home

+ + ); } From ef1b34294de651cef0cf3ee97462b710d0a836b3 Mon Sep 17 00:00:00 2001 From: Michael Liendo Date: Fri, 19 Jul 2024 13:12:02 -0400 Subject: [PATCH 3/5] fix: error handler (#15) * chore: reorder imports * chore: add a error handle * chore: format code * chore: add logger --- server/src/controllers/Auth/login.ts | 26 ++++++++++--------------- server/src/controllers/Auth/register.ts | 25 +++++++++--------------- server/src/controllers/User/me.ts | 9 +-------- server/src/middlewares/checkJwt.ts | 6 ++++-- server/src/routes/index.ts | 17 +++++++++++++++- server/src/routes/user/index.ts | 5 +++-- server/src/utils/errorHandler.ts | 8 ++++++-- 7 files changed, 49 insertions(+), 47 deletions(-) diff --git a/server/src/controllers/Auth/login.ts b/server/src/controllers/Auth/login.ts index 6e1f8ec..5497071 100644 --- a/server/src/controllers/Auth/login.ts +++ b/server/src/controllers/Auth/login.ts @@ -1,9 +1,10 @@ -import type { IUserForLogin } from '@linx/shared'; import validator from 'validator'; + +import Services from '../../services'; import { BadRequestError } from '../../utils/errorHandler'; +import type { IUserForLogin } from '@linx/shared'; import type { FastifyRequest } from 'fastify'; -import Services from '../../services'; import type { Reply } from '../../types'; export default async function login(request: FastifyRequest, reply: Reply) { @@ -17,19 +18,12 @@ export default async function login(request: FastifyRequest, reply: Reply) { throw new BadRequestError('Please provide a valid email address'); } - try { - const user = await Services.auth.login({ - email, - password, - }); + const user = await Services.auth.login({ + email, + password, + }); - return reply - .code(201) - .send({ message: 'User created', data: { token: user } }); - } catch (error) { - return reply.code(error).send({ - message: 'Internal server error', - error: error.message as string, - }); - } + return reply + .code(201) + .send({ message: 'User created', data: { token: user } }); } diff --git a/server/src/controllers/Auth/register.ts b/server/src/controllers/Auth/register.ts index b926aff..05e7a97 100644 --- a/server/src/controllers/Auth/register.ts +++ b/server/src/controllers/Auth/register.ts @@ -1,10 +1,10 @@ import validator from 'validator'; import Services from '../../services'; -import type { Reply, Request } from '../../types'; import { BadRequestError } from '../../utils/errorHandler'; import type { IUserForRegister } from '@linx/shared'; +import type { Reply, Request } from '../../types'; export default async function register(request: Request, reply: Reply) { const { first_name, last_name, email, password } = @@ -22,19 +22,12 @@ export default async function register(request: Request, reply: Reply) { throw new BadRequestError('Password must be at least 4 characters long'); } - try { - const user = await Services.auth.register({ - first_name, - last_name, - email, - password, - }); - - return reply.code(201).send({ message: 'User created', data: { ...user } }); - } catch (error) { - return reply.code(500).send({ - message: 'Internal server error', - error: error.message as string, - }); - } + const user = await Services.auth.register({ + first_name, + last_name, + email, + password, + }); + + return reply.code(201).send({ message: 'User created', data: { ...user } }); } diff --git a/server/src/controllers/User/me.ts b/server/src/controllers/User/me.ts index f85d6fc..2c74410 100644 --- a/server/src/controllers/User/me.ts +++ b/server/src/controllers/User/me.ts @@ -2,12 +2,5 @@ import type { Reply, Request } from '../../types'; export default async function me(request: Request, reply: Reply) { const { password, ...user } = request.user; - try { - return reply.code(200).send({ message: 'Ok', data: { user } }); - } catch (error) { - return reply.code(500).send({ - message: 'Internal server error', - error: error.message as string, - }); - } + return reply.code(200).send({ message: 'Ok', data: { user } }); } diff --git a/server/src/middlewares/checkJwt.ts b/server/src/middlewares/checkJwt.ts index e7ea5d4..f84b9e9 100644 --- a/server/src/middlewares/checkJwt.ts +++ b/server/src/middlewares/checkJwt.ts @@ -1,10 +1,12 @@ -import type { DoneFuncWithErrOrRes, FastifyInstance } from 'fastify'; import fastifyPlugin from 'fastify-plugin'; + import Services from '../services'; -import type { Request } from '../types'; import { UnauthorizedError } from '../utils/errorHandler'; import { Jwt } from '../utils/jwt'; +import type { DoneFuncWithErrOrRes, FastifyInstance } from 'fastify'; +import type { Request } from '../types'; + function getUser(fastify: FastifyInstance, _, done: DoneFuncWithErrOrRes) { fastify.decorateRequest('user', null); diff --git a/server/src/routes/index.ts b/server/src/routes/index.ts index 3e433f4..161ba13 100644 --- a/server/src/routes/index.ts +++ b/server/src/routes/index.ts @@ -1,17 +1,32 @@ import auth from './auth'; +import user from './user'; import type { DoneFuncWithErrOrRes, FastifyInstance, RegisterOptions, } from 'fastify'; -import user from './user'; +import type { ErrorWithDetails } from '../utils/errorHandler'; export default function routes( fastify: FastifyInstance, _: RegisterOptions, done: DoneFuncWithErrOrRes, ) { + fastify.setErrorHandler((error: ErrorWithDetails, _, reply) => { + if (error.statusCode >= 500) { + fastify.log.error(error); + } else if (error.statusCode >= 400) { + fastify.log.info(error); + } + + return reply.code(error.statusCode || 500).send({ + error: error.name || 'INTERNAL_SERVER_ERROR', + message: error.message, + details: error.details, + }); + }); + fastify.get('/', async () => { return { hello: 'world' }; }); diff --git a/server/src/routes/user/index.ts b/server/src/routes/user/index.ts index a5ba810..1488366 100644 --- a/server/src/routes/user/index.ts +++ b/server/src/routes/user/index.ts @@ -1,11 +1,12 @@ +import me from '../../controllers/User/me'; +import checkJwt from '../../middlewares/checkJwt'; + import type { IReply } from '@linx/shared'; import type { DoneFuncWithErrOrRes, FastifyInstance, RegisterOptions, } from 'fastify'; -import me from '../../controllers/User/me'; -import checkJwt from '../../middlewares/checkJwt'; export default function user( fastify: FastifyInstance, diff --git a/server/src/utils/errorHandler.ts b/server/src/utils/errorHandler.ts index 574669f..4576223 100644 --- a/server/src/utils/errorHandler.ts +++ b/server/src/utils/errorHandler.ts @@ -7,22 +7,26 @@ export abstract class ErrorWithDetails extends Error { ) { super(message); } - abstract statusCode: StatusCodes; + abstract statusCode; } export class BadRequestError extends ErrorWithDetails { + name = 'BAD_REQUEST'; statusCode = StatusCodes.BAD_REQUEST; - details = 'You need add'; } export class ConflictError extends ErrorWithDetails { + name = 'CONFLICT'; statusCode = StatusCodes.CONFLICT; } export class ForbiddenError extends ErrorWithDetails { + name = 'FORBIDDEN'; statusCode = StatusCodes.FORBIDDEN; } export class NotFoundError extends ErrorWithDetails { + name = 'NOT_FOUND'; statusCode = StatusCodes.NOT_FOUND; } export class UnauthorizedError extends ErrorWithDetails { + name = 'UNAUTHORIZED'; statusCode = StatusCodes.UNAUTHORIZED; } From d856c3cae8eb61b2c5611eb271c8a319ee17ee45 Mon Sep 17 00:00:00 2001 From: Michael Liendo Date: Fri, 19 Jul 2024 13:32:08 -0400 Subject: [PATCH 4/5] fix: add to the state the correct user (#16) --- client/src/Routes.tsx | 13 +++++++++++-- client/src/pages/(app)/Home.tsx | 14 ++++++++++++++ client/src/services/User.ts | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 client/src/pages/(app)/Home.tsx diff --git a/client/src/Routes.tsx b/client/src/Routes.tsx index 074678f..a780cad 100644 --- a/client/src/Routes.tsx +++ b/client/src/Routes.tsx @@ -1,5 +1,6 @@ import { Routes as ReactRoutes, Route } from 'react-router'; import useAuth from './hooks/Auth'; +import HomeApp from './pages/(app)/Home'; import Login from './pages/(auth)/Login'; import Signup from './pages/(auth)/Signup'; import Home from './pages/home'; @@ -14,7 +15,9 @@ export enum AuthRoutesEnum { Welcome = '/welcome', } -export enum PrivateRoutesEnum {} +export enum PrivateRoutesEnum { + Home = '/home', +} export function Routes() { const { user } = useAuth(); @@ -28,7 +31,13 @@ export function Routes() { ); } -const PrivateRoutes: JSX.Element[] = []; +const PrivateRoutes: JSX.Element[] = [ + , +]; const AuthRoutes: JSX.Element[] = [ +

Home

+

+ {user?.first_name} {user?.last_name} {user?.email} +

+ + ); +} diff --git a/client/src/services/User.ts b/client/src/services/User.ts index 01a915d..b378176 100644 --- a/client/src/services/User.ts +++ b/client/src/services/User.ts @@ -8,7 +8,7 @@ export default class User { const response = await request.json(); - return response as IUser; + return response.data.user as IUser; } catch (error) { console.error('UserServices', error); throw error; From 135146362f675ddfbfbcf82a66f2e63073db664a Mon Sep 17 00:00:00 2001 From: Michael Liendo Date: Sat, 20 Jul 2024 11:30:53 -0400 Subject: [PATCH 5/5] chore: update migrations --- server/migrations/20240712151318_user.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/migrations/20240712151318_user.ts b/server/migrations/20240712151318_user.ts index 505194c..afb75c2 100644 --- a/server/migrations/20240712151318_user.ts +++ b/server/migrations/20240712151318_user.ts @@ -5,7 +5,7 @@ export async function up(knex: Knex): Promise { await knex.schema.createTable('users', (table) => { table .uuid('id') - .primary() + .unique() .defaultTo(knex.raw('uuid_generate_v4()')) .primary(); table.string('first_name').notNullable(); @@ -18,4 +18,4 @@ export async function up(knex: Knex): Promise { export async function down(knex: Knex): Promise { await knex.schema.dropTable('users'); -} \ No newline at end of file +}