From 360a9da55af0a38ce12c5b2edd06519acb3db2d5 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Tue, 12 Mar 2024 04:40:32 +0000 Subject: [PATCH] feat: initial commit --- .editorconfig | 13 + .eslintignore | 1 + .eslintrc.json | 42 + .github/workflows/ci.yml | 38 + .gitignore | 41 + .npmrc | 2 + .prettierignore | 10 + .prettierrc | 7 + .vscode/extensions.json | 3 + LICENSE | 21 + README.md | 91 + api/.eslintrc.json | 18 + api/Dockerfile | 24 + api/jest.config.ts | 11 + api/project.json | 78 + api/src/assets/favicon.ico | Bin 0 -> 168499 bytes api/src/assets/pubkey-icon.png | Bin 0 -> 15312 bytes api/src/assets/pubkey-icon.svg | 10 + api/src/assets/pubkey-logo-black.png | Bin 0 -> 56180 bytes api/src/assets/pubkey-logo-black.svg | 22 + api/src/assets/pubkey-logo-white.png | Bin 0 -> 59141 bytes api/src/assets/pubkey-logo-white.svg | 22 + api/src/lib/features/uptime.route.ts | 9 + api/src/lib/server-config.ts | 28 + api/src/lib/server-router.ts | 13 + api/src/lib/server.ts | 41 + api/src/main.ts | 9 + api/tsconfig.app.json | 10 + api/tsconfig.json | 16 + api/tsconfig.spec.json | 9 + jest.config.ts | 5 + jest.preset.js | 3 + nx.json | 34 + package.json | 92 + pnpm-lock.yaml | 13312 ++++++++++++++++ tsconfig.base.json | 20 + web/.babelrc | 11 + web/.eslintrc.json | 18 + web/jest.config.ts | 11 + web/postcss.config.cjs | 14 + web/project.json | 77 + web/proxy.conf.json | 6 + web/src/app/app-layout.tsx | 37 + web/src/app/app-routes.tsx | 55 + web/src/app/app.spec.ts | 5 + web/src/app/app.tsx | 23 + .../features/account/account-data-access.tsx | 426 + .../account/account-feature-detail.tsx | 46 + .../features/account/account-feature-list.tsx | 13 + .../features/account/account-ui-tokens.tsx | 100 + .../account/ui/account-ui-balance-check.tsx | 49 + .../account/ui/account-ui-balance.tsx | 15 + .../account/ui/account-ui-buttons.tsx | 120 + .../account/ui/account-ui-checker.tsx | 11 + .../account/ui/account-ui-form-send.tsx | 140 + .../account/ui/account-ui-keypair-checker.tsx | 10 + .../account/ui/account-ui-token-actions.tsx | 80 + .../account/ui/account-ui-token-table.tsx | 179 + .../account/ui/account-ui-transactions.tsx | 83 + .../app/features/account/ui/account-ui.tsx | 0 .../app/features/account/ui/balance-sol.tsx | 5 + web/src/app/features/account/ui/ellipsify.tsx | 6 + .../features/cluster/cluster-data-access.tsx | 106 + .../app/features/cluster/cluster-feature.tsx | 18 + web/src/app/features/cluster/cluster-ui.tsx | 168 + .../features/dashboard/dashboard-feature.tsx | 15 + .../app/features/solana/solana-provider.tsx | 39 + web/src/app/ui/app-logo-type-black.tsx | 55 + web/src/app/ui/app-logo-type-white.tsx | 84 + web/src/app/ui/app-logo-type.tsx | 9 + web/src/app/ui/app-logo.tsx | 36 + web/src/app/ui/index.ts | 4 + web/src/assets/.gitkeep | 0 web/src/favicon.ico | Bin 0 -> 168499 bytes web/src/index.html | 12 + web/src/main.tsx | 14 + web/src/styles.css | 9 + web/tsconfig.app.json | 19 + web/tsconfig.json | 20 + web/tsconfig.spec.json | 20 + web/webpack.config.js | 13 + 81 files changed, 16236 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 api/.eslintrc.json create mode 100644 api/Dockerfile create mode 100644 api/jest.config.ts create mode 100644 api/project.json create mode 100644 api/src/assets/favicon.ico create mode 100644 api/src/assets/pubkey-icon.png create mode 100644 api/src/assets/pubkey-icon.svg create mode 100644 api/src/assets/pubkey-logo-black.png create mode 100644 api/src/assets/pubkey-logo-black.svg create mode 100644 api/src/assets/pubkey-logo-white.png create mode 100644 api/src/assets/pubkey-logo-white.svg create mode 100644 api/src/lib/features/uptime.route.ts create mode 100644 api/src/lib/server-config.ts create mode 100644 api/src/lib/server-router.ts create mode 100644 api/src/lib/server.ts create mode 100644 api/src/main.ts create mode 100644 api/tsconfig.app.json create mode 100644 api/tsconfig.json create mode 100644 api/tsconfig.spec.json create mode 100644 jest.config.ts create mode 100644 jest.preset.js create mode 100644 nx.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 tsconfig.base.json create mode 100644 web/.babelrc create mode 100644 web/.eslintrc.json create mode 100644 web/jest.config.ts create mode 100644 web/postcss.config.cjs create mode 100644 web/project.json create mode 100644 web/proxy.conf.json create mode 100644 web/src/app/app-layout.tsx create mode 100644 web/src/app/app-routes.tsx create mode 100644 web/src/app/app.spec.ts create mode 100644 web/src/app/app.tsx create mode 100644 web/src/app/features/account/account-data-access.tsx create mode 100644 web/src/app/features/account/account-feature-detail.tsx create mode 100644 web/src/app/features/account/account-feature-list.tsx create mode 100644 web/src/app/features/account/account-ui-tokens.tsx create mode 100644 web/src/app/features/account/ui/account-ui-balance-check.tsx create mode 100644 web/src/app/features/account/ui/account-ui-balance.tsx create mode 100644 web/src/app/features/account/ui/account-ui-buttons.tsx create mode 100644 web/src/app/features/account/ui/account-ui-checker.tsx create mode 100644 web/src/app/features/account/ui/account-ui-form-send.tsx create mode 100644 web/src/app/features/account/ui/account-ui-keypair-checker.tsx create mode 100644 web/src/app/features/account/ui/account-ui-token-actions.tsx create mode 100644 web/src/app/features/account/ui/account-ui-token-table.tsx create mode 100644 web/src/app/features/account/ui/account-ui-transactions.tsx create mode 100644 web/src/app/features/account/ui/account-ui.tsx create mode 100644 web/src/app/features/account/ui/balance-sol.tsx create mode 100644 web/src/app/features/account/ui/ellipsify.tsx create mode 100644 web/src/app/features/cluster/cluster-data-access.tsx create mode 100644 web/src/app/features/cluster/cluster-feature.tsx create mode 100644 web/src/app/features/cluster/cluster-ui.tsx create mode 100644 web/src/app/features/dashboard/dashboard-feature.tsx create mode 100644 web/src/app/features/solana/solana-provider.tsx create mode 100644 web/src/app/ui/app-logo-type-black.tsx create mode 100644 web/src/app/ui/app-logo-type-white.tsx create mode 100644 web/src/app/ui/app-logo-type.tsx create mode 100644 web/src/app/ui/app-logo.tsx create mode 100644 web/src/app/ui/index.ts create mode 100644 web/src/assets/.gitkeep create mode 100644 web/src/favicon.ico create mode 100644 web/src/index.html create mode 100644 web/src/main.tsx create mode 100644 web/src/styles.css create mode 100644 web/tsconfig.app.json create mode 100644 web/tsconfig.json create mode 100644 web/tsconfig.spec.json create mode 100644 web/webpack.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e87a00 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +node_modules diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..0be733b --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,42 @@ +{ + "root": true, + "ignorePatterns": ["**/*"], + "plugins": ["@nx"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": { + "@nx/enforce-module-boundaries": [ + "error", + { + "enforceBuildableLibDependency": true, + "allow": [], + "depConstraints": [ + { + "sourceTag": "*", + "onlyDependOnLibsWithTags": ["*"] + } + ] + } + ] + } + }, + { + "files": ["*.ts", "*.tsx"], + "extends": ["plugin:@nx/typescript"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "extends": ["plugin:@nx/javascript"], + "rules": {} + }, + { + "files": ["*.spec.ts", "*.spec.tsx", "*.spec.js", "*.spec.jsx"], + "env": { + "jest": true + }, + "rules": {} + } + ] +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ce67997 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,38 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + actions: read + contents: read + +jobs: + main: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # Connect your workspace on nx.app and uncomment this to enable task distribution. + # The "--stop-agents-after" is optional, but allows idle agents to shut down once the "build" targets have been requested + # - run: pnpm exec nx-cloud start-ci-run --distribute-on="5 linux-medium-js" --stop-agents-after="build" + + + - uses: pnpm/action-setup@v2 + with: + version: 8 + # Cache node_modules + - uses: actions/setup-node@v3 + with: + node-version: 20 + cache: 'pnpm' + - run: pnpm install --frozen-lockfile + - uses: nrwl/nx-set-shas@v4 + + - run: pnpm exec nx-cloud record -- nx format:check + - run: pnpm exec nx affected -t lint test build diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..98a6e38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +dist +tmp +/out-tsc + +# dependencies +node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db + +.nx/cache \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..19be10e --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +strict-peer-dependencies=false +auto-install-peers=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..90b6f8a --- /dev/null +++ b/.prettierignore @@ -0,0 +1,10 @@ +# Add files here to ignore them from prettier formatting + +/dist +/coverage +tmp +/.yarn +/.nx/cache +pnpm-lock.yaml +.angular/cache + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..f8fb56b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "singleQuote": true, + "printWidth": 120, + "semi": false, + "trailingComma": "all", + "arrowParens": "always" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0d71aba --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["nrwl.angular-console", "esbenp.prettier-vscode", "firsttris.vscode-jest-runner"] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b54590b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Bram Borggreve https://github.com/beeman + +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/README.md b/README.md new file mode 100644 index 0000000..14da189 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# TokenGator Starter + +Starter for a TokenGator project. + +## Getting Started + +### Prerequisites + +- [Node.js](https://nodejs.org/en/) (v20 or higher) +- [PNPM](https://pnpm.io/) (v8 or higher) +- [Git](https://git-scm.com/) + +> [!TIP] +> If you don't have PNPM installed, you can install it using `corepack`: +> +> ```sh +> corepack enable +> corepack prepare pnpm@8 --activate +> ``` + +### Installation + +1. Clone the repository: + +```sh +git clone https://github.com/pubkeyapp/tokengator-starter my-app +cd my-app +pnpm install +``` + +### Development + +Start the API app: + +```shell +pnpm dev:api +``` + +Start the web app: + +```sh +pnpm dev:web +``` + +### Build + +Build the API app: + +```sh +pnpm build:api +``` + +Build the web app: + +```sh +pnpm build:wev +``` + +### Lint + +```sh + +pnpm lint +``` + +### Test + +```sh +pnpm test +``` + +## Add Anchor + +This project is compatible with the generators from [create-solana-dapp](https://npm.im/create-solana-dapp). + +You can use it to generate an Anchor application: + +```shell +pnpm add -D @solana-developers/preset-anchor +pnpm nx generate @solana-developers/preset-anchor:application anchor --dry-run +``` + +With this base set up, you can now add Anchor programs and tests to your project. + +```shell +pnpm nx generate @solana-developers/preset-anchor:template --projectName anchor --directory anchor --template counter counter --dry-run +``` + +## License + +MIT diff --git a/api/.eslintrc.json b/api/.eslintrc.json new file mode 100644 index 0000000..1ad7cf0 --- /dev/null +++ b/api/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/api/Dockerfile b/api/Dockerfile new file mode 100644 index 0000000..175f958 --- /dev/null +++ b/api/Dockerfile @@ -0,0 +1,24 @@ +# This file is generated by Nx. +# +# Build the docker image with `npx nx docker-build api`. +# Tip: Modify "docker-build" options in project.json to change docker build args. +# +# Run the container with `docker run -p 3000:3000 -t api`. +FROM docker.io/node:lts-alpine + +ENV HOST=0.0.0.0 +ENV PORT=3000 + +WORKDIR /app + +RUN addgroup --system api && \ + adduser --system -G api api + +COPY dist/api api +RUN chown -R api:api . + +# You can remove this install step if you build with `--bundle` option. +# The bundled output will include external dependencies. +RUN npm --prefix api --omit=dev -f install + +CMD [ "node", "api" ] diff --git a/api/jest.config.ts b/api/jest.config.ts new file mode 100644 index 0000000..e89dcd7 --- /dev/null +++ b/api/jest.config.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +export default { + displayName: 'api', + preset: '../jest.preset.js', + testEnvironment: 'node', + transform: { + '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], + }, + moduleFileExtensions: ['ts', 'js', 'html'], + coverageDirectory: '../coverage/api', +} diff --git a/api/project.json b/api/project.json new file mode 100644 index 0000000..7fbb561 --- /dev/null +++ b/api/project.json @@ -0,0 +1,78 @@ +{ + "name": "api", + "$schema": "../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "api/src", + "projectType": "application", + "targets": { + "build": { + "executor": "@nx/esbuild:esbuild", + "outputs": ["{options.outputPath}"], + "defaultConfiguration": "production", + "options": { + "platform": "node", + "outputPath": "dist/api", + "format": ["esm"], + "bundle": true, + "main": "api/src/main.ts", + "tsConfig": "api/tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "api/src/assets", + "output": "assets", + "ignore": [".gitkeep"] + } + ], + "generatePackageJson": true, + "esbuildOptions": { + "sourcemap": true, + "outExtension": { + ".js": ".js" + } + } + }, + "configurations": { + "development": {}, + "production": { + "generateLockfile": true, + "esbuildOptions": { + "sourcemap": false, + "outExtension": { + ".js": ".js" + } + } + } + } + }, + "serve": { + "executor": "@nx/js:node", + "defaultConfiguration": "development", + "options": { + "buildTarget": "api:build" + }, + "configurations": { + "development": { + "buildTarget": "api:build:development" + }, + "production": { + "buildTarget": "api:build:production" + } + } + }, + "lint": { + "executor": "@nx/eslint:lint" + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "api/jest.config.ts" + } + }, + "docker-build": { + "dependsOn": ["build"], + "command": "docker build -f api/Dockerfile . -t api" + } + }, + "tags": [] +} diff --git a/api/src/assets/favicon.ico b/api/src/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..54e5c972c7c6cfa035eb9146594fa911b3dae28b GIT binary patch literal 168499 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 literal 0 HcmV?d00001 diff --git a/api/src/assets/pubkey-icon.png b/api/src/assets/pubkey-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..778e9c64474512db38e9e4a67512901afe11dda8 GIT binary patch literal 15312 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 F{|D7x9}fTk literal 0 HcmV?d00001 diff --git a/api/src/assets/pubkey-icon.svg b/api/src/assets/pubkey-icon.svg new file mode 100644 index 0000000..4237857 --- /dev/null +++ b/api/src/assets/pubkey-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/api/src/assets/pubkey-logo-black.png b/api/src/assets/pubkey-logo-black.png new file mode 100644 index 0000000000000000000000000000000000000000..da78d497f001335ec524c3c0f7569235a47e3f2f GIT binary patch literal 56180 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 SeGdZu)KxB?D^#+)_5T21L6)Nc literal 0 HcmV?d00001 diff --git a/api/src/assets/pubkey-logo-black.svg b/api/src/assets/pubkey-logo-black.svg new file mode 100644 index 0000000..d75b8d2 --- /dev/null +++ b/api/src/assets/pubkey-logo-black.svg @@ -0,0 +1,22 @@ + + + logo + + diff --git a/api/src/assets/pubkey-logo-white.png b/api/src/assets/pubkey-logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..110627e3b8b0e5e5dea2b373f2ac75482d171d04 GIT binary patch literal 59141 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 bEgDlQU)<2eYkV04`1eFa>QT0k*316` + + logo-white-txt + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/src/lib/features/uptime.route.ts b/api/src/lib/features/uptime.route.ts new file mode 100644 index 0000000..7eaff96 --- /dev/null +++ b/api/src/lib/features/uptime.route.ts @@ -0,0 +1,9 @@ +import { Request, Response } from 'express' + +export function uptimeRoute() { + return async (req: Request, res: Response) => { + const result = { uptime: process.uptime() } + + return res.json(result) + } +} diff --git a/api/src/lib/server-config.ts b/api/src/lib/server-config.ts new file mode 100644 index 0000000..c069824 --- /dev/null +++ b/api/src/lib/server-config.ts @@ -0,0 +1,28 @@ +export interface ServerConfig { + apiUrl: string + host: string + port: string +} + +export function getServerConfig(): ServerConfig { + const requiredEnvVars = [ + // Place any required environment variables here + ] + const missingEnvVars = requiredEnvVars.filter((envVar) => !process.env[envVar]?.length) + + if (missingEnvVars.length > 0) { + console.error(`Missing environment variables: ${missingEnvVars.join(', ')}`) + process.exit(1) + } + + const host = process.env.HOST || '0.0.0.0' + const port = process.env.PORT || '3000' + + const apiUrl = process.env.API_URL || `http://${host}:${port}` + + return { + apiUrl, + host, + port, + } +} diff --git a/api/src/lib/server-router.ts b/api/src/lib/server-router.ts new file mode 100644 index 0000000..8b2c05f --- /dev/null +++ b/api/src/lib/server-router.ts @@ -0,0 +1,13 @@ +import express, { Request, Response } from 'express' + +import { uptimeRoute } from './features/uptime.route' + +export function serverRouter(): express.Router { + const router = express.Router() + + router.use('/uptime', uptimeRoute()) + router.use('/', (req: Request, res: Response) => res.send('TokenGator API')) + router.use('*', (req: Request, res: Response) => res.status(404).send('Not Found')) + + return router +} diff --git a/api/src/lib/server.ts b/api/src/lib/server.ts new file mode 100644 index 0000000..99881ec --- /dev/null +++ b/api/src/lib/server.ts @@ -0,0 +1,41 @@ +import express from 'express' +import { existsSync } from 'node:fs' +import { dirname, join } from 'node:path' +import favicon from 'serve-favicon' +import { ServerConfig } from './server-config' +import { serverRouter } from './server-router' + +const dir = dirname(import.meta.url).replace('file://', '') + +export async function server(config: ServerConfig) { + // Set up Express server + const app = express() + // Set up favicon + app.use(favicon(join(dir, 'assets', 'favicon.ico'))) + // Parse JSON + app.use(express.json()) + // Set base path to /api + app.use('/api', serverRouter()) + // Serve static files + const staticPath = setupAssets(app, dir) + + // Start server + app.listen(Number(config.port), config.host).on('listening', async () => { + console.log(`🅿️ Listening on ${config.apiUrl}`) + console.log(`📁 Serving static files from ${staticPath}`) + }) +} + +function setupAssets(app: express.Express, dir: string) { + // Serve static files + const staticPath = join(dir, 'assets') + + // Make sure this path exists + if (!existsSync(staticPath)) { + console.error(`❌ Static path ${staticPath} does not exist`) + process.exit(1) + } + app.use('/assets', express.static(staticPath)) + + return staticPath +} diff --git a/api/src/main.ts b/api/src/main.ts new file mode 100644 index 0000000..765ec4e --- /dev/null +++ b/api/src/main.ts @@ -0,0 +1,9 @@ +import * as dotenv from 'dotenv' +import { server } from './lib/server' +import { getServerConfig, ServerConfig } from './lib/server-config' + +dotenv.config() + +const config: ServerConfig = getServerConfig() + +server(config).catch((e) => console.error(`An error occurred:`, e)) diff --git a/api/tsconfig.app.json b/api/tsconfig.app.json new file mode 100644 index 0000000..ea1e2c8 --- /dev/null +++ b/api/tsconfig.app.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../dist/out-tsc", + "module": "es2020", + "types": ["node"] + }, + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], + "include": ["src/**/*.ts"] +} diff --git a/api/tsconfig.json b/api/tsconfig.json new file mode 100644 index 0000000..3773c25 --- /dev/null +++ b/api/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "esModuleInterop": true + } +} diff --git a/api/tsconfig.spec.json b/api/tsconfig.spec.json new file mode 100644 index 0000000..d7c1c98 --- /dev/null +++ b/api/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 0000000..a2fe804 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,5 @@ +import { getJestProjectsAsync } from '@nx/jest' + +export default async () => ({ + projects: await getJestProjectsAsync(), +}) diff --git a/jest.preset.js b/jest.preset.js new file mode 100644 index 0000000..8cd53f8 --- /dev/null +++ b/jest.preset.js @@ -0,0 +1,3 @@ +const nxPreset = require('@nx/jest/preset').default + +module.exports = { ...nxPreset } diff --git a/nx.json b/nx.json new file mode 100644 index 0000000..c0751d7 --- /dev/null +++ b/nx.json @@ -0,0 +1,34 @@ +{ + "$schema": "./node_modules/nx/schemas/nx-schema.json", + "namedInputs": { + "default": ["{projectRoot}/**/*", "sharedGlobals"], + "production": ["default"], + "sharedGlobals": [] + }, + "useInferencePlugins": false, + "nxCloudAccessToken": "NDc2MzhmYWMtMjgxNC00NzJiLWI3ZjQtZjliYmQwMDIzZGNifHJlYWQtd3JpdGU=", + "generators": { + "@nx/react": { + "application": { + "babel": true, + "style": "css", + "linter": "eslint", + "bundler": "webpack" + }, + "component": { + "style": "css" + }, + "library": { + "style": "css", + "linter": "eslint" + } + } + }, + "targetDefaults": { + "@nx/esbuild:esbuild": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4738aa3 --- /dev/null +++ b/package.json @@ -0,0 +1,92 @@ +{ + "name": "@tokengator-starter/source", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "build:api": "nx run api:build", + "build:web": "nx run web:build", + "dev:api": "nx run api:serve", + "dev:web": "nx run web:serve", + "lint": "nx run-many --target=lint --all", + "test": "nx run-many --target=test --all" + }, + "private": true, + "devDependencies": { + "@babel/core": "^7.14.5", + "@babel/preset-react": "^7.14.5", + "@nx/esbuild": "18.1.0-beta.5", + "@nx/eslint": "18.1.0-beta.5", + "@nx/eslint-plugin": "18.1.0-beta.5", + "@nx/jest": "18.1.0-beta.5", + "@nx/js": "18.1.0-beta.5", + "@nx/node": "18.1.0-beta.5", + "@nx/react": "18.1.0-beta.5", + "@nx/web": "18.1.0-beta.5", + "@nx/webpack": "18.1.0-beta.5", + "@nx/workspace": "18.1.0-beta.5", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7", + "@svgr/webpack": "^8.0.1", + "@swc-node/register": "~1.8.0", + "@swc/cli": "~0.1.62", + "@swc/core": "~1.3.85", + "@swc/helpers": "~0.5.2", + "@testing-library/react": "14.0.0", + "@types/express": "~4.17.13", + "@types/jest": "^29.4.0", + "@types/node": "18.16.9", + "@types/react": "18.2.33", + "@types/react-dom": "18.2.14", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", + "babel-jest": "^29.4.1", + "esbuild": "^0.19.2", + "eslint": "~8.48.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-jsx-a11y": "6.7.1", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", + "jest": "^29.4.1", + "jest-environment-jsdom": "^29.4.1", + "jest-environment-node": "^29.4.1", + "nx": "18.1.0-beta.5", + "postcss": "^8.4.35", + "postcss-preset-mantine": "^1.13.0", + "postcss-simple-vars": "^7.0.1", + "prettier": "^2.6.2", + "react-refresh": "^0.10.0", + "ts-jest": "^29.1.0", + "ts-node": "10.9.1", + "typescript": "~5.3.2", + "url-loader": "^4.1.1", + "webpack-cli": "^5.1.4" + }, + "dependencies": { + "@coral-xyz/anchor": "^0.29.0", + "@mantine/core": "^7.6.1", + "@mantine/dates": "^7.6.1", + "@mantine/form": "^7.6.1", + "@mantine/hooks": "^7.6.1", + "@mantine/modals": "^7.6.1", + "@mantine/notifications": "^7.6.1", + "@pubkey-ui/core": "^1.6.0", + "@pubkeyapp/wallet-adapter-mantine-ui": "^2.3.0", + "@solana/spl-token": "^0.4.1", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-adapter-react": "^0.15.35", + "@solana/web3.js": "^1.91.0", + "@tabler/icons-react": "^2.47.0", + "@tanstack/react-query": "^5.25.0", + "clsx": "^2.1.0", + "dayjs": "^1.11.10", + "dotenv": "^16.4.5", + "express": "~4.18.1", + "jotai": "^2.7.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-router-dom": "6.11.2", + "serve-favicon": "^2.5.0", + "timeago-react": "^3.0.6", + "tslib": "^2.3.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..7951906 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,13312 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@coral-xyz/anchor': + specifier: ^0.29.0 + version: 0.29.0 + '@mantine/core': + specifier: ^7.6.1 + version: 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@mantine/dates': + specifier: ^7.6.1 + version: 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + '@mantine/form': + specifier: ^7.6.1 + version: 7.6.1(react@18.2.0) + '@mantine/hooks': + specifier: ^7.6.1 + version: 7.6.1(react@18.2.0) + '@mantine/modals': + specifier: ^7.6.1 + version: 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0) + '@mantine/notifications': + specifier: ^7.6.1 + version: 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0) + '@pubkey-ui/core': + specifier: ^1.6.0 + version: 1.6.0(@types/react@18.2.33)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + '@pubkeyapp/wallet-adapter-mantine-ui': + specifier: ^2.3.0 + version: 2.3.0(@mantine/core@7.6.1)(@solana/wallet-adapter-base@0.9.23)(@solana/wallet-adapter-react@0.15.35)(@tabler/icons-react@2.47.0)(react@18.2.0) + '@solana/spl-token': + specifier: ^0.4.1 + version: 0.4.1(@solana/web3.js@1.91.0)(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/wallet-adapter-base': + specifier: ^0.9.23 + version: 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-adapter-react': + specifier: ^0.15.35 + version: 0.15.35(@solana/web3.js@1.91.0)(bs58@4.0.1)(react-native@0.73.5)(react@18.2.0) + '@solana/web3.js': + specifier: ^1.91.0 + version: 1.91.0 + '@tabler/icons-react': + specifier: ^2.47.0 + version: 2.47.0(react@18.2.0) + '@tanstack/react-query': + specifier: ^5.25.0 + version: 5.25.0(react@18.2.0) + clsx: + specifier: ^2.1.0 + version: 2.1.0 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + express: + specifier: ~4.18.1 + version: 4.18.3 + jotai: + specifier: ^2.7.0 + version: 2.7.0(@types/react@18.2.33)(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + react-router-dom: + specifier: 6.11.2 + version: 6.11.2(react-dom@18.2.0)(react@18.2.0) + serve-favicon: + specifier: ^2.5.0 + version: 2.5.0 + timeago-react: + specifier: ^3.0.6 + version: 3.0.6(react@18.2.0) + tslib: + specifier: ^2.3.0 + version: 2.6.2 + +devDependencies: + '@babel/core': + specifier: ^7.14.5 + version: 7.24.0 + '@babel/preset-react': + specifier: ^7.14.5 + version: 7.23.3(@babel/core@7.24.0) + '@nx/esbuild': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/eslint': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5) + '@nx/eslint-plugin': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(@typescript-eslint/parser@6.21.0)(eslint-config-prettier@9.1.0)(eslint@8.48.0)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/jest': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + '@nx/js': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/node': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + '@nx/react': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/web': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/webpack': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3)(webpack-cli@5.1.4) + '@nx/workspace': + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + '@pmmmwh/react-refresh-webpack-plugin': + specifier: ^0.5.7 + version: 0.5.11(react-refresh@0.10.0)(webpack@5.90.3) + '@svgr/webpack': + specifier: ^8.0.1 + version: 8.1.0(typescript@5.3.3) + '@swc-node/register': + specifier: ~1.8.0 + version: 1.8.0(@swc/core@1.3.107)(@swc/types@0.1.5)(typescript@5.3.3) + '@swc/cli': + specifier: ~0.1.62 + version: 0.1.65(@swc/core@1.3.107) + '@swc/core': + specifier: ~1.3.85 + version: 1.3.107(@swc/helpers@0.5.6) + '@swc/helpers': + specifier: ~0.5.2 + version: 0.5.6 + '@testing-library/react': + specifier: 14.0.0 + version: 14.0.0(react-dom@18.2.0)(react@18.2.0) + '@types/express': + specifier: ~4.17.13 + version: 4.17.21 + '@types/jest': + specifier: ^29.4.0 + version: 29.5.12 + '@types/node': + specifier: 18.16.9 + version: 18.16.9 + '@types/react': + specifier: 18.2.33 + version: 18.2.33 + '@types/react-dom': + specifier: 18.2.14 + version: 18.2.14 + '@typescript-eslint/eslint-plugin': + specifier: ^6.13.2 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^6.13.2 + version: 6.21.0(eslint@8.48.0)(typescript@5.3.3) + babel-jest: + specifier: ^29.4.1 + version: 29.7.0(@babel/core@7.24.0) + esbuild: + specifier: ^0.19.2 + version: 0.19.12 + eslint: + specifier: ~8.48.0 + version: 8.48.0 + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.1.0(eslint@8.48.0) + eslint-plugin-import: + specifier: 2.27.5 + version: 2.27.5(@typescript-eslint/parser@6.21.0)(eslint@8.48.0) + eslint-plugin-jsx-a11y: + specifier: 6.7.1 + version: 6.7.1(eslint@8.48.0) + eslint-plugin-react: + specifier: 7.32.2 + version: 7.32.2(eslint@8.48.0) + eslint-plugin-react-hooks: + specifier: 4.6.0 + version: 4.6.0(eslint@8.48.0) + jest: + specifier: ^29.4.1 + version: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-environment-jsdom: + specifier: ^29.4.1 + version: 29.7.0 + jest-environment-node: + specifier: ^29.4.1 + version: 29.7.0 + nx: + specifier: 18.1.0-beta.5 + version: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + postcss: + specifier: ^8.4.35 + version: 8.4.35 + postcss-preset-mantine: + specifier: ^1.13.0 + version: 1.13.0(postcss@8.4.35) + postcss-simple-vars: + specifier: ^7.0.1 + version: 7.0.1(postcss@8.4.35) + prettier: + specifier: ^2.6.2 + version: 2.8.8 + react-refresh: + specifier: ^0.10.0 + version: 0.10.0 + ts-jest: + specifier: ^29.1.0 + version: 29.1.2(@babel/core@7.24.0)(babel-jest@29.7.0)(esbuild@0.19.12)(jest@29.7.0)(typescript@5.3.3) + ts-node: + specifier: 10.9.1 + version: 10.9.1(@swc/core@1.3.107)(@types/node@18.16.9)(typescript@5.3.3) + typescript: + specifier: ~5.3.2 + version: 5.3.3 + url-loader: + specifier: ^4.1.1 + version: 4.1.1(webpack@5.90.3) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack@5.90.3) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@adobe/css-tools@4.3.3: + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} + dev: true + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.24.0: + resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helpers': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + + /@babel/helpers@7.24.0: + resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.0): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.0): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-proposal-decorators@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-decorators': 7.24.0(@babel/core@7.24.0) + dev: true + + /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.0): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.0): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.0): + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.0): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.0): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-decorators@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) + dev: false + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + + /@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.0): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) + dev: true + + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/types': 7.24.0 + + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + regenerator-transform: 0.15.2 + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.0): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/preset-env@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.24.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.0) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.24.0) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-object-rest-spread': 7.24.0(@babel/core@7.24.0) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.0) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.24.0) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) + core-js-compat: 3.36.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/preset-flow@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) + dev: false + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 + esutils: 2.0.3 + + /@babel/preset-react@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.0) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.24.0) + dev: true + + /@babel/preset-typescript@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) + + /@babel/register@7.23.7(@babel/core@7.24.0): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + dev: false + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + /@babel/runtime@7.24.0: + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + + /@babel/traverse@7.24.0: + resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@coral-xyz/anchor@0.29.0: + resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==} + engines: {node: '>=11'} + dependencies: + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.91.0) + '@noble/hashes': 1.3.3 + '@solana/web3.js': 1.91.0 + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.1.8 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@coral-xyz/borsh@0.29.0(@solana/web3.js@1.91.0): + resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + dependencies: + '@solana/web3.js': 1.91.0 + bn.js: 5.2.1 + buffer-layout: 1.2.2 + dev: false + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.48.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.48.0: + resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/dom@1.6.3: + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/react-dom@2.0.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@floating-ui/react@0.26.9(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-p86wynZJVEkEq2BBjY/8p2g3biQ6TlgT4o/3KgFKyTWoJLU1GZ8wpctwRqtkEl2tseYA+kw7dBAIDFcednfI5w==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/utils': 0.2.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: 6.2.0 + dev: false + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: false + + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: false + + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@isaacs/ttlcache@1.4.1: + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + dev: false + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/create-cache-key-function@29.7.0: + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + dev: false + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + jest-mock: 29.7.0 + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 18.16.9 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 18.16.9 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.24.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 18.16.9 + '@types/yargs': 15.0.19 + chalk: 4.1.2 + dev: false + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 18.16.9 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + + /@mantine/core@7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-52BgYXAMD+E6vDiGIGOJlLBc0pdT2+gzrB0g+v7c7xeiNXqHEG5cEplLErfNBHh9kMQHiDHCiCb5Su9jqoUlXw==} + peerDependencies: + '@mantine/hooks': 7.6.1 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@floating-ui/react': 0.26.9(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.6.1(react@18.2.0) + clsx: 2.1.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-number-format: 5.3.3(react-dom@18.2.0)(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.33)(react@18.2.0) + react-textarea-autosize: 8.5.3(@types/react@18.2.33)(react@18.2.0) + type-fest: 3.13.1 + transitivePeerDependencies: + - '@types/react' + dev: false + + /@mantine/dates@7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xHe5sINtFuqptmZCXfp0aeurC8wjiycBzHvk87CqfhLIGWBTSAkrCKk3KzdUeEKfVsLY1l21cFb7Sv7mr4lfTw==} + peerDependencies: + '@mantine/core': 7.6.1 + '@mantine/hooks': 7.6.1 + dayjs: '>=1.0.0' + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.6.1(react@18.2.0) + clsx: 2.1.0 + dayjs: 1.11.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mantine/form@7.6.1(react@18.2.0): + resolution: {integrity: sha512-S0pdvFohRX3ahzhrCGM+d2sBaSHH88UkQhbzyOAGJ7xqNjPJ11Bh/xb4Mc+NXXxaq9MjPrRVe6fgpKJtXszBpQ==} + peerDependencies: + react: ^18.2.0 + dependencies: + fast-deep-equal: 3.1.3 + klona: 2.0.6 + react: 18.2.0 + dev: false + + /@mantine/hooks@7.6.1(react@18.2.0): + resolution: {integrity: sha512-zsOGzFRcQZuER2rzAjfrAqp98W7WCFA43nF1QZUKV7AHTq8q1mtr3DOhFfO3/CA+t1lai68gp1guVcIhP4lrwQ==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@mantine/modals@7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bXCViyQpXEbPGaq/UjCqe/jExku6I6i93okayN54diKZEKbjKAQjQVCowP7axUzMQNhhVRCVtSZPYbkiiEh3Ug==} + peerDependencies: + '@mantine/core': 7.6.1 + '@mantine/hooks': 7.6.1 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.6.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mantine/notifications@7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Aiui/faUBVQVgDPW9poCe8WdRZkXmIe9aFTnmf+WTopMWK/zfLBp02IjLY1f59zs5NeF/vfXaMxiuQq+KH2hTQ==} + peerDependencies: + '@mantine/core': 7.6.1 + '@mantine/hooks': 7.6.1 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.6.1(react@18.2.0) + '@mantine/store': 7.6.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + /@mantine/store@7.6.1(react@18.2.0): + resolution: {integrity: sha512-UqSsJLlAL53OSSUNK/aTXpkss9DX0TppTbtBKXPyflYfq0B9vKwQKumxEsg3UGVC4cjiQq2VD4mjGT94r+deug==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + + /@mole-inc/bin-wrapper@8.0.1: + resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bin-check: 4.1.0 + bin-version-check: 5.1.0 + content-disposition: 0.5.4 + ext-name: 5.0.0 + file-type: 17.1.6 + filenamify: 5.1.1 + got: 11.8.6 + os-filter-obj: 2.0.0 + dev: true + + /@noble/curves@1.3.0: + resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} + dependencies: + '@noble/hashes': 1.3.3 + dev: false + + /@noble/hashes@1.3.3: + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@nrwl/devkit@18.1.0-beta.5(nx@18.1.0-beta.5): + resolution: {integrity: sha512-de9mb1SduqXuj/DMgkA/r6do+6u+WSaI3xi3QA6ursbsUfu1j4K94H9/UTHI5tZiP3xy747+Y1Mm8YWL0hfdLQ==} + dependencies: + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + transitivePeerDependencies: + - nx + dev: true + + /@nrwl/esbuild@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-YYkwrhbnfdOPZU2ntCd6CuD0qRalWxjiLerLxRd5/5dnItICHPJ0rvwcvA8JZbG8Dn9CewoGNN55OASSrCF2Xg==} + dependencies: + '@nx/esbuild': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - esbuild + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/eslint-plugin-nx@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(@typescript-eslint/parser@6.21.0)(eslint-config-prettier@9.1.0)(eslint@8.48.0)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-hdwnUUfuCjKTMktn5VRTEYNPPEa9P+HW81o+AcXF4E1NxCA8ussWq3l/UlspRcXAhquU13kVTOcX6Dj0GFQpag==} + dependencies: + '@nx/eslint-plugin': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(@typescript-eslint/parser@6.21.0)(eslint-config-prettier@9.1.0)(eslint@8.48.0)(nx@18.1.0-beta.5)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@typescript-eslint/parser' + - debug + - eslint + - eslint-config-prettier + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/jest@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3): + resolution: {integrity: sha512-up7nSKdJgNZDmMaDGUQFvZbRraRkPnd0jyCsfzfvtRwNFPdbZHkz0R2+ocXEoXupQSSE2JGjGtf3UMdeAQSjVg==} + dependencies: + '@nx/jest': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-plugin-macros + - debug + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + dev: true + + /@nrwl/js@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-4gUm+5eIdirmnoLxq/y6gB9U5JZ0WGZ/Y7CmTHnIZOrOJUL+eIzVZekwffODssOu3W3BCDpg5AeBT+96gGSt3A==} + dependencies: + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/node@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3): + resolution: {integrity: sha512-xuAO0Gys0fH9jRnYbVBsfxsatjMNXdc1wHRwHCAlnrMCK0nwmO27cpaHxgMGOxaRd3ie4D65sRzehaiDg8a+SQ==} + dependencies: + '@nx/node': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-plugin-macros + - debug + - js-yaml + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + dev: true + + /@nrwl/react@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-ZjWVObjZo02SzLQubtxf/AF9zp+WNWNtAicPI8vi8ppz9Yaq9EldOEjyFZr3PLhTk3MtrLi8fR5kLNDt7AyQWg==} + dependencies: + '@nx/react': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - js-yaml + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/tao@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107): + resolution: {integrity: sha512-/G6VKQxKOvife1SJI8La3uwq0YYlVwtJPQqSxHPYbODrq4zznQLYmhjAKo16xSJExnvaSB0C0rQC2hLGM8B6FQ==} + hasBin: true + dependencies: + nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + tslib: 2.6.2 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nrwl/web@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-dcq2Z0Y8al2MJaE6CxhP39dhccT8V3PNYbOQ/q/yTcPjWHuJ9jqf8fy6IUVaZ11PCSByp6Dahobk/C9MJXD6yg==} + dependencies: + '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nrwl/webpack@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3)(webpack-cli@5.1.4): + resolution: {integrity: sha512-BCauZsIbMpVNi+CrbMH3AmuYbXAVmgyj4HvOiGvMlvwuArlerSKxHY9RLiyyHcS5PWo1osdam/E21y/lvqwAyw==} + dependencies: + '@nx/webpack': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3)(webpack-cli@5.1.4) + transitivePeerDependencies: + - '@babel/traverse' + - '@parcel/css' + - '@rspack/core' + - '@swc-node/register' + - '@swc/core' + - '@swc/css' + - '@swc/wasm' + - '@types/node' + - bufferutil + - clean-css + - csso + - debug + - esbuild + - fibers + - html-webpack-plugin + - lightningcss + - node-sass + - nx + - sass-embedded + - supports-color + - typescript + - uglify-js + - utf-8-validate + - verdaccio + - vue-template-compiler + - webpack-cli + dev: true + + /@nrwl/workspace@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107): + resolution: {integrity: sha512-52itDq8GfsXC/D/tTm+ekdXMm3p/ap2R73Fps/tr6CgaZzsoT4qJaoJDUKo5dOjPVmthwgkZbVuqtJU3HQG5iQ==} + dependencies: + '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@nx/devkit@18.1.0-beta.5(nx@18.1.0-beta.5): + resolution: {integrity: sha512-VpT6n36pnkiUdXHnWytZmh8cPZuXg63QdJPZvJVXycsGSi915EWEpqnh9yGDzD0OoafDoAicEiw9/32lPoBw8A==} + peerDependencies: + nx: '>= 16 <= 18' + dependencies: + '@nrwl/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + ejs: 3.1.9 + enquirer: 2.3.6 + ignore: 5.3.1 + nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + semver: 7.6.0 + tmp: 0.2.3 + tslib: 2.6.2 + yargs-parser: 21.1.1 + dev: true + + /@nx/esbuild@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-iByUND/MTsbylrQ6hg5I1j1ZIdnW+zRxi9RbqSy5nqtcbSWytcOpv1+okPk4k6YA935BgCT5bnZkTrywW3r7VQ==} + peerDependencies: + esbuild: ~0.19.2 + peerDependenciesMeta: + esbuild: + optional: true + dependencies: + '@nrwl/esbuild': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + chalk: 4.1.2 + esbuild: 0.19.12 + fast-glob: 3.2.7 + fs-extra: 11.2.0 + tsconfig-paths: 4.2.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nx/eslint-plugin@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(@typescript-eslint/parser@6.21.0)(eslint-config-prettier@9.1.0)(eslint@8.48.0)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-sVpRF9Xj6UJWBdjLOu8QHwDZwBf9y71R3720GjoOEyP24bJTJSPy+IdLwWXVuhLjl4wSyjx9n89XMBYT3emk8w==} + peerDependencies: + '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 + eslint-config-prettier: ^9.0.0 + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + '@nrwl/eslint-plugin-nx': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(@typescript-eslint/parser@6.21.0)(eslint-config-prettier@9.1.0)(eslint@8.48.0)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + chalk: 4.1.2 + confusing-browser-globals: 1.0.11 + eslint-config-prettier: 9.1.0(eslint@8.48.0) + jsonc-eslint-parser: 2.4.0 + semver: 7.6.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - eslint + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nx/eslint@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5): + resolution: {integrity: sha512-wM9YWlZbAXTZGnFNqAg4VfWjsi0mOQ1HuTD/ew0IrF1vyk3BUHKH5luZsdkG2uPtLXT0V7WW0XvVmL3iMK6ceA==} + peerDependencies: + js-yaml: 4.1.0 + peerDependenciesMeta: + js-yaml: + optional: true + dependencies: + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/linter': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5) + eslint: 8.48.0 + tslib: 2.6.2 + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - verdaccio + dev: true + + /@nx/jest@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3): + resolution: {integrity: sha512-mdcRbbBXZZVCK6nlpDgNiR69KbG3wzJuNqkQ844WOgqksmh6aGGX0r+JKuRGo1QV1HNfQuabxmAMA6YL4ZCSrw==} + dependencies: + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@nrwl/jest': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) + chalk: 4.1.2 + identity-obj-proxy: 3.0.0 + jest-config: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-resolve: 29.7.0 + jest-util: 29.7.0 + minimatch: 9.0.3 + resolve.exports: 1.1.0 + tslib: 2.6.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-plugin-macros + - debug + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + dev: true + + /@nx/js@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-kUKUWnwnJUqnN+g8ps87WTrgSOLMv7nCSuS5TFAVszdAiCnwxh2QDxYWn8yXir+9g/kGiW5JGOt0aol3wEpZ5A==} + peerDependencies: + verdaccio: ^5.0.4 + peerDependenciesMeta: + verdaccio: + optional: true + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-proposal-decorators': 7.24.0(@babel/core@7.24.0) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-runtime': 7.24.0(@babel/core@7.24.0) + '@babel/preset-env': 7.24.0(@babel/core@7.24.0) + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/runtime': 7.24.0 + '@nrwl/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) + babel-plugin-const-enum: 1.2.0(@babel/core@7.24.0) + babel-plugin-macros: 2.8.0 + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.24.0) + chalk: 4.1.2 + columnify: 1.6.0 + detect-port: 1.5.1 + fast-glob: 3.2.7 + fs-extra: 11.2.0 + ignore: 5.3.1 + js-tokens: 4.0.0 + minimatch: 9.0.3 + npm-package-arg: 11.0.1 + npm-run-path: 4.0.1 + ora: 5.3.0 + semver: 7.6.0 + source-map-support: 0.5.19 + ts-node: 10.9.1(@swc/core@1.3.107)(@types/node@18.16.9)(typescript@5.3.3) + tsconfig-paths: 4.2.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + dev: true + + /@nx/linter@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5): + resolution: {integrity: sha512-SYbkz/qKFcTgMTFYhMjYiA1onzaaIZqGYEHzmgCBSjjVmuIHlmFJLqsp3ytG6LEvcMHUTe35W0CWUWkEMFXQtg==} + dependencies: + '@nx/eslint': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - js-yaml + - nx + - supports-color + - verdaccio + dev: true + + /@nx/node@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3): + resolution: {integrity: sha512-N+bqsgYXJ2bYHkKVM8Dqbxva6GiaOVJZd+t25Wpzm54D+XSW9mA50TZL6jjnOgQBQPfxoi0KblxGbStMrtuLBQ==} + dependencies: + '@nrwl/node': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/eslint': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5) + '@nx/jest': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(ts-node@10.9.1)(typescript@5.3.3) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - babel-plugin-macros + - debug + - js-yaml + - node-notifier + - nx + - supports-color + - ts-node + - typescript + - verdaccio + dev: true + + /@nx/nx-darwin-arm64@18.1.0-beta.5: + resolution: {integrity: sha512-ks1OQjd9Az3KzYcZPwjQZNElMZCX8eEkT1S2mJ0InhMbir1YhRYf7/El6JKloQkgTGOQsb/KHFMd+KWSTayTmw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-darwin-x64@18.1.0-beta.5: + resolution: {integrity: sha512-oe05/x2kGaLBcmzCj3BIeUHPr6JEAPKwlRVvmX97xCpwj1+M7EtcBXJ5DsC3NpKgtxps/3YZdBKj7UFNyubl/A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-freebsd-x64@18.1.0-beta.5: + resolution: {integrity: sha512-QqtoMWq01KsjsykhKCqnsdvCH2fS9Yh5K34POYXFiCyTYvaQNH3LpQQT/7EjHyMcfz00Gmy6SmdyfdbOXpdAwQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm-gnueabihf@18.1.0-beta.5: + resolution: {integrity: sha512-mkQsFdRnn6P5T3EakvVhK8ljGvsJ1oyGj52PinHHgDEhnMEklQVEdINe6QYRh2OSXnrjS6YMOnwgpHXSpeciUw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm64-gnu@18.1.0-beta.5: + resolution: {integrity: sha512-T18LTVYPYVosSa4TtSVPdvlfODzmXuz6QSZ0K5ZlelYi6N5FEpq2v2Sg/G61wXLSxMn9ghpuzj9+gDmXjMcv1Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-arm64-musl@18.1.0-beta.5: + resolution: {integrity: sha512-ceXfI0SaMlwf5J4KXdQ2BXTWOzpkQQBDqvu1RO2rG8n48SHCGt6nyLx8Xj7PI1C2A9WthEshHG0bA+7wycHJnw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-x64-gnu@18.1.0-beta.5: + resolution: {integrity: sha512-W11AdbOFrxyD8DuJdXb9HWy5fJSlGc9wSiGKRvqnHg3xW0tFlJu6oW8579fXACM/FE5Vwu764eUfiaRisolD0g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-linux-x64-musl@18.1.0-beta.5: + resolution: {integrity: sha512-U3W7eCDViFjvOj3q7OT93VhO+KXTWPY8HloZvynsUsritJacizWh6omfg6OO3UZ5kxAtvvjya/Z3mD5elsHSxA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-win32-arm64-msvc@18.1.0-beta.5: + resolution: {integrity: sha512-YKljWtolGC5XF94KaoXgBWgn0wv2WPthAV9iXDasiZyS/MBLhTZ+WhqLCxtBJWMCWmQJVWnaxqYQM6IclEjYqg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nx/nx-win32-x64-msvc@18.1.0-beta.5: + resolution: {integrity: sha512-Os7o5xK6xutJI3MJ9VKWIMXgcMXG/3WwDEjRRuiDa0gUuAA6r4zqWUyyMg69+PqDc82qDKMuK7BgTRiGDfmKGQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@nx/react@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-h49qkC8C77Np7J8uwRGvOwOOcsM96Z4xiSmucd896k2C60n66KsndwfiyxhXlG27AdsEhE85R5sAbc4zsDnGng==} + dependencies: + '@nrwl/react': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/eslint': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) + '@svgr/webpack': 8.1.0(typescript@5.3.3) + chalk: 4.1.2 + minimatch: 9.0.3 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - js-yaml + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nx/web@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3): + resolution: {integrity: sha512-99r0pqyyitIOsndIdXPRpYkfecr8TNVn73PXpxrys3dDvq9c7SBqpaCw/ObUia5f4r4Y7SvxxO/O1dPTDtaKTA==} + dependencies: + '@nrwl/web': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + chalk: 4.1.2 + detect-port: 1.5.1 + http-server: 14.1.1 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: true + + /@nx/webpack@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3)(webpack-cli@5.1.4): + resolution: {integrity: sha512-eoYAXW2yWSy2Zj8JrU+Oa23zpmfPrmIwyv/JAxN4Ikpkdflp9UmhVM2VkO3Hooqotlw/UOg2gtI1GEHINz7tbg==} + dependencies: + '@babel/core': 7.24.0 + '@nrwl/webpack': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(esbuild@0.19.12)(nx@18.1.0-beta.5)(typescript@5.3.3)(webpack-cli@5.1.4) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + '@nx/js': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@18.16.9)(nx@18.1.0-beta.5)(typescript@5.3.3) + ajv: 8.12.0 + autoprefixer: 10.4.18(postcss@8.4.35) + babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3) + browserslist: 4.23.0 + chalk: 4.1.2 + copy-webpack-plugin: 10.2.4(webpack@5.90.3) + css-loader: 6.10.0(webpack@5.90.3) + css-minimizer-webpack-plugin: 5.0.1(esbuild@0.19.12)(webpack@5.90.3) + fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.3.3)(webpack@5.90.3) + less: 4.1.3 + less-loader: 11.1.0(less@4.1.3)(webpack@5.90.3) + license-webpack-plugin: 4.0.2(webpack@5.90.3) + loader-utils: 2.0.4 + mini-css-extract-plugin: 2.4.7(webpack@5.90.3) + parse5: 4.0.0 + postcss: 8.4.35 + postcss-import: 14.1.0(postcss@8.4.35) + postcss-loader: 6.2.1(postcss@8.4.35)(webpack@5.90.3) + rxjs: 7.8.1 + sass: 1.71.1 + sass-loader: 12.6.0(sass@1.71.1)(webpack@5.90.3) + source-map-loader: 3.0.2(webpack@5.90.3) + style-loader: 3.3.4(webpack@5.90.3) + stylus: 0.59.0 + stylus-loader: 7.1.3(stylus@0.59.0)(webpack@5.90.3) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.90.3) + ts-loader: 9.5.1(typescript@5.3.3)(webpack@5.90.3) + tsconfig-paths-webpack-plugin: 4.0.0 + tslib: 2.6.2 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.3) + webpack-node-externals: 3.0.0 + webpack-subresource-integrity: 5.1.0(webpack@5.90.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@parcel/css' + - '@rspack/core' + - '@swc-node/register' + - '@swc/core' + - '@swc/css' + - '@swc/wasm' + - '@types/node' + - bufferutil + - clean-css + - csso + - debug + - esbuild + - fibers + - html-webpack-plugin + - lightningcss + - node-sass + - nx + - sass-embedded + - supports-color + - typescript + - uglify-js + - utf-8-validate + - verdaccio + - vue-template-compiler + - webpack-cli + dev: true + + /@nx/workspace@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107): + resolution: {integrity: sha512-r2k8KOZW355gMPCv16AdxO9Dwi8GRFDKPrYhsaKcd74YR/dsdsdDpXBDD/9MwMfzB+ZfEcawWei6tgzgwh2MEg==} + dependencies: + '@nrwl/workspace': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + '@nx/devkit': 18.1.0-beta.5(nx@18.1.0-beta.5) + chalk: 4.1.2 + enquirer: 2.3.6 + nx: 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + tslib: 2.6.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + dev: true + + /@phenomnomnominal/tsquery@5.0.1(typescript@5.3.3): + resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} + peerDependencies: + typescript: ^3 || ^4 || ^5 + dependencies: + esquery: 1.5.0 + typescript: 5.3.3 + dev: true + + /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.10.0)(webpack@5.90.3): + resolution: {integrity: sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==} + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <5.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.36.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.5.2 + loader-utils: 2.0.4 + react-refresh: 0.10.0 + schema-utils: 3.3.0 + source-map: 0.7.4 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /@pubkey-ui/core@1.6.0(@types/react@18.2.33)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mIVnDXWCKZAi06HGXUyyfqz4VGsMAovBR5N3uxiZPfRph6phqbafWfQr2WtgmPItNTNbJw/NpMtH2+4Whx2eCQ==} + dependencies: + '@mantine/core': 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@mantine/dates': 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + '@mantine/form': 7.6.1(react@18.2.0) + '@mantine/hooks': 7.6.1(react@18.2.0) + '@mantine/modals': 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0) + '@mantine/notifications': 7.6.1(@mantine/core@7.6.1)(@mantine/hooks@7.6.1)(react-dom@18.2.0)(react@18.2.0) + timeago-react: 3.0.6(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - dayjs + - react + - react-dom + dev: false + + /@pubkeyapp/wallet-adapter-mantine-ui@2.3.0(@mantine/core@7.6.1)(@solana/wallet-adapter-base@0.9.23)(@solana/wallet-adapter-react@0.15.35)(@tabler/icons-react@2.47.0)(react@18.2.0): + resolution: {integrity: sha512-lqJdTDh1Novy7O6/M6bYpdumYtBBqHaZtqRko4dELHUR8bvKYq2zo8sl7kP0h+hwrELM756ToknKvRxok3Po5g==} + peerDependencies: + '@mantine/core': ^7.0.0 + '@solana/wallet-adapter-base': ^0.9.23 + '@solana/wallet-adapter-react': ^0.15.35 + '@tabler/icons-react': ^2.34.0 + react: ^18.2.0 + dependencies: + '@mantine/core': 7.6.1(@mantine/hooks@7.6.1)(@types/react@18.2.33)(react-dom@18.2.0)(react@18.2.0) + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-adapter-react': 0.15.35(@solana/web3.js@1.91.0)(bs58@4.0.1)(react-native@0.73.5)(react@18.2.0) + '@tabler/icons-react': 2.47.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-native-async-storage/async-storage@1.22.3(react-native@0.73.5): + resolution: {integrity: sha512-Ov3wjuqxHd62tLYfgTjxj77YRYWra3A4Fi8uICIPcePgNO2WkS5B0ADXt9e/JLzSCNqVlXCq4Fir/gHmZTU9ww==} + requiresBuild: true + peerDependencies: + react-native: ^0.0.0-0 || >=0.60 <1.0 + dependencies: + merge-options: 3.0.4 + react-native: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) + dev: false + optional: true + + /@react-native-community/cli-clean@12.3.6: + resolution: {integrity: sha512-gUU29ep8xM0BbnZjwz9MyID74KKwutq9x5iv4BCr2im6nly4UMf1B1D+V225wR7VcDGzbgWjaezsJShLLhC5ig==} + dependencies: + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + execa: 5.1.1 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-config@12.3.6: + resolution: {integrity: sha512-JGWSYQ9EAK6m2v0abXwFLEfsqJ1zkhzZ4CV261QZF9MoUNB6h57a274h1MLQR9mG6Tsh38wBUuNfEPUvS1vYew==} + dependencies: + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + cosmiconfig: 5.2.1 + deepmerge: 4.3.1 + glob: 7.2.3 + joi: 17.12.2 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-debugger-ui@12.3.6: + resolution: {integrity: sha512-SjUKKsx5FmcK9G6Pb6UBFT0s9JexVStK5WInmANw75Hm7YokVvHEgtprQDz2Uvy5znX5g2ujzrkIU//T15KQzA==} + dependencies: + serve-static: 1.15.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@react-native-community/cli-doctor@12.3.6: + resolution: {integrity: sha512-fvBDv2lTthfw4WOQKkdTop2PlE9GtfrlNnpjB818MhcdEnPjfQw5YaTUcnNEGsvGomdCs1MVRMgYXXwPSN6OvQ==} + dependencies: + '@react-native-community/cli-config': 12.3.6 + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-platform-ios': 12.3.6 + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + command-exists: 1.2.9 + deepmerge: 4.3.1 + envinfo: 7.11.1 + execa: 5.1.1 + hermes-profile-transformer: 0.0.6 + node-stream-zip: 1.15.0 + ora: 5.4.1 + semver: 7.6.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + yaml: 2.4.1 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-hermes@12.3.6: + resolution: {integrity: sha512-sNGwfOCl8OAIjWCkwuLpP8NZbuO0dhDI/2W7NeOGDzIBsf4/c4MptTrULWtGIH9okVPLSPX0NnRyGQ+mSwWyuQ==} + dependencies: + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + hermes-profile-transformer: 0.0.6 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-platform-android@12.3.6: + resolution: {integrity: sha512-DeDDAB8lHpuGIAPXeeD9Qu2+/wDTFPo99c8uSW49L0hkmZJixzvvvffbGQAYk32H0TmaI7rzvzH+qzu7z3891g==} + dependencies: + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + execa: 5.1.1 + fast-xml-parser: 4.3.5 + glob: 7.2.3 + logkitty: 0.7.1 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-platform-ios@12.3.6: + resolution: {integrity: sha512-3eZ0jMCkKUO58wzPWlvAPRqezVKm9EPZyaPyHbRPWU8qw7JqkvnRlWIaYDGpjCJgVW4k2hKsEursLtYKb188tg==} + dependencies: + '@react-native-community/cli-tools': 12.3.6 + chalk: 4.1.2 + execa: 5.1.1 + fast-xml-parser: 4.3.5 + glob: 7.2.3 + ora: 5.4.1 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-plugin-metro@12.3.6: + resolution: {integrity: sha512-3jxSBQt4fkS+KtHCPSyB5auIT+KKIrPCv9Dk14FbvOaEh9erUWEm/5PZWmtboW1z7CYeNbFMeXm9fM2xwtVOpg==} + dev: false + + /@react-native-community/cli-server-api@12.3.6: + resolution: {integrity: sha512-80NIMzo8b2W+PL0Jd7NjiJW9mgaT8Y8wsIT/lh6mAvYH7mK0ecDJUYUTAAv79Tbo1iCGPAr3T295DlVtS8s4yQ==} + dependencies: + '@react-native-community/cli-debugger-ui': 12.3.6 + '@react-native-community/cli-tools': 12.3.6 + compression: 1.7.4 + connect: 3.7.0 + errorhandler: 1.5.1 + nocache: 3.0.4 + pretty-format: 26.6.2 + serve-static: 1.15.0 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@react-native-community/cli-tools@12.3.6: + resolution: {integrity: sha512-FPEvZn19UTMMXUp/piwKZSh8cMEfO8G3KDtOwo53O347GTcwNrKjgZGtLSPELBX2gr+YlzEft3CoRv2Qmo83fQ==} + dependencies: + appdirsjs: 1.2.7 + chalk: 4.1.2 + find-up: 5.0.0 + mime: 2.6.0 + node-fetch: 2.7.0 + open: 6.4.0 + ora: 5.4.1 + semver: 7.6.0 + shell-quote: 1.8.1 + sudo-prompt: 9.2.1 + transitivePeerDependencies: + - encoding + dev: false + + /@react-native-community/cli-types@12.3.6: + resolution: {integrity: sha512-xPqTgcUtZowQ8WKOkI9TLGBwH2bGggOC4d2FFaIRST3gTcjrEeGRNeR5aXCzJFIgItIft8sd7p2oKEdy90+01Q==} + dependencies: + joi: 17.12.2 + dev: false + + /@react-native-community/cli@12.3.6: + resolution: {integrity: sha512-647OSi6xBb8FbwFqX9zsJxOzu685AWtrOUWHfOkbKD+5LOpGORw+GQo0F9rWZnB68rLQyfKUZWJeaD00pGv5fw==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@react-native-community/cli-clean': 12.3.6 + '@react-native-community/cli-config': 12.3.6 + '@react-native-community/cli-debugger-ui': 12.3.6 + '@react-native-community/cli-doctor': 12.3.6 + '@react-native-community/cli-hermes': 12.3.6 + '@react-native-community/cli-plugin-metro': 12.3.6 + '@react-native-community/cli-server-api': 12.3.6 + '@react-native-community/cli-tools': 12.3.6 + '@react-native-community/cli-types': 12.3.6 + chalk: 4.1.2 + commander: 9.5.0 + deepmerge: 4.3.1 + execa: 5.1.1 + find-up: 4.1.0 + fs-extra: 8.1.0 + graceful-fs: 4.2.11 + prompts: 2.4.2 + semver: 7.6.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@react-native/assets-registry@0.73.1: + resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} + engines: {node: '>=18'} + dev: false + + /@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==} + engines: {node: '>=18'} + dependencies: + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.0) + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + dev: false + + /@react-native/babel-preset@0.73.21(@babel/core@7.24.0)(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.0) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.0) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-runtime': 7.24.0(@babel/core@7.24.0) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.0) + '@babel/template': 7.24.0 + '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.0) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.0) + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + dev: false + + /@react-native/codegen@0.73.3(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/parser': 7.24.0 + '@babel/preset-env': 7.24.0(@babel/core@7.24.0) + flow-parser: 0.206.0 + glob: 7.2.3 + invariant: 2.2.4 + jscodeshift: 0.14.0(@babel/preset-env@7.24.0) + mkdirp: 0.5.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@react-native/community-cli-plugin@0.73.17(@babel/core@7.24.0)(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==} + engines: {node: '>=18'} + dependencies: + '@react-native-community/cli-server-api': 12.3.6 + '@react-native-community/cli-tools': 12.3.6 + '@react-native/dev-middleware': 0.73.8 + '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.0)(@babel/preset-env@7.24.0) + chalk: 4.1.2 + execa: 5.1.1 + metro: 0.80.6 + metro-config: 0.80.6 + metro-core: 0.80.6 + node-fetch: 2.7.0 + readline: 1.3.0 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@react-native/debugger-frontend@0.73.3: + resolution: {integrity: sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==} + engines: {node: '>=18'} + dev: false + + /@react-native/dev-middleware@0.73.8: + resolution: {integrity: sha512-oph4NamCIxkMfUL/fYtSsE+JbGOnrlawfQ0kKtDQ5xbOjPKotKoXqrs1eGwozNKv7FfQ393stk1by9a6DyASSg==} + engines: {node: '>=18'} + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.73.3 + chrome-launcher: 0.15.2 + chromium-edge-launcher: 1.0.0 + connect: 3.7.0 + debug: 2.6.9 + node-fetch: 2.7.0 + open: 7.4.2 + serve-static: 1.15.0 + temp-dir: 2.0.0 + ws: 6.2.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@react-native/gradle-plugin@0.73.4: + resolution: {integrity: sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==} + engines: {node: '>=18'} + dev: false + + /@react-native/js-polyfills@0.73.1: + resolution: {integrity: sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==} + engines: {node: '>=18'} + dev: false + + /@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.0)(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + dependencies: + '@babel/core': 7.24.0 + '@react-native/babel-preset': 0.73.21(@babel/core@7.24.0)(@babel/preset-env@7.24.0) + hermes-parser: 0.15.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + dev: false + + /@react-native/normalize-colors@0.73.2: + resolution: {integrity: sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==} + dev: false + + /@react-native/virtualized-lists@0.73.4(react-native@0.73.5): + resolution: {integrity: sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==} + engines: {node: '>=18'} + peerDependencies: + react-native: '*' + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react-native: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) + dev: false + + /@remix-run/router@1.6.2: + resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==} + engines: {node: '>=14'} + dev: false + + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: false + + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: false + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + dependencies: + type-detect: 4.0.8 + + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.1 + + /@solana-mobile/mobile-wallet-adapter-protocol-web3js@2.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(react-native@0.73.5)(react@18.2.0): + resolution: {integrity: sha512-uA6tbP/JvBCdGSwty3rNM8a0qpoHPEV+Qj234aw4XMisS++TSN8R79bclT4hLvOsg+m04on1MOkMM3oPXlQo9A==} + peerDependencies: + '@solana/web3.js': ^1.58.0 + dependencies: + '@solana-mobile/mobile-wallet-adapter-protocol': 2.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react-native@0.73.5)(react@18.2.0) + '@solana/web3.js': 1.91.0 + bs58: 5.0.0 + js-base64: 3.7.7 + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - react + - react-native + dev: false + + /@solana-mobile/mobile-wallet-adapter-protocol@2.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react-native@0.73.5)(react@18.2.0): + resolution: {integrity: sha512-z7LPeWzdEUoavU5P1PSbtxLTNE/MB6ACgaIPPAMjRdEk/jUvunquWKmbOX4vkFD6QbD98ykc4NZOt5iki7Z6hw==} + peerDependencies: + '@solana/web3.js': ^1.58.0 + react-native: '>0.69' + dependencies: + '@solana/wallet-standard': 1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0) + '@solana/wallet-standard-util': 1.1.1 + '@solana/web3.js': 1.91.0 + '@wallet-standard/core': 1.0.3 + js-base64: 3.7.7 + react-native: 0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - bs58 + - react + dev: false + + /@solana-mobile/wallet-adapter-mobile@2.1.2(@solana/web3.js@1.91.0)(react-native@0.73.5)(react@18.2.0): + resolution: {integrity: sha512-m7UW+vS0qB7j+FYvzBbXQx9carDW+x4Ndmdf5nbSsfZ+gr3yVAAQBkW1Cj+wgC2DFINpTr6Nt0qbuaQjRS53AA==} + peerDependencies: + '@solana/web3.js': ^1.58.0 + dependencies: + '@solana-mobile/mobile-wallet-adapter-protocol-web3js': 2.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(react-native@0.73.5)(react@18.2.0) + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-features': 1.2.0 + '@solana/web3.js': 1.91.0 + js-base64: 3.7.7 + optionalDependencies: + '@react-native-async-storage/async-storage': 1.22.3(react-native@0.73.5) + transitivePeerDependencies: + - react + - react-native + dev: false + + /@solana/buffer-layout-utils@0.2.0: + resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} + engines: {node: '>= 10'} + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.91.0 + bigint-buffer: 1.1.5 + bignumber.js: 9.1.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@solana/buffer-layout@4.0.1: + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + dependencies: + buffer: 6.0.3 + dev: false + + /@solana/codecs-core@2.0.0-experimental.8618508: + resolution: {integrity: sha512-JCz7mKjVKtfZxkuDtwMAUgA7YvJcA2BwpZaA1NOLcted4OMC4Prwa3DUe3f3181ixPYaRyptbF0Ikq2MbDkYEA==} + dev: false + + /@solana/codecs-data-structures@2.0.0-experimental.8618508: + resolution: {integrity: sha512-sLpjL9sqzaDdkloBPV61Rht1tgaKq98BCtIKRuyscIrmVPu3wu0Bavk2n/QekmUzaTsj7K1pVSniM0YqCdnEBw==} + dependencies: + '@solana/codecs-core': 2.0.0-experimental.8618508 + '@solana/codecs-numbers': 2.0.0-experimental.8618508 + dev: false + + /@solana/codecs-numbers@2.0.0-experimental.8618508: + resolution: {integrity: sha512-EXQKfzFr3CkKKNzKSZPOOOzchXsFe90TVONWsSnVkonO9z+nGKALE0/L9uBmIFGgdzhhU9QQVFvxBMclIDJo2Q==} + dependencies: + '@solana/codecs-core': 2.0.0-experimental.8618508 + dev: false + + /@solana/codecs-strings@2.0.0-experimental.8618508(fastestsmallesttextencoderdecoder@1.0.22): + resolution: {integrity: sha512-b2yhinr1+oe+JDmnnsV0641KQqqDG8AQ16Z/x7GVWO+AWHMpRlHWVXOq8U1yhPMA4VXxl7i+D+C6ql0VGFp0GA==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + dependencies: + '@solana/codecs-core': 2.0.0-experimental.8618508 + '@solana/codecs-numbers': 2.0.0-experimental.8618508 + fastestsmallesttextencoderdecoder: 1.0.22 + dev: false + + /@solana/options@2.0.0-experimental.8618508: + resolution: {integrity: sha512-fy/nIRAMC3QHvnKi63KEd86Xr/zFBVxNW4nEpVEU2OT0gCEKwHY4Z55YHf7XujhyuM3PNpiBKg/YYw5QlRU4vg==} + dependencies: + '@solana/codecs-core': 2.0.0-experimental.8618508 + '@solana/codecs-numbers': 2.0.0-experimental.8618508 + dev: false + + /@solana/spl-token-metadata@0.1.2(@solana/web3.js@1.91.0)(fastestsmallesttextencoderdecoder@1.0.22): + resolution: {integrity: sha512-hJYnAJNkDrtkE2Q41YZhCpeOGU/0JgRFXbtrtOuGGeKc3pkEUHB9DDoxZAxx+XRno13GozUleyBi0qypz4c3bw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.87.6 + dependencies: + '@solana/codecs-core': 2.0.0-experimental.8618508 + '@solana/codecs-data-structures': 2.0.0-experimental.8618508 + '@solana/codecs-numbers': 2.0.0-experimental.8618508 + '@solana/codecs-strings': 2.0.0-experimental.8618508(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/options': 2.0.0-experimental.8618508 + '@solana/spl-type-length-value': 0.1.0 + '@solana/web3.js': 1.91.0 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + dev: false + + /@solana/spl-token@0.4.1(@solana/web3.js@1.91.0)(fastestsmallesttextencoderdecoder@1.0.22): + resolution: {integrity: sha512-DEe15GI0l+XLHwtau/3GUwGQJ9YY/VWNE0k/QuXaaGKo4adMZLEAIQUktRc/S2sRqPjvUdR5anZGxQ9p5khWZw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.90.0 + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0 + '@solana/spl-token-metadata': 0.1.2(@solana/web3.js@1.91.0)(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/web3.js': 1.91.0 + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - utf-8-validate + dev: false + + /@solana/spl-type-length-value@0.1.0: + resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} + engines: {node: '>=16'} + dependencies: + buffer: 6.0.3 + dev: false + + /@solana/wallet-adapter-base@0.9.23(@solana/web3.js@1.91.0): + resolution: {integrity: sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.77.3 + dependencies: + '@solana/wallet-standard-features': 1.2.0 + '@solana/web3.js': 1.91.0 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + eventemitter3: 4.0.7 + dev: false + + /@solana/wallet-adapter-react@0.15.35(@solana/web3.js@1.91.0)(bs58@4.0.1)(react-native@0.73.5)(react@18.2.0): + resolution: {integrity: sha512-i4hc/gNLTYNLMEt2LS+4lrrc0QAwa5SU2PtYMnZ2A3rsoKF5m1bv1h6cjLj2KBry4/zRGEBoqkiMOC5zHkLnRQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.77.3 + react: '*' + dependencies: + '@solana-mobile/wallet-adapter-mobile': 2.1.2(@solana/web3.js@1.91.0)(react-native@0.73.5)(react@18.2.0) + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-wallet-adapter-react': 1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@4.0.1)(react@18.2.0) + '@solana/web3.js': 1.91.0 + react: 18.2.0 + transitivePeerDependencies: + - bs58 + - react-native + dev: false + + /@solana/wallet-standard-chains@1.1.0: + resolution: {integrity: sha512-IRJHf94UZM8AaRRmY18d34xCJiVPJej1XVwXiTjihHnmwD0cxdQbc/CKjrawyqFyQAKJx7raE5g9mnJsAdspTg==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@solana/wallet-standard-core@1.1.1: + resolution: {integrity: sha512-DoQ5Ryly4GAZtxRUmW2rIWrgNvTYVCWrFCFFjZI5s4zu2QNsP7sHZUax3kc1GbmFLXNL1FWRZlPOXRs6e0ZEng==} + engines: {node: '>=16'} + dependencies: + '@solana/wallet-standard-chains': 1.1.0 + '@solana/wallet-standard-features': 1.2.0 + '@solana/wallet-standard-util': 1.1.1 + dev: false + + /@solana/wallet-standard-features@1.2.0: + resolution: {integrity: sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + dev: false + + /@solana/wallet-standard-util@1.1.1: + resolution: {integrity: sha512-dPObl4ntmfOc0VAGGyyFvrqhL8UkHXmVsgbj0K9RcznKV4KB3MgjGwzo8CTSX5El5lkb0rDeEzFqvToJXRz3dw==} + engines: {node: '>=16'} + dependencies: + '@noble/curves': 1.3.0 + '@solana/wallet-standard-chains': 1.1.0 + '@solana/wallet-standard-features': 1.2.0 + dev: false + + /@solana/wallet-standard-wallet-adapter-base@1.1.2(@solana/web3.js@1.91.0)(bs58@4.0.1): + resolution: {integrity: sha512-DqhzYbgh3disHMgcz6Du7fmpG29BYVapNEEiL+JoVMa+bU9d4P1wfwXUNyJyRpGGNXtwhyZjIk2umWbe5ZBNaQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.58.0 + bs58: ^4.0.1 + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-chains': 1.1.0 + '@solana/wallet-standard-features': 1.2.0 + '@solana/wallet-standard-util': 1.1.1 + '@solana/web3.js': 1.91.0 + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + bs58: 4.0.1 + dev: false + + /@solana/wallet-standard-wallet-adapter-base@1.1.2(@solana/web3.js@1.91.0)(bs58@5.0.0): + resolution: {integrity: sha512-DqhzYbgh3disHMgcz6Du7fmpG29BYVapNEEiL+JoVMa+bU9d4P1wfwXUNyJyRpGGNXtwhyZjIk2umWbe5ZBNaQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.58.0 + bs58: ^4.0.1 + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-chains': 1.1.0 + '@solana/wallet-standard-features': 1.2.0 + '@solana/wallet-standard-util': 1.1.1 + '@solana/web3.js': 1.91.0 + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + bs58: 5.0.0 + dev: false + + /@solana/wallet-standard-wallet-adapter-react@1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@4.0.1)(react@18.2.0): + resolution: {integrity: sha512-bN6W4QkzenyjUoUz3sC5PAed+z29icGtPh9VSmLl1ZrRO7NbFB49a8uwUUVXNxhL/ZbMsyVKhb9bNj47/p8uhQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/wallet-adapter-base': '*' + react: '*' + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-wallet-adapter-base': 1.1.2(@solana/web3.js@1.91.0)(bs58@4.0.1) + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + react: 18.2.0 + transitivePeerDependencies: + - '@solana/web3.js' + - bs58 + dev: false + + /@solana/wallet-standard-wallet-adapter-react@1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0): + resolution: {integrity: sha512-bN6W4QkzenyjUoUz3sC5PAed+z29icGtPh9VSmLl1ZrRO7NbFB49a8uwUUVXNxhL/ZbMsyVKhb9bNj47/p8uhQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/wallet-adapter-base': '*' + react: '*' + dependencies: + '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.91.0) + '@solana/wallet-standard-wallet-adapter-base': 1.1.2(@solana/web3.js@1.91.0)(bs58@5.0.0) + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + react: 18.2.0 + transitivePeerDependencies: + - '@solana/web3.js' + - bs58 + dev: false + + /@solana/wallet-standard-wallet-adapter@1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0): + resolution: {integrity: sha512-lCwoA+vhPfmvjcmJOhSRV94wouVWTfJv1Z7eeULAe+GodCeKA/0T9/uBYgXHUxQjLHd7o8LpLYIkfm+xjA5sMA==} + engines: {node: '>=16'} + dependencies: + '@solana/wallet-standard-wallet-adapter-base': 1.1.2(@solana/web3.js@1.91.0)(bs58@5.0.0) + '@solana/wallet-standard-wallet-adapter-react': 1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - bs58 + - react + dev: false + + /@solana/wallet-standard@1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0): + resolution: {integrity: sha512-o7wk+zr5/QgyE393cGRC04K1hacR4EkBu3MB925ddaLvCVaXjwr2asgdviGzN9PEm3FiEJp3sMmMKYHFnwOITQ==} + engines: {node: '>=16'} + dependencies: + '@solana/wallet-standard-core': 1.1.1 + '@solana/wallet-standard-wallet-adapter': 1.1.2(@solana/wallet-adapter-base@0.9.23)(@solana/web3.js@1.91.0)(bs58@5.0.0)(react@18.2.0) + transitivePeerDependencies: + - '@solana/wallet-adapter-base' + - '@solana/web3.js' + - bs58 + - react + dev: false + + /@solana/web3.js@1.91.0: + resolution: {integrity: sha512-iqOL9RjNra0TM9BbQWxBRUcZUiNmCJJO+vXLp0GiELUJhbNAoE/K6OV6s+gNEsC13dslvKtfA4mmzRnZNWXtIQ==} + dependencies: + '@babel/runtime': 7.24.0 + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.0 + node-fetch: 2.7.0 + rpc-websockets: 7.9.0 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.0): + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.0): + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: true + + /@svgr/babel-preset@8.1.0(@babel/core@7.24.0): + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.0) + dev: true + + /@svgr/core@8.1.0(typescript@5.3.3): + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.24.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.0) + camelcase: 6.3.0 + cosmiconfig: 8.3.6(typescript@5.3.3) + snake-case: 3.0.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@svgr/hast-util-to-babel-ast@8.0.0: + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + dependencies: + '@babel/types': 7.24.0 + entities: 4.5.0 + dev: true + + /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@babel/core': 7.24.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.24.0) + '@svgr/core': 8.1.0(typescript@5.3.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.3.3): + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@svgr/core': 8.1.0(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.3.3) + deepmerge: 4.3.1 + svgo: 3.2.0 + transitivePeerDependencies: + - typescript + dev: true + + /@svgr/webpack@8.1.0(typescript@5.3.3): + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.24.0) + '@babel/preset-env': 7.24.0(@babel/core@7.24.0) + '@babel/preset-react': 7.23.3(@babel/core@7.24.0) + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0) + '@svgr/core': 8.1.0(typescript@5.3.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@swc-node/core@1.13.0(@swc/core@1.3.107)(@swc/types@0.1.5): + resolution: {integrity: sha512-lFPD4nmy4ifAOVMChFjwlpXN5KQXvegqeyuzz1KQz42q1lf+cL3Qux1/GteGuZjh8HC+Rj1RdNrHpE/MCfJSTw==} + engines: {node: '>= 10'} + peerDependencies: + '@swc/core': '>= 1.3' + '@swc/types': '>= 0.1' + dependencies: + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + '@swc/types': 0.1.5 + dev: true + + /@swc-node/register@1.8.0(@swc/core@1.3.107)(@swc/types@0.1.5)(typescript@5.3.3): + resolution: {integrity: sha512-8K3589HoBSmVmrEVrtr4K5sWEithpGDzcFGic81OW0A9sZY38IV5EGRODQWCk0SBDyLhaF+pid120vJAtsHo1A==} + peerDependencies: + '@swc/core': '>= 1.3' + typescript: '>= 4.3' + dependencies: + '@swc-node/core': 1.13.0(@swc/core@1.3.107)(@swc/types@0.1.5) + '@swc-node/sourcemap-support': 0.4.0 + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + colorette: 2.0.20 + debug: 4.3.4 + pirates: 4.0.6 + tslib: 2.6.2 + typescript: 5.3.3 + transitivePeerDependencies: + - '@swc/types' + - supports-color + dev: true + + /@swc-node/sourcemap-support@0.4.0: + resolution: {integrity: sha512-weuRmYTO+4yOtHtPZHXlPdA1dJJJp3QOoZAFZ6uZidu992F2X5v1fQdnb26xs1o3Ex/e2sYhRyY5R6NGNuoATQ==} + dependencies: + source-map-support: 0.5.21 + tslib: 2.6.2 + dev: true + + /@swc/cli@0.1.65(@swc/core@1.3.107): + resolution: {integrity: sha512-4NcgsvJVHhA7trDnMmkGLLvWMHu2kSy+qHx6QwRhhJhdiYdNUrhdp+ERxen73sYtaeEOYeLJcWrQ60nzKi6rpg==} + engines: {node: '>= 12.13'} + hasBin: true + peerDependencies: + '@swc/core': ^1.2.66 + chokidar: ^3.5.1 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + '@mole-inc/bin-wrapper': 8.0.1 + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + commander: 7.2.0 + fast-glob: 3.2.7 + minimatch: 9.0.3 + semver: 7.6.0 + slash: 3.0.0 + source-map: 0.7.4 + dev: true + + /@swc/core-darwin-arm64@1.3.107: + resolution: {integrity: sha512-47tD/5vSXWxPd0j/ZllyQUg4bqalbQTsmqSw0J4dDdS82MWqCAwUErUrAZPRjBkjNQ6Kmrf5rpCWaGTtPw+ngw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.107: + resolution: {integrity: sha512-hwiLJ2ulNkBGAh1m1eTfeY1417OAYbRGcb/iGsJ+LuVLvKAhU/itzsl535CvcwAlt2LayeCFfcI8gdeOLeZa9A==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.107: + resolution: {integrity: sha512-I2wzcC0KXqh0OwymCmYwNRgZ9nxX7DWnOOStJXV3pS0uB83TXAkmqd7wvMBuIl9qu4Hfomi9aDM7IlEEn9tumQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.107: + resolution: {integrity: sha512-HWgnn7JORYlOYnGsdunpSF8A+BCZKPLzLtEUA27/M/ZuANcMZabKL9Zurt7XQXq888uJFAt98Gy+59PU90aHKg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.107: + resolution: {integrity: sha512-vfPF74cWfAm8hyhS8yvYI94ucMHIo8xIYU+oFOW9uvDlGQRgnUf/6DEVbLyt/3yfX5723Ln57U8uiMALbX5Pyw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.107: + resolution: {integrity: sha512-uBVNhIg0ip8rH9OnOsCARUFZ3Mq3tbPHxtmWk9uAa5u8jQwGWeBx5+nTHpDOVd3YxKb6+5xDEI/edeeLpha/9g==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.107: + resolution: {integrity: sha512-mvACkUvzSIB12q1H5JtabWATbk3AG+pQgXEN95AmEX2ZA5gbP9+B+mijsg7Sd/3tboHr7ZHLz/q3SHTvdFJrEw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.107: + resolution: {integrity: sha512-J3P14Ngy/1qtapzbguEH41kY109t6DFxfbK4Ntz9dOWNuVY3o9/RTB841ctnJk0ZHEG+BjfCJjsD2n8H5HcaOA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.107: + resolution: {integrity: sha512-ZBUtgyjTHlz8TPJh7kfwwwFma+ktr6OccB1oXC8fMSopD0AxVnQasgun3l3099wIsAB9eEsJDQ/3lDkOLs1gBA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.107: + resolution: {integrity: sha512-Eyzo2XRqWOxqhE1gk9h7LWmUf4Bp4Xn2Ttb0ayAXFp6YSTxQIThXcT9kipXZqcpxcmDwoq8iWbbf2P8XL743EA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.107(@swc/helpers@0.5.6): + resolution: {integrity: sha512-zKhqDyFcTsyLIYK1iEmavljZnf4CCor5pF52UzLAz4B6Nu/4GLU+2LQVAf+oRHjusG39PTPjd2AlRT3f3QWfsQ==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.6 + '@swc/types': 0.1.5 + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.107 + '@swc/core-darwin-x64': 1.3.107 + '@swc/core-linux-arm-gnueabihf': 1.3.107 + '@swc/core-linux-arm64-gnu': 1.3.107 + '@swc/core-linux-arm64-musl': 1.3.107 + '@swc/core-linux-x64-gnu': 1.3.107 + '@swc/core-linux-x64-musl': 1.3.107 + '@swc/core-win32-arm64-msvc': 1.3.107 + '@swc/core-win32-ia32-msvc': 1.3.107 + '@swc/core-win32-x64-msvc': 1.3.107 + dev: true + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true + + /@swc/helpers@0.5.6: + resolution: {integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==} + dependencies: + tslib: 2.6.2 + dev: true + + /@swc/types@0.1.5: + resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + dev: true + + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: true + + /@tabler/icons-react@2.47.0(react@18.2.0): + resolution: {integrity: sha512-iqly2FvCF/qUbgmvS8E40rVeYY7laltc5GUjRxQj59DuX0x/6CpKHTXt86YlI2whg4czvd/c8Ce8YR08uEku0g==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + '@tabler/icons': 2.47.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@tabler/icons@2.47.0: + resolution: {integrity: sha512-4w5evLh+7FUUiA1GucvGj2ReX2TvOjEr4ejXdwL/bsjoSkof6r1gQmzqI+VHrE2CpJpB3al7bCTulOkFa/RcyA==} + dev: false + + /@tanstack/query-core@5.25.0: + resolution: {integrity: sha512-vlobHP64HTuSE68lWF1mEhwSRC5Q7gaT+a/m9S+ItuN+ruSOxe1rFnR9j0ACWQ314BPhBEVKfBQ6mHL0OWfdbQ==} + dev: false + + /@tanstack/react-query@5.25.0(react@18.2.0): + resolution: {integrity: sha512-u+n5R7mLO7RmeiIonpaCRVXNRWtZEef/aVZ/XGWRPa7trBIvGtzlfo0Ah7ZtnTYfrKEVwnZ/tzRCBcoiqJ/tFw==} + peerDependencies: + react: ^18.0.0 + dependencies: + '@tanstack/query-core': 5.25.0 + react: 18.2.0 + dev: false + + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.24.0 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.24.0 + '@testing-library/dom': 9.3.4 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@tokenizer/token@0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 + dev: true + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + dev: true + + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 18.16.9 + dev: true + + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 18.16.9 + '@types/responselike': 1.0.3 + dev: true + + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + dependencies: + '@types/express-serve-static-core': 4.17.43 + '@types/node': 18.16.9 + dev: true + + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 18.16.9 + + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 8.56.5 + '@types/estree': 1.0.5 + dev: true + + /@types/eslint@8.56.5: + resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + dependencies: + '@types/node': 18.16.9 + '@types/qs': 6.9.12 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: true + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.43 + '@types/qs': 6.9.12 + '@types/serve-static': 1.15.5 + dev: true + + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: true + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true + + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 18.16.9 + '@types/tough-cookie': 4.0.5 + parse5: 7.1.2 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true + + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: true + + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: false + + /@types/node@18.16.9: + resolution: {integrity: sha512-IeB32oIV4oGArLrd7znD2rkHQ6EDCM+2Sr76dJnrHwv9OHBTTM6nuDLK9bmikXzPa0ZlWMWtRGo/Uw4mrzQedA==} + + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: true + + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + + /@types/qs@6.9.12: + resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} + dev: true + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true + + /@types/react-dom@18.2.14: + resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==} + dependencies: + '@types/react': 18.2.33 + dev: true + + /@types/react@18.2.33: + resolution: {integrity: sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 + + /@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 18.16.9 + dev: true + + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + dependencies: + '@types/express': 4.17.21 + dev: true + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 18.16.9 + dev: true + + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true + + /@types/ws@7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + dependencies: + '@types/node': 18.16.9 + dev: false + + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 18.16.9 + dev: true + + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + /@types/yargs@15.0.19: + resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} + dependencies: + '@types/yargs-parser': 21.0.3 + dev: false + + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + dependencies: + '@types/yargs-parser': 21.0.3 + + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.48.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.48.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.21.0(eslint@8.48.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.48.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true + + /@typescript-eslint/type-utils@6.21.0(eslint@8.48.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.48.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.21.0(eslint@8.48.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + eslint: 8.48.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@wallet-standard/app@1.0.1: + resolution: {integrity: sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/base@1.0.1: + resolution: {integrity: sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w==} + engines: {node: '>=16'} + dev: false + + /@wallet-standard/core@1.0.3: + resolution: {integrity: sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/app': 1.0.1 + '@wallet-standard/base': 1.0.1 + '@wallet-standard/features': 1.0.3 + '@wallet-standard/wallet': 1.0.1 + dev: false + + /@wallet-standard/features@1.0.3: + resolution: {integrity: sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@wallet-standard/wallet@1.0.1: + resolution: {integrity: sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ==} + engines: {node: '>=16'} + dependencies: + '@wallet-standard/base': 1.0.1 + dev: false + + /@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true + + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: true + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: true + + /@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + dev: true + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: true + + /@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + dev: true + + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: true + + /@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-opt': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/wast-printer': 1.11.6 + dev: true + + /@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + dev: true + + /@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.3): + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.90.3) + dev: true + + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.3): + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.90.3) + dev: true + + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.90.3): + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.90.3) + dev: true + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + + /@yarnpkg/lockfile@1.1.0: + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + dev: true + + /@yarnpkg/parsers@3.0.0-rc.46: + resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} + engines: {node: '>=14.15.0'} + dependencies: + js-yaml: 3.14.1 + tslib: 2.6.2 + dev: true + + /@zkochan/js-yaml@0.0.6: + resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: false + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.11.3 + acorn-walk: 8.3.2 + dev: true + + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + dev: false + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-fragments@0.2.1: + resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} + dependencies: + colorette: 1.4.0 + slice-ansi: 2.1.0 + strip-ansi: 5.2.0 + dev: false + + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /appdirsjs@1.2.7: + resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + dev: false + + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: true + + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-union@3.0.1: + resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} + engines: {node: '>=12'} + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: true + + /ast-types@0.15.2: + resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + dev: false + + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: false + + /async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + dev: false + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /autoprefixer@10.4.18(postcss@8.4.35): + resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001596 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + + /axe-core@4.8.4: + resolution: {integrity: sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==} + engines: {node: '>=4'} + dev: true + + /axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + dependencies: + follow-redirects: 1.15.5 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: true + + /babel-core@7.0.0-bridge.0(@babel/core@7.24.0): + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + dev: false + + /babel-jest@29.7.0(@babel/core@7.24.0): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.24.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.24.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.90.3): + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + dependencies: + '@babel/core': 7.24.0 + find-cache-dir: 4.0.0 + schema-utils: 4.2.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /babel-plugin-const-enum@1.2.0(@babel/core@7.24.0): + resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/traverse': 7.24.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 + dev: true + + /babel-plugin-macros@2.8.0: + resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} + dependencies: + '@babel/runtime': 7.24.0 + cosmiconfig: 6.0.0 + resolve: 1.22.8 + dev: true + + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.24.0): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + core-js-compat: 3.36.0 + transitivePeerDependencies: + - supports-color + + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) + transitivePeerDependencies: + - supports-color + + /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.0): + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + dependencies: + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) + transitivePeerDependencies: + - '@babel/core' + dev: false + + /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.24.0): + resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} + peerDependencies: + '@babel/core': ^7 + '@babel/traverse': ^7 + peerDependenciesMeta: + '@babel/traverse': + optional: true + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.24.0): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + dev: false + + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + dev: false + + /bin-check@4.1.0: + resolution: {integrity: sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + executable: 4.1.1 + dev: true + + /bin-version-check@5.1.0: + resolution: {integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==} + engines: {node: '>=12'} + dependencies: + bin-version: 6.0.0 + semver: 7.6.0 + semver-truncate: 3.0.0 + dev: true + + /bin-version@6.0.0: + resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + find-versions: 5.1.0 + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + dev: false + + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001596 + electron-to-chromium: 1.4.698 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + dependencies: + base-x: 3.0.9 + dev: false + + /bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + dependencies: + base-x: 4.0.0 + dev: false + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer-layout@1.2.2: + resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} + engines: {node: '>=4.5'} + dev: false + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.8.0 + + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.6.0 + dev: true + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true + + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 + + /caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + dependencies: + callsites: 2.0.0 + dev: false + + /caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + dependencies: + caller-callsite: 2.0.0 + dev: false + + /callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001596 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite@1.0.30001596: + resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==} + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@types/node': 18.16.9 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + dev: false + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /chromium-edge-launcher@1.0.0: + resolution: {integrity: sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==} + dependencies: + '@types/node': 18.16.9 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: false + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + + /cli-spinners@2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} + engines: {node: '>=6'} + dev: false + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: false + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /columnify@1.6.0: + resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} + engines: {node: '>=8.0.0'} + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: false + + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: true + + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + dev: false + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-webpack-plugin@10.2.4(webpack@5.90.3): + resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} + engines: {node: '>= 12.20.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.2.7 + glob-parent: 6.0.2 + globby: 12.2.0 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /core-js-compat@3.36.0: + resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} + dependencies: + browserslist: 4.23.0 + + /core-js-pure@3.36.0: + resolution: {integrity: sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==} + requiresBuild: true + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + dev: false + + /cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /create-jest@29.7.0(@types/node@18.16.9)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypto-hash@1.3.0: + resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==} + engines: {node: '>=8'} + dev: false + + /css-declaration-sorter@7.1.1(postcss@8.4.35): + resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.35 + dev: true + + /css-loader@6.10.0(webpack@5.90.3): + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) + postcss-modules-scope: 3.1.1(postcss@8.4.35) + postcss-modules-values: 4.0.0(postcss@8.4.35) + postcss-value-parser: 4.2.0 + semver: 7.6.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /css-minimizer-webpack-plugin@5.0.1(esbuild@0.19.12)(webpack@5.90.3): + resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + cssnano: 6.1.0(postcss@8.4.35) + esbuild: 0.19.12 + jest-worker: 29.7.0 + postcss: 8.4.35 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + css-declaration-sorter: 7.1.1(postcss@8.4.35) + cssnano-utils: 4.0.2(postcss@8.4.35) + postcss: 8.4.35 + postcss-calc: 9.0.1(postcss@8.4.35) + postcss-colormin: 6.1.0(postcss@8.4.35) + postcss-convert-values: 6.1.0(postcss@8.4.35) + postcss-discard-comments: 6.0.2(postcss@8.4.35) + postcss-discard-duplicates: 6.0.3(postcss@8.4.35) + postcss-discard-empty: 6.0.3(postcss@8.4.35) + postcss-discard-overridden: 6.0.2(postcss@8.4.35) + postcss-merge-longhand: 6.0.4(postcss@8.4.35) + postcss-merge-rules: 6.1.0(postcss@8.4.35) + postcss-minify-font-values: 6.0.3(postcss@8.4.35) + postcss-minify-gradients: 6.0.3(postcss@8.4.35) + postcss-minify-params: 6.1.0(postcss@8.4.35) + postcss-minify-selectors: 6.0.3(postcss@8.4.35) + postcss-normalize-charset: 6.0.2(postcss@8.4.35) + postcss-normalize-display-values: 6.0.2(postcss@8.4.35) + postcss-normalize-positions: 6.0.2(postcss@8.4.35) + postcss-normalize-repeat-style: 6.0.2(postcss@8.4.35) + postcss-normalize-string: 6.0.2(postcss@8.4.35) + postcss-normalize-timing-functions: 6.0.2(postcss@8.4.35) + postcss-normalize-unicode: 6.1.0(postcss@8.4.35) + postcss-normalize-url: 6.0.2(postcss@8.4.35) + postcss-normalize-whitespace: 6.0.2(postcss@8.4.35) + postcss-ordered-values: 6.0.2(postcss@8.4.35) + postcss-reduce-initial: 6.1.0(postcss@8.4.35) + postcss-reduce-transforms: 6.0.2(postcss@8.4.35) + postcss-svgo: 6.0.3(postcss@8.4.35) + postcss-unique-selectors: 6.0.3(postcss@8.4.35) + dev: true + + /cssnano-utils@4.0.2(postcss@8.4.35): + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /cssnano@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-preset-default: 6.1.0(postcss@8.4.35) + lilconfig: 3.1.1 + postcss: 8.4.35 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true + + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.14 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + + /delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /denodeify@1.2.1: + resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} + dev: false + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + /deprecated-react-native-prop-types@5.0.0: + resolution: {integrity: sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==} + engines: {node: '>=18'} + dependencies: + '@react-native/normalize-colors': 0.73.2 + invariant: 2.2.4 + prop-types: 15.8.1 + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + dependencies: + address: 1.2.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true + + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.24.0 + csstype: 3.1.3 + dev: false + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + dev: true + + /dotenv@16.3.2: + resolution: {integrity: sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==} + engines: {node: '>=12'} + dev: true + + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: false + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.7 + dev: true + + /electron-to-chromium@1.4.698: + resolution: {integrity: sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ==} + + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve@5.15.1: + resolution: {integrity: sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + + /errorhandler@1.5.1: + resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} + engines: {node: '>= 0.8'} + dependencies: + accepts: 1.3.8 + escape-html: 1.0.3 + dev: false + + /es-abstract@1.22.5: + resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.1 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.5 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.14 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.1 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.1 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + dev: false + + /es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + dependencies: + es6-promise: 4.2.8 + dev: false + + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.48.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.48.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.48.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.48.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.21.0)(eslint@8.48.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.48.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.48.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.48.0) + has: 1.0.4 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.7 + resolve: 1.22.8 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.48.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.24.0 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.4 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.48.0 + has: 1.0.4 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.48.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.48.0 + dev: true + + /eslint-plugin-react@7.32.2(eslint@8.48.0): + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.3 + doctrine: 2.1.0 + eslint: 8.48.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.48.0: + resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.48.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + 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.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: false + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + /executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + + /express@4.18.3: + resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /ext-list@2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.52.0 + dev: true + + /ext-name@5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: true + + /eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-glob@3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + dev: false + + /fast-xml-parser@4.3.5: + resolution: {integrity: sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + dev: false + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /file-type@17.1.6: + resolution: {integrity: sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 7.0.0 + token-types: 5.0.1 + dev: true + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /filename-reserved-regex@3.0.0: + resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /filenamify@5.1.1: + resolution: {integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==} + engines: {node: '>=12.20'} + dependencies: + filename-reserved-regex: 3.0.0 + strip-outer: 2.0.0 + trim-repeated: 2.0.0 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + dev: false + + /find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + dev: true + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: true + + /find-versions@5.1.0: + resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} + engines: {node: '>=12'} + dependencies: + semver-regex: 4.0.5 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + dev: false + + /flow-parser@0.206.0: + resolution: {integrity: sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==} + engines: {node: '>=0.4.0'} + dev: false + + /follow-redirects@1.15.5: + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.3.3)(webpack@5.90.3): + resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==} + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + vue-template-compiler: '*' + webpack: ^5.11.0 + peerDependenciesMeta: + vue-template-compiler: + optional: true + dependencies: + '@babel/code-frame': 7.23.5 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 7.1.0 + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.3 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.3.0 + semver: 7.6.0 + tapable: 2.2.1 + typescript: 5.3.3 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.1 + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + dev: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@12.2.0: + resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + array-union: 3.0.1 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + + /harmony-reflect@1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hermes-estree@0.15.0: + resolution: {integrity: sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==} + dev: false + + /hermes-estree@0.19.1: + resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} + dev: false + + /hermes-parser@0.15.0: + resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} + dependencies: + hermes-estree: 0.15.0 + dev: false + + /hermes-parser@0.19.1: + resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} + dependencies: + hermes-estree: 0.19.1 + dev: false + + /hermes-profile-transformer@0.0.6: + resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} + engines: {node: '>=8'} + dependencies: + source-map: 0.7.4 + dev: false + + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + lru-cache: 10.2.0 + dev: true + + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: true + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.21 + '@types/http-proxy': 1.17.14 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.5 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.8 + opener: 1.5.2 + portfinder: 1.0.32 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-utils@5.1.0(postcss@8.4.35): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + dev: true + + /identity-obj-proxy@3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} + dependencies: + harmony-reflect: 1.6.2 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true + dependencies: + queue: 6.0.2 + dev: false + + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + dev: true + + /import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.1 + side-channel: 1.0.6 + dev: true + + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.1 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + dev: false + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.14 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.7 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + dev: false + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + /isomorphic-ws@4.0.1(ws@7.5.9): + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + dependencies: + ws: 7.5.9 + dev: false + + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jayson@4.1.0: + resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.9) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.0.4 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-cli@29.7.0(@types/node@18.16.9)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jest-config@29.7.0(@types/node@18.16.9)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.24.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + babel-jest: 29.7.0(@babel/core@7.24.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@swc/core@1.3.107)(@types/node@18.16.9)(typescript@5.3.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 18.16.9 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 18.16.9 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.23.5 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + jest-util: 29.7.0 + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.24.0 + '@babel/generator': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/types': 7.24.0 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.16.9 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.16.9 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 18.16.9 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + /jest@29.7.0(@types/node@18.16.9)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /joi@17.12.2: + resolution: {integrity: sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: false + + /jotai@2.7.0(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-4qsyFKu4MprI39rj2uoItyhu24NoCHzkOV7z70PQr65SpzV6CSyhQvVIfbNlNqOIOspNMdf5OK+kTXLvqe63Jw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + dev: false + + /js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsc-android@250231.0.0: + resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} + dev: false + + /jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + dev: false + + /jscodeshift@0.14.0(@babel/preset-env@7.24.0): + resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) + '@babel/preset-env': 7.24.0(@babel/core@7.24.0) + '@babel/preset-flow': 7.24.0(@babel/core@7.24.0) + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/register': 7.23.7(@babel/core@7.24.0) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.0) + chalk: 4.1.2 + flow-parser: 0.206.0 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.21.5 + temp: 0.8.4 + write-file-atomic: 2.4.3 + transitivePeerDependencies: + - supports-color + dev: false + + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.11.3 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: false + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.0 + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + /klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + dependencies: + picocolors: 1.0.0 + shell-quote: 1.8.1 + dev: true + + /less-loader@11.1.0(less@4.1.3)(webpack@5.90.3): + resolution: {integrity: sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==} + engines: {node: '>= 14.15.0'} + peerDependencies: + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + dependencies: + klona: 2.0.6 + less: 4.1.3 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /less@4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /license-webpack-plugin@4.0.2(webpack@5.90.3): + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} + peerDependencies: + webpack: '*' + peerDependenciesMeta: + webpack: + optional: true + dependencies: + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-sources: 3.2.3 + dev: true + + /lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + dependencies: + debug: 2.6.9 + marky: 1.2.5 + transitivePeerDependencies: + - supports-color + dev: false + + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lines-and-columns@2.0.4: + resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + /logkitty@0.7.1: + resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} + hasBin: true + dependencies: + ansi-fragments: 0.2.1 + dayjs: 1.11.10 + yargs: 15.4.1 + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + + /marky@1.2.5: + resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + dev: false + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.5 + dev: true + + /memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: false + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + /merge-options@3.0.4: + resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + is-plain-obj: 2.1.0 + dev: false + optional: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /metro-babel-transformer@0.80.6: + resolution: {integrity: sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==} + engines: {node: '>=18'} + dependencies: + '@babel/core': 7.24.0 + hermes-parser: 0.19.1 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /metro-cache-key@0.80.6: + resolution: {integrity: sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==} + engines: {node: '>=18'} + dev: false + + /metro-cache@0.80.6: + resolution: {integrity: sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==} + engines: {node: '>=18'} + dependencies: + metro-core: 0.80.6 + rimraf: 3.0.2 + dev: false + + /metro-config@0.80.6: + resolution: {integrity: sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==} + engines: {node: '>=18'} + dependencies: + connect: 3.7.0 + cosmiconfig: 5.2.1 + jest-validate: 29.7.0 + metro: 0.80.6 + metro-cache: 0.80.6 + metro-core: 0.80.6 + metro-runtime: 0.80.6 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /metro-core@0.80.6: + resolution: {integrity: sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==} + engines: {node: '>=18'} + dependencies: + lodash.throttle: 4.1.1 + metro-resolver: 0.80.6 + dev: false + + /metro-file-map@0.80.6: + resolution: {integrity: sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==} + engines: {node: '>=18'} + dependencies: + anymatch: 3.1.3 + debug: 2.6.9 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.5 + node-abort-controller: 3.1.1 + nullthrows: 1.1.1 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: false + + /metro-minify-terser@0.80.6: + resolution: {integrity: sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==} + engines: {node: '>=18'} + dependencies: + terser: 5.29.1 + dev: false + + /metro-resolver@0.80.6: + resolution: {integrity: sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==} + engines: {node: '>=18'} + dev: false + + /metro-runtime@0.80.6: + resolution: {integrity: sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==} + engines: {node: '>=18'} + dependencies: + '@babel/runtime': 7.24.0 + dev: false + + /metro-source-map@0.80.6: + resolution: {integrity: sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==} + engines: {node: '>=18'} + dependencies: + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 + invariant: 2.2.4 + metro-symbolicate: 0.80.6 + nullthrows: 1.1.1 + ob1: 0.80.6 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /metro-symbolicate@0.80.6: + resolution: {integrity: sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==} + engines: {node: '>=18'} + hasBin: true + dependencies: + invariant: 2.2.4 + metro-source-map: 0.80.6 + nullthrows: 1.1.1 + source-map: 0.5.7 + through2: 2.0.5 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /metro-transform-plugins@0.80.6: + resolution: {integrity: sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==} + engines: {node: '>=18'} + dependencies: + '@babel/core': 7.24.0 + '@babel/generator': 7.23.6 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /metro-transform-worker@0.80.6: + resolution: {integrity: sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==} + engines: {node: '>=18'} + dependencies: + '@babel/core': 7.24.0 + '@babel/generator': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + metro: 0.80.6 + metro-babel-transformer: 0.80.6 + metro-cache: 0.80.6 + metro-cache-key: 0.80.6 + metro-minify-terser: 0.80.6 + metro-source-map: 0.80.6 + metro-transform-plugins: 0.80.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /metro@0.80.6: + resolution: {integrity: sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/core': 7.24.0 + '@babel/generator': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 2.6.9 + denodeify: 1.2.1 + error-stack-parser: 2.1.4 + graceful-fs: 4.2.11 + hermes-parser: 0.19.1 + image-size: 1.1.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.80.6 + metro-cache: 0.80.6 + metro-cache-key: 0.80.6 + metro-config: 0.80.6 + metro-core: 0.80.6 + metro-file-map: 0.80.6 + metro-resolver: 0.80.6 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 + metro-symbolicate: 0.80.6 + metro-transform-plugins: 0.80.6 + metro-transform-worker: 0.80.6 + mime-types: 2.1.35 + node-fetch: 2.7.0 + nullthrows: 1.1.1 + rimraf: 3.0.2 + serialize-error: 2.1.0 + source-map: 0.5.7 + strip-ansi: 6.0.1 + throat: 5.0.0 + ws: 7.5.9 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: false + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + + /mini-css-extract-plugin@2.4.7(webpack@5.90.3): + resolution: {integrity: sha512-euWmddf0sk9Nv1O0gfeeUAvAkoSlWncNLF77C0TP2+WoPvy8mAHKOzMajcCz2dzvyt3CNgxb1obIEVFIRxaipg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.2.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms@2.1.1: + resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.3.0 + dev: true + optional: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + + /nocache@3.0.4: + resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} + engines: {node: '>=12.0.0'} + dev: false + + /node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + + /node-dir@0.1.17: + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} + dependencies: + minimatch: 3.1.2 + dev: false + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-gyp-build@4.8.0: + resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + hasBin: true + requiresBuild: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + /node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + /node-stream-zip@1.15.0: + resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} + engines: {node: '>=0.12.0'} + dev: false + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /npm-package-arg@11.0.1: + resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + proc-log: 3.0.0 + semver: 7.6.0 + validate-npm-package-name: 5.0.0 + dev: true + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + dev: false + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /nx@18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107): + resolution: {integrity: sha512-TUaR3xpsi4dNPVv72uCQAr3l4MkX7jn4NiXu1ZJ8u1QSwFReLSiCGfRwZ6d5Ji2sPXVACmgpywFtsBPF2+yLig==} + hasBin: true + requiresBuild: true + peerDependencies: + '@swc-node/register': ^1.8.0 + '@swc/core': ^1.3.85 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + dependencies: + '@nrwl/tao': 18.1.0-beta.5(@swc-node/register@1.8.0)(@swc/core@1.3.107) + '@swc-node/register': 1.8.0(@swc/core@1.3.107)(@swc/types@0.1.5)(typescript@5.3.3) + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.0-rc.46 + '@zkochan/js-yaml': 0.0.6 + axios: 1.6.7 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 8.0.1 + dotenv: 16.3.2 + dotenv-expand: 10.0.0 + enquirer: 2.3.6 + figures: 3.2.0 + flat: 5.0.2 + fs-extra: 11.2.0 + ignore: 5.3.1 + jest-diff: 29.7.0 + js-yaml: 4.1.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.4 + minimatch: 9.0.3 + node-machine-id: 1.1.12 + npm-run-path: 4.0.1 + open: 8.4.2 + ora: 5.3.0 + semver: 7.6.0 + string-width: 4.2.3 + strong-log-transformer: 2.1.0 + tar-stream: 2.2.0 + tmp: 0.2.3 + tsconfig-paths: 4.2.0 + tslib: 2.6.2 + yargs: 17.7.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@nx/nx-darwin-arm64': 18.1.0-beta.5 + '@nx/nx-darwin-x64': 18.1.0-beta.5 + '@nx/nx-freebsd-x64': 18.1.0-beta.5 + '@nx/nx-linux-arm-gnueabihf': 18.1.0-beta.5 + '@nx/nx-linux-arm64-gnu': 18.1.0-beta.5 + '@nx/nx-linux-arm64-musl': 18.1.0-beta.5 + '@nx/nx-linux-x64-gnu': 18.1.0-beta.5 + '@nx/nx-linux-x64-musl': 18.1.0-beta.5 + '@nx/nx-win32-arm64-msvc': 18.1.0-beta.5 + '@nx/nx-win32-x64-msvc': 18.1.0-beta.5 + transitivePeerDependencies: + - debug + dev: true + + /ob1@0.80.6: + resolution: {integrity: sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==} + engines: {node: '>=18'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + + /open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} + engines: {node: '>=8'} + dependencies: + is-wsl: 1.1.0 + dev: false + + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: false + + /os-filter-obj@2.0.0: + resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==} + engines: {node: '>=4'} + dependencies: + arch: 2.2.0 + dev: true + + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: true + + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /parse5@4.0.0: + resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /peek-readable@5.0.0: + resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} + engines: {node: '>=14.16'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + /pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + dev: false + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + dependencies: + find-up: 6.3.0 + dev: true + + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + + /postcss-calc@9.0.1(postcss@8.4.35): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-duplicates@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-empty@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-overridden@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-import@14.1.0(postcss@8.4.35): + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.35 + dev: true + + /postcss-loader@6.2.1(postcss@8.4.35)(webpack@5.90.3): + resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + dependencies: + cosmiconfig: 7.1.0 + klona: 2.0.6 + postcss: 8.4.35 + semver: 7.6.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /postcss-merge-longhand@6.0.4(postcss@8.4.35): + resolution: {integrity: sha512-vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.0(postcss@8.4.35) + dev: true + + /postcss-merge-rules@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.2(postcss@8.4.35) + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-minify-font-values@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.2(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + cssnano-utils: 4.0.2(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-mixins@9.0.4(postcss@8.4.35): + resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==} + engines: {node: '>=14.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + fast-glob: 3.3.2 + postcss: 8.4.35 + postcss-js: 4.0.1(postcss@8.4.35) + postcss-simple-vars: 7.0.1(postcss@8.4.35) + sugarss: 4.0.1(postcss@8.4.35) + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-modules-local-by-default@4.0.4(postcss@8.4.35): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.1.1(postcss@8.4.35): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.35): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-normalize-charset@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-normalize-display-values@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-utils: 4.0.2(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-preset-mantine@1.13.0(postcss@8.4.35): + resolution: {integrity: sha512-1bv/mQz2K+/FixIMxYd83BYH7PusDZaI7LpUtKbb1l/5N5w6t1p/V9ONHfRJeeAZyfa6Xc+AtR+95VKdFXRH1g==} + peerDependencies: + postcss: '>=8.0.0' + dependencies: + postcss: 8.4.35 + postcss-mixins: 9.0.4(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) + dev: true + + /postcss-reduce-initial@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.35 + dev: true + + /postcss-reduce-transforms@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-simple-vars@7.0.1(postcss@8.4.35): + resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} + engines: {node: '>=14.0'} + peerDependencies: + postcss: ^8.2.1 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-svgo@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 + dev: true + + /postcss-unique-selectors@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /pretty-format@26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + dev: false + + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + + /proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + /promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + dependencies: + asap: 2.0.6 + dev: false + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + dev: true + optional: true + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + + /qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + dependencies: + inherits: 2.0.4 + dev: false + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /react-devtools-core@4.28.5: + resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} + dependencies: + shell-quote: 1.8.1 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + /react-native@0.73.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(react@18.2.0): + resolution: {integrity: sha512-iHgDArmF4CrhL0qTj+Rn+CBN5pZWUL9lUGl8ub+V9Hwu/vnzQQh8rTMVSwVd2sV6N76KjpE5a4TfIAHkpIHhKg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + react: 18.2.0 + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native-community/cli': 12.3.6 + '@react-native-community/cli-platform-android': 12.3.6 + '@react-native-community/cli-platform-ios': 12.3.6 + '@react-native/assets-registry': 0.73.1 + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.0) + '@react-native/community-cli-plugin': 0.73.17(@babel/core@7.24.0)(@babel/preset-env@7.24.0) + '@react-native/gradle-plugin': 0.73.4 + '@react-native/js-polyfills': 0.73.1 + '@react-native/normalize-colors': 0.73.2 + '@react-native/virtualized-lists': 0.73.4(react-native@0.73.5) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + base64-js: 1.5.1 + chalk: 4.1.2 + deprecated-react-native-prop-types: 5.0.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.80.6 + metro-source-map: 0.80.6 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 26.6.2 + promise: 8.3.0 + react: 18.2.0 + react-devtools-core: 4.28.5 + react-refresh: 0.14.0 + react-shallow-renderer: 16.15.0(react@18.2.0) + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.20 + ws: 6.2.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /react-number-format@5.3.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-maGHWmOvwYzyeRIpL0YC6drWqYaX6iFqjisdJXpZ+HzEtSEJsL6nqw4azTpF5Sm6SAvwUeAr7JY924Ebqq8EdA==} + peerDependencies: + react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-refresh@0.10.0: + resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: false + + /react-remove-scroll-bar@2.3.5(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-3cqjOqg6s0XbOjWvmasmqHch+RLxIEk2r/70rzGXuz3iIGQsQheEQyqYCBb5EECoD01Vo2SIbDqW4paLeLTASw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.33)(react@18.2.0) + tslib: 2.6.2 + dev: false + + /react-remove-scroll@2.5.7(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + react-remove-scroll-bar: 2.3.5(@types/react@18.2.33)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.33)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.1(@types/react@18.2.33)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.33)(react@18.2.0) + dev: false + + /react-router-dom@6.11.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.6.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.11.2(react@18.2.0) + dev: false + + /react-router@6.11.2(react@18.2.0): + resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==} + engines: {node: '>=14'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.6.2 + react: 18.2.0 + dev: false + + /react-shallow-renderer@16.15.0(react@18.2.0): + resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + object-assign: 4.1.1 + react: 18.2.0 + react-is: 18.2.0 + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-textarea-autosize@8.5.3(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.24.0 + react: 18.2.0 + use-composed-ref: 1.3.0(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.33)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.24.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + dependencies: + readable-stream: 3.6.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /readline@1.3.0: + resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + dev: false + + /recast@0.21.5: + resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} + engines: {node: '>= 4'} + dependencies: + ast-types: 0.15.2 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.2 + dev: false + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.8 + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.24.0 + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve.exports@1.1.0: + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} + dev: true + + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rpc-websockets@7.9.0: + resolution: {integrity: sha512-DwKewQz1IUA5wfLvgM8wDpPRcr+nWSxuFxx5CbrI2z/MyyZ4nXLM86TvIA+cI1ZAdqC8JIBR1mZR55dzaLU+Hw==} + dependencies: + '@babel/runtime': 7.24.0 + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.1: + resolution: {integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==} + dev: false + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sass-loader@12.6.0(sass@1.71.1)(webpack@5.90.3): + resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + dependencies: + klona: 2.0.6 + neo-async: 2.6.2 + sass: 1.71.1 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /sass@1.71.1: + resolution: {integrity: sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.0.2 + dev: true + + /sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + requiresBuild: true + dev: true + optional: true + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + + /scheduler@0.24.0-canary-efb381bbf-20230505: + resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + ajv-keywords: 5.1.0(ajv@8.12.0) + dev: true + + /secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + dev: true + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + dev: true + + /semver-regex@4.0.5: + resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} + engines: {node: '>=12'} + dev: true + + /semver-truncate@3.0.0: + resolution: {integrity: sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==} + engines: {node: '>=12'} + dependencies: + semver: 7.6.0 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + requiresBuild: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + /serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + dev: false + + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-favicon@2.5.0: + resolution: {integrity: sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==} + engines: {node: '>= 0.8.0'} + dependencies: + etag: 1.8.1 + fresh: 0.5.2 + ms: 2.1.1 + parseurl: 1.3.3 + safe-buffer: 5.1.1 + dev: false + + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + dev: false + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + + /sort-keys-length@1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} + dependencies: + sort-keys: 1.1.2 + dev: true + + /sort-keys@1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-loader@3.0.2(webpack@5.90.3): + resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + abab: 2.0.6 + iconv-lite: 0.6.3 + source-map-js: 1.0.2 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support@0.5.19: + resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + /stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + dependencies: + type-fest: 0.7.1 + dev: false + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.22.5 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-outer@2.0.0: + resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + + /strong-log-transformer@2.1.0: + resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} + engines: {node: '>=4'} + hasBin: true + dependencies: + duplexer: 0.1.2 + minimist: 1.2.8 + through: 2.3.8 + dev: true + + /strtok3@7.0.0: + resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + engines: {node: '>=14.16'} + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 5.0.0 + dev: true + + /style-loader@3.3.4(webpack@5.90.3): + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /stylehacks@6.1.0(postcss@8.4.35): + resolution: {integrity: sha512-ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /stylus-loader@7.1.3(stylus@0.59.0)(webpack@5.90.3): + resolution: {integrity: sha512-TY0SKwiY7D2kMd3UxaWKSf3xHF0FFN/FAfsSqfrhxRT/koXTwffq2cgEWDkLQz7VojMu7qEEHt5TlMjkPx9UDw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + stylus: '>=0.52.4' + webpack: ^5.0.0 + dependencies: + fast-glob: 3.3.2 + normalize-path: 3.0.0 + stylus: 0.59.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /stylus@0.59.0: + resolution: {integrity: sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==} + hasBin: true + dependencies: + '@adobe/css-tools': 4.3.3 + debug: 4.3.4 + glob: 7.2.3 + sax: 1.2.4 + source-map: 0.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /sudo-prompt@9.2.1: + resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} + dev: false + + /sugarss@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.35 + dev: true + + /superstruct@0.14.2: + resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==} + dev: false + + /superstruct@0.15.5: + resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==} + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + dev: true + + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + dev: false + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: false + + /temp@0.8.4: + resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} + engines: {node: '>=6.0.0'} + dependencies: + rimraf: 2.6.3 + dev: false + + /terser-webpack-plugin@5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.90.3): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + esbuild: 0.19.12 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.29.1 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /terser@5.29.1: + resolution: {integrity: sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + dev: false + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + + /timeago-react@3.0.6(react@18.2.0): + resolution: {integrity: sha512-4ywnCX3iFjdp84WPK7gt8s4n0FxXbYM+xv8hYL73p83dpcMxzmO+0W4xJuxflnkWNvum5aEaqTe6LZ3lUIudjQ==} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + timeago.js: 4.0.2 + dev: false + + /timeago.js@4.0.2: + resolution: {integrity: sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==} + dev: false + + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + /token-types@5.0.1: + resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} + engines: {node: '>=14.16'} + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: true + + /toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + dev: false + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.1 + dev: true + + /trim-repeated@2.0.0: + resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + + /ts-jest@29.1.2(@babel/core@7.24.0)(babel-jest@29.7.0)(esbuild@0.19.12)(jest@29.7.0)(typescript@5.3.3): + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.24.0 + babel-jest: 29.7.0(@babel/core@7.24.0) + bs-logger: 0.2.6 + esbuild: 0.19.12 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@18.16.9)(ts-node@10.9.1) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.6.0 + typescript: 5.3.3 + yargs-parser: 21.1.1 + dev: true + + /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.90.3): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.1 + micromatch: 4.0.5 + semver: 7.6.0 + source-map: 0.7.4 + typescript: 5.3.3 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /ts-node@10.9.1(@swc/core@1.3.107)(@types/node@18.16.9)(typescript@5.3.3): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@swc/core': 1.3.107(@swc/helpers@0.5.6) + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.16.9 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfig-paths-webpack-plugin@4.0.0: + resolution: {integrity: sha512-fw/7265mIWukrSHd0i+wSwx64kYUSAKPfxRDksjKIYTxSAp9W9/xcZVBF4Kl0eqQd5eBpAQ/oQrc5RyM/0c1GQ==} + engines: {node: '>=10.13.0'} + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.1 + tsconfig-paths: 4.2.0 + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + dev: false + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: false + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.5: + resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + + /typed-assert@1.0.9: + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + dependencies: + qs: 6.12.0 + dev: true + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /url-loader@4.1.1(webpack@5.90.3): + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + dependencies: + loader-utils: 2.0.4 + mime-types: 2.1.35 + schema-utils: 3.3.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use-callback-ref@1.3.1(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /use-composed-ref@1.3.0(react@18.2.0): + resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + dev: false + + /use-latest@1.2.1(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.33)(react@18.2.0) + dev: false + + /use-sidecar@1.1.2(@types/react@18.2.33)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.33 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.8.0 + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + dev: true + + /validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + builtins: 5.0.1 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + /vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + dev: false + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: true + + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /webpack-cli@5.1.4(webpack@5.90.3): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.3) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.3) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.90.3) + colorette: 2.0.20 + commander: 10.0.1 + cross-spawn: 7.0.3 + envinfo: 7.11.1 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-merge: 5.10.0 + dev: true + + /webpack-dev-middleware@5.3.3(webpack@5.90.3): + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.90.3): + resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.5 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.10 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.3 + graceful-fs: 4.2.11 + html-entities: 2.5.2 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.1.0 + launch-editor: 2.6.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.90.3) + webpack-dev-middleware: 5.3.3(webpack@5.90.3) + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: true + + /webpack-node-externals@3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} + engines: {node: '>=6'} + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-subresource-integrity@5.1.0(webpack@5.90.3): + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} + engines: {node: '>= 12'} + peerDependencies: + html-webpack-plugin: '>= 5.0.0-beta.1 < 6' + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + dependencies: + typed-assert: 1.0.9 + webpack: 5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + dev: true + + /webpack@5.90.3(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4): + resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.1 + es-module-lexer: 1.4.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.90.3) + watchpack: 2.4.0 + webpack-cli: 5.1.4(webpack@5.90.3) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + dev: false + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + dependencies: + graceful-fs: 4.2.11 + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: false + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws@6.2.2: + resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + dev: false + + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + + /ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + dev: false + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..b73cce6 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,20 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "rootDir": ".", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "es2015", + "module": "esnext", + "lib": ["es2020", "dom"], + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "baseUrl": ".", + "paths": {} + }, + "exclude": ["node_modules", "tmp"] +} diff --git a/web/.babelrc b/web/.babelrc new file mode 100644 index 0000000..88ee27b --- /dev/null +++ b/web/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@nx/react/babel", + { + "runtime": "automatic" + } + ] + ], + "plugins": [] +} diff --git a/web/.eslintrc.json b/web/.eslintrc.json new file mode 100644 index 0000000..c5bdb41 --- /dev/null +++ b/web/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["plugin:@nx/react", "../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/web/jest.config.ts b/web/jest.config.ts new file mode 100644 index 0000000..524c832 --- /dev/null +++ b/web/jest.config.ts @@ -0,0 +1,11 @@ +/* eslint-disable */ +export default { + displayName: 'web', + preset: '../jest.preset.js', + transform: { + '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest', + '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }], + }, + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], + coverageDirectory: '../coverage/web', +} diff --git a/web/postcss.config.cjs b/web/postcss.config.cjs new file mode 100644 index 0000000..6a68362 --- /dev/null +++ b/web/postcss.config.cjs @@ -0,0 +1,14 @@ +module.exports = { + plugins: { + 'postcss-preset-mantine': {}, + 'postcss-simple-vars': { + variables: { + 'mantine-breakpoint-xs': '36em', + 'mantine-breakpoint-sm': '48em', + 'mantine-breakpoint-md': '62em', + 'mantine-breakpoint-lg': '75em', + 'mantine-breakpoint-xl': '88em', + }, + }, + }, +} diff --git a/web/project.json b/web/project.json new file mode 100644 index 0000000..6cfd274 --- /dev/null +++ b/web/project.json @@ -0,0 +1,77 @@ +{ + "name": "web", + "$schema": "../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "web/src", + "projectType": "application", + "targets": { + "build": { + "executor": "@nx/webpack:webpack", + "outputs": ["{options.outputPath}"], + "defaultConfiguration": "production", + "options": { + "compiler": "babel", + "outputPath": "dist/web", + "index": "web/src/index.html", + "baseHref": "/", + "main": "web/src/main.tsx", + "tsConfig": "web/tsconfig.app.json", + "assets": ["web/src/favicon.ico", "web/src/assets"], + "styles": ["web/src/styles.css"], + "scripts": [], + "postcssConfig": "web/postcss.config.cjs", + "webpackConfig": "web/webpack.config.js" + }, + "configurations": { + "development": { + "extractLicenses": false, + "optimization": false, + "sourceMap": true, + "vendorChunk": true + }, + "production": { + "fileReplacements": [ + { + "replace": "web/src/environments/environment.ts", + "with": "web/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false + } + } + }, + "serve": { + "executor": "@nx/webpack:dev-server", + "defaultConfiguration": "development", + "options": { + "buildTarget": "web:build", + "hmr": true, + "proxyConfig": "web/proxy.conf.json" + }, + "configurations": { + "development": { + "buildTarget": "web:build:development" + }, + "production": { + "buildTarget": "web:build:production", + "hmr": false + } + } + }, + "lint": { + "executor": "@nx/eslint:lint" + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "jestConfig": "web/jest.config.ts" + } + } + }, + "tags": [] +} diff --git a/web/proxy.conf.json b/web/proxy.conf.json new file mode 100644 index 0000000..63dd627 --- /dev/null +++ b/web/proxy.conf.json @@ -0,0 +1,6 @@ +{ + "/api": { + "target": "http://localhost:3000", + "secure": false + } +} diff --git a/web/src/app/app-layout.tsx b/web/src/app/app-layout.tsx new file mode 100644 index 0000000..98b9b40 --- /dev/null +++ b/web/src/app/app-layout.tsx @@ -0,0 +1,37 @@ +import { useDisclosure } from '@mantine/hooks' +import { UiHeader, UiHeaderLink, UiLayout } from '@pubkey-ui/core' +import { ReactNode } from 'react' +import { AccountUiChecker } from './features/account/ui/account-ui-checker' +import { ClusterChecker } from './features/cluster/cluster-ui' +import { AppLogo, AppLogoType } from './ui' + +export function AppLayout({ + children, + links, + profile, +}: { + children: ReactNode + links: UiHeaderLink[] + profile: ReactNode +}) { + const [opened, { toggle }] = useDisclosure(false) + return ( + } + logo={} + opened={opened} + toggle={toggle} + links={links} + profile={profile} + /> + } + > + + + + {children} + + ) +} diff --git a/web/src/app/app-routes.tsx b/web/src/app/app-routes.tsx new file mode 100644 index 0000000..96ef900 --- /dev/null +++ b/web/src/app/app-routes.tsx @@ -0,0 +1,55 @@ +import { Group } from '@mantine/core' +import { + BACKGROUND_COLORS, + themeWithBrand, + UiHeaderLink, + UiNotFound, + UiThemeLink, + UiThemeSwitch, +} from '@pubkey-ui/core' +import { lazy } from 'react' +import { Link, Navigate, RouteObject, useRoutes } from 'react-router-dom' +import { AppLayout } from './app-layout' +import { ClusterUiSelect } from './features/cluster/cluster-ui' +import { DashboardFeature } from './features/dashboard/dashboard-feature' +import { WalletIcon } from './features/solana/solana-provider' + +const AccountList = lazy(() => import('./features/account/account-feature-list')) +const AccountDetail = lazy(() => import('./features/account/account-feature-detail')) +const ClusterFeature = lazy(() => import('./features/cluster/cluster-feature')) + +const links: UiHeaderLink[] = [ + { label: 'Dashboard', link: '/dashboard' }, + { label: 'Account', link: '/account' }, + { label: 'Clusters', link: '/clusters' }, +] +const routes: RouteObject[] = [ + { path: '/', element: }, + { path: '/account', element: }, + { path: '/account/:address', element: }, + { path: '/clusters', element: }, + { path: '/dashboard', element: }, + { path: '*', element: }, +] + +export function AppRoutes() { + const router = useRoutes(routes) + + return ( + + + + + + } + > + {router} + + ) +} + +export const appTheme = themeWithBrand('green', { colors: { dark: BACKGROUND_COLORS['stone'] } }) +export const ThemeLink: UiThemeLink = ({ children, ...props }) => {children} diff --git a/web/src/app/app.spec.ts b/web/src/app/app.spec.ts new file mode 100644 index 0000000..a648590 --- /dev/null +++ b/web/src/app/app.spec.ts @@ -0,0 +1,5 @@ +describe('App', () => { + it('should be true', () => { + expect(true).toBe(true) + }) +}) diff --git a/web/src/app/app.tsx b/web/src/app/app.tsx new file mode 100644 index 0000000..8b058fe --- /dev/null +++ b/web/src/app/app.tsx @@ -0,0 +1,23 @@ +import { UiThemeProvider } from '@pubkey-ui/core' +import '@pubkey-ui/core/index.esm.css' + +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import { AppRoutes, appTheme, ThemeLink } from './app-routes' +import { ClusterProvider } from './features/cluster/cluster-data-access' +import { SolanaProvider } from './features/solana/solana-provider' + +const client = new QueryClient() + +export function App() { + return ( + + + + + + + + + + ) +} diff --git a/web/src/app/features/account/account-data-access.tsx b/web/src/app/features/account/account-data-access.tsx new file mode 100644 index 0000000..2708191 --- /dev/null +++ b/web/src/app/features/account/account-data-access.tsx @@ -0,0 +1,426 @@ +import { Anchor } from '@mantine/core' +import { NotificationData } from '@mantine/notifications' +import { toastError, toastSuccess } from '@pubkey-ui/core' +import { + burnChecked, + closeAccount, + ExtensionType, + getExtensionTypes, + getMint, + getOrCreateAssociatedTokenAccount, + getTransferFeeConfig, + Mint, + TOKEN_2022_PROGRAM_ID, + TOKEN_PROGRAM_ID, + transferCheckedWithFee, + TransferFeeConfig, +} from '@solana/spl-token' +import { useConnection, useWallet } from '@solana/wallet-adapter-react' +import { + Commitment, + Connection, + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, + TransactionMessage, + TransactionSignature, + VersionedTransaction, +} from '@solana/web3.js' +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' + +import { useCluster } from '../cluster/cluster-data-access' + +export function useQueries({ address, commitment = 'confirmed' }: { address: PublicKey; commitment?: Commitment }) { + const { connection } = useConnection() + const wallet = useWallet() + + return { + burnToken: { + mutationKey: ['burnToken', { endpoint: connection?.rpcEndpoint, address }], + mutationFn: async (input: { amount: string; source: string; mint: string; feePayer: Keypair }) => { + const feePayer = input.feePayer + const mintPublicKey = new PublicKey(input.mint) + const sourceTokenAccount = new PublicKey(input.source) + + const { mint, programId } = await getMintWithProgramId(connection, mintPublicKey, commitment) + + return burnChecked( + connection, + feePayer, + sourceTokenAccount, + mintPublicKey, + feePayer, + parseFloat(input.amount) * 10 ** mint.decimals, + mint.decimals, + [], + undefined, + programId, + ) + }, + }, + closeAccount: { + mutationKey: ['closeAccount', { endpoint: connection?.rpcEndpoint, address }], + mutationFn: async (input: { source: string; mint: string; feePayer: Keypair }) => { + const feePayer = input.feePayer + const mintPublicKey = new PublicKey(input.mint) + const sourceTokenAccount = new PublicKey(input.source) + + const programId = await getProgramId(connection, mintPublicKey, commitment) + + return closeAccount( + connection, + feePayer, + sourceTokenAccount, + feePayer.publicKey, + feePayer, + [], + undefined, + programId, + ) + }, + }, + getBalance: { + queryKey: ['getBalance', { endpoint: connection?.rpcEndpoint, address }], + queryFn: () => connection.getBalance(address), + }, + getSignatures: { + queryKey: ['getSignatures', { endpoint: connection?.rpcEndpoint, address }], + queryFn: () => connection.getConfirmedSignaturesForAddress2(address), + }, + getTokenAccounts: { + queryKey: ['getTokenAccounts', { endpoint: connection?.rpcEndpoint, address }], + queryFn: () => getAllTokenAccounts(connection, address), + }, + getTokenBalance: { + queryKey: ['getTokenBalance', { endpoint: connection?.rpcEndpoint, account: address }], + queryFn: () => connection.getTokenAccountBalance(address), + }, + requestAirdrop: { + mutationKey: ['requestAirdrop', { endpoint: connection?.rpcEndpoint, address }], + mutationFn: (amount: string) => requestAndConfirmAirdrop({ address, amount, connection }), + }, + transferSol: { + mutationKey: ['transferSol', { endpoint: connection?.rpcEndpoint, address }], + mutationFn: async ({ amount, destination }: { amount: string; destination: PublicKey }) => { + try { + const { transaction, latestBlockhash } = await createTransaction({ + amount, + connection, + destination, + publicKey: address, + }) + + // Send transaction and await for signature + const signature: TransactionSignature = await wallet.sendTransaction(transaction, connection) + + // Send transaction and await for signature + await connection.confirmTransaction({ signature, ...latestBlockhash }, 'confirmed') + + return signature + } catch (error: unknown) { + console.log('error', `Transaction failed! ${error}`) + return + } + }, + }, + transferToken: { + mutationKey: ['transferToken', { endpoint: connection?.rpcEndpoint, address }], + mutationFn: async (input: { + amount: string + source: string + destination: string + mint: string + feePayer: Keypair + }) => { + const destinationPublicKey = new PublicKey(input.destination) + const feePayer = input.feePayer + const feePayerPublicKey = feePayer.publicKey + const mintPublicKey = new PublicKey(input.mint) + const sourceTokenAccount = new PublicKey(input.source) + + try { + // Get the mint account and program ID + const { mint, programId } = await getMintWithProgramId(connection, mintPublicKey, commitment) + + // Get or create associated token account for destination + const destinationTokenAccount = await getOrCreateAssociatedTokenAccount( + connection, + feePayer, + mintPublicKey, + destinationPublicKey, + undefined, + commitment, + undefined, + programId, + ) + + // Get the mint extensions + const extensions = getExtensionTypes(mint.tlvData) + + // Check if mint has transfer fee + if (extensions.includes(ExtensionType.TransferFeeConfig)) { + const epoch = await connection.getEpochInfo(commitment) + const { feeCharged, transferAmount } = getTransferFeeForMintAmount(mint, epoch.epoch, input.amount) + + return transferCheckedWithFee( + connection, + feePayer, // Transaction fee payer + sourceTokenAccount, // Source Token Account + mintPublicKey, // Mint Account address + destinationTokenAccount.address, // Destination Token Account + feePayerPublicKey, // Owner of Source Account + transferAmount, // Amount to transfer + mint.decimals, // Mint Account decimals + feeCharged, // Transfer fee + undefined, // Additional signers + undefined, // Confirmation options + programId, // Token Extension Program ID + ) + } + + console.log('This mint does not have a transfer fee') + console.log({ + amount: input.amount, + source: new PublicKey(input.source), + destination: new PublicKey(input.destination), + destinationTokenAccount: destinationTokenAccount.address, + mint, + }) + + throw new Error('This mint does not have a transfer fee, I can only transfer tokens with a transfer fee') + } catch (error: unknown) { + console.log('error', `Transaction failed! ${error}`) + return + } + }, + }, + } +} + +export function useGetBalance({ address }: { address: PublicKey }) { + return useQuery(useQueries({ address }).getBalance) +} +export function useGetSignatures({ address }: { address: PublicKey }) { + return useQuery(useQueries({ address }).getSignatures) +} +export function useGetTokenAccounts({ address }: { address: PublicKey }) { + return useQuery(useQueries({ address }).getTokenAccounts) +} +export function useGetTokenBalance({ address }: { address: PublicKey }) { + return useQuery(useQueries({ address }).getTokenBalance) +} +export function useRequestAirdrop({ address }: { address: PublicKey }) { + const { + requestAirdrop: { mutationKey, mutationFn }, + } = useQueries({ address }) + const onSuccess = useOnTransactionSuccess({ address }) + return useMutation({ + mutationKey, + mutationFn, + onSuccess, + onError: (error: unknown) => { + toastError(`Requesting airdrop failed! ${error}`) + }, + }) +} +export function useTransferSol({ address }: { address: PublicKey }) { + const onSuccess = useOnTransactionSuccess({ address }) + return useMutation({ + ...useQueries({ address }).transferSol, + onSuccess, + onError: (error: unknown) => { + toastError(`Sending transaction failed! ${error}`) + }, + }) +} + +async function getAllTokenAccounts(connection: Connection, address: PublicKey) { + const [tokenAccounts, token2022Accounts] = await Promise.all([ + connection.getParsedTokenAccountsByOwner(address, { programId: TOKEN_PROGRAM_ID }), + connection.getParsedTokenAccountsByOwner(address, { programId: TOKEN_2022_PROGRAM_ID }), + ]) + return [...tokenAccounts.value, ...token2022Accounts.value] +} + +async function requestAndConfirmAirdrop({ + address, + amount, + connection, +}: { + connection: Connection + address: PublicKey + amount: string +}) { + const [latestBlockhash, signature] = await Promise.all([ + connection.getLatestBlockhash(), + connection.requestAirdrop(address, parseFloat(amount) * LAMPORTS_PER_SOL), + ]) + + await connection.confirmTransaction({ signature, ...latestBlockhash }, 'confirmed') + return signature +} + +export function useOnTransactionSuccess({ address }: { address: PublicKey }) { + const { getExplorerUrl } = useCluster() + const client = useQueryClient() + const { getBalance, getSignatures } = useQueries({ address }) + + return (signature?: TransactionSignature) => { + if (signature) { + uiToastLink({ link: getExplorerUrl(`tx/${signature}`), label: 'View Transaction' }) + } + return Promise.all([ + client.invalidateQueries({ queryKey: getBalance.queryKey }), + client.invalidateQueries({ queryKey: getSignatures.queryKey }), + ]) + } +} + +export function uiToastLink({ + label, + link, + ...props +}: Omit & { link: string; label: string }) { + return toastSuccess({ + ...props, + message: ( + + {label} + + ), + }) +} + +export async function createTransaction({ + publicKey, + destination, + amount, + connection, +}: { + publicKey: PublicKey + destination: PublicKey + amount: string + connection: Connection +}): Promise<{ + transaction: VersionedTransaction + latestBlockhash: { blockhash: string; lastValidBlockHeight: number } +}> { + // Get the latest blockhash to use in our transaction + const latestBlockhash = await connection.getLatestBlockhash() + + // Create instructions to send, in this case a simple transfer + const instructions = [ + SystemProgram.transfer({ + fromPubkey: publicKey, + toPubkey: destination, + lamports: parseFloat(amount) * LAMPORTS_PER_SOL, + }), + ] + + // Create a new TransactionMessage with version and compile it to legacy + const messageLegacy = new TransactionMessage({ + payerKey: publicKey, + recentBlockhash: latestBlockhash.blockhash, + instructions, + }).compileToLegacyMessage() + + // Create a new VersionedTransaction which supports legacy and v0 + const transaction = new VersionedTransaction(messageLegacy) + + return { + transaction, + latestBlockhash, + } +} + +export function useBurnToken({ address }: { address: PublicKey }) { + const { + burnToken: { mutationKey, mutationFn }, + } = useQueries({ address }) + const onSuccess = useOnTransactionSuccess({ address }) + return useMutation({ + mutationKey, + mutationFn, + onSuccess, + onError: (error: unknown) => { + toastError(`Burning token failed! ${error}`) + }, + }) +} + +export function useCloseAccount({ address }: { address: PublicKey }) { + const { + closeAccount: { mutationKey, mutationFn }, + } = useQueries({ address }) + const onSuccess = useOnTransactionSuccess({ address }) + return useMutation({ + mutationKey, + mutationFn, + onSuccess, + onError: (error: unknown) => { + toastError(`Closing account failed! ${error}`) + }, + }) +} + +export async function getProgramId( + connection: Connection, + mintPublicKey: PublicKey, + commitment: Commitment = 'confirmed', +) { + return connection.getParsedAccountInfo(mintPublicKey, commitment).then((res) => { + if (!res.value?.owner) { + throw new Error(`Mint ${mintPublicKey} not found`) + } + return res.value?.owner + }) +} + +export function useTransferToken({ address }: { address: PublicKey }) { + const onSuccess = useOnTransactionSuccess({ address }) + return useMutation({ + ...useQueries({ address }).transferToken, + onSuccess, + onError: (error: unknown) => { + toastError(`Sending transaction failed! ${error}`) + }, + }) +} + +function getTransferFeeForMintAmount(mint: Mint, epoch: number, amount: string) { + const transferFeeConfig: TransferFeeConfig | null = getTransferFeeConfig(mint) + + if (!transferFeeConfig) { + throw new Error(`This mint has a transfer fee, but no transfer fee config!`) + } + + const { maximumFee, transferFeeBasisPoints } = + epoch < transferFeeConfig.newerTransferFee.epoch + ? transferFeeConfig.olderTransferFee + : transferFeeConfig.newerTransferFee + + // Transfer amount + const transferAmount = BigInt(Math.round(parseFloat(amount) * 10 ** mint.decimals)) + // Calculate transfer fee + const fee = (transferAmount * BigInt(transferFeeBasisPoints)) / BigInt(10_000) + // Determine fee charged + const feeCharged = fee > maximumFee ? maximumFee : fee + + return { + feeCharged, + transferAmount, + } +} + +export async function getMintWithProgramId( + connection: Connection, + mintPublicKey: PublicKey, + commitment: Commitment = 'confirmed', +) { + return getProgramId(connection, mintPublicKey, commitment).then(async (programId) => { + const mint = await getMint(connection, mintPublicKey, commitment, programId) + + return { mint, programId } + }) +} diff --git a/web/src/app/features/account/account-feature-detail.tsx b/web/src/app/features/account/account-feature-detail.tsx new file mode 100644 index 0000000..9074ddc --- /dev/null +++ b/web/src/app/features/account/account-feature-detail.tsx @@ -0,0 +1,46 @@ +import { Container } from '@mantine/core' +import { UiStack } from '@pubkey-ui/core' +import { PublicKey } from '@solana/web3.js' +import { useMemo } from 'react' + +import { useParams } from 'react-router-dom' + +import { ExplorerLink } from '../cluster/cluster-ui' +import { AccountUiTokens } from './account-ui-tokens' + +import { AccountUiBalance } from './ui/account-ui-balance' +import { AccountUiButtons } from './ui/account-ui-buttons' +import { AccountUiTransactions } from './ui/account-ui-transactions' +import { ellipsify } from './ui/ellipsify' + +export default function AccountFeatureDetail() { + const params = useParams() + const address = useMemo(() => { + if (!params.address) { + return + } + try { + return new PublicKey(params.address) + } catch (e) { + console.log(`Invalid public key`, e) + } + }, [params]) + if (!address) { + return
Error loading account
+ } + + return ( + + + + + + + + + + + + + ) +} diff --git a/web/src/app/features/account/account-feature-list.tsx b/web/src/app/features/account/account-feature-list.tsx new file mode 100644 index 0000000..4917fc9 --- /dev/null +++ b/web/src/app/features/account/account-feature-list.tsx @@ -0,0 +1,13 @@ +import { useWallet } from '@solana/wallet-adapter-react' +import { Navigate } from 'react-router-dom' +import { WalletButton } from '../solana/solana-provider' + +export default function AccountFeatureList() { + const { publicKey } = useWallet() + + if (publicKey) { + return + } + + return +} diff --git a/web/src/app/features/account/account-ui-tokens.tsx b/web/src/app/features/account/account-ui-tokens.tsx new file mode 100644 index 0000000..ff66830 --- /dev/null +++ b/web/src/app/features/account/account-ui-tokens.tsx @@ -0,0 +1,100 @@ +import { ActionIcon, Button, Group, Loader, Table, Text } from '@mantine/core' +import { UiError, UiInfo, UiStack } from '@pubkey-ui/core' +import { PublicKey } from '@solana/web3.js' +import { IconRefresh } from '@tabler/icons-react' +import { useQueryClient } from '@tanstack/react-query' +import { useMemo, useState } from 'react' +import { ExplorerLink } from '../cluster/cluster-ui' +import { useGetTokenAccounts } from './account-data-access' + +import { ellipsify } from './ui/ellipsify' + +export function AccountUiTokens({ address }: { address: PublicKey }) { + const [showAll, setShowAll] = useState(false) + const query = useGetTokenAccounts({ address }) + const client = useQueryClient() + const items = useMemo(() => { + if (showAll) return query.data + return query.data?.slice(0, 5) + }, [query.data, showAll]) + + return ( +
+ + + Token Accounts + + {query.isLoading ? ( + + ) : ( + { + await query.refetch() + await client.invalidateQueries({ + queryKey: ['getTokenAccountBalance'], + }) + }} + > + + + )} + + + {query.isError && } + + {query.isSuccess && ( +
+ {query.data.length === 0 ? ( + + ) : ( + + + + Public Key + Mint + Balance + + + + {items?.map(({ account, pubkey }) => ( + + + + + + + + + {account.data.parsed.info.tokenAmount.uiAmount} + + + ))} + + {(query.data?.length ?? 0) > 5 && ( + + + + + + )} + +
+ )} +
+ )} +
+
+ ) +} diff --git a/web/src/app/features/account/ui/account-ui-balance-check.tsx b/web/src/app/features/account/ui/account-ui-balance-check.tsx new file mode 100644 index 0000000..c0e35bb --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-balance-check.tsx @@ -0,0 +1,49 @@ +import { Button, Group, Text } from '@mantine/core' +import { UiWarning } from '@pubkey-ui/core' +import { PublicKey } from '@solana/web3.js' +import { useCluster } from '../../cluster/cluster-data-access' +import { useGetBalance, useRequestAirdrop } from '../account-data-access' + +export function AccountUiBalanceCheck({ + address, + label = 'Account not found', +}: { + address: PublicKey + label?: string +}) { + const { cluster } = useCluster() + const query = useGetBalance({ address }) + const requestAirdrop = useRequestAirdrop({ address }) + + if (query.isLoading) { + return null + } + if (query.isError || !query.data) { + return ( + + + You are connected to {cluster.name} but your account is not found on this cluster. + + + + } + /> + ) + } + return null +} diff --git a/web/src/app/features/account/ui/account-ui-balance.tsx b/web/src/app/features/account/ui/account-ui-balance.tsx new file mode 100644 index 0000000..3837754 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-balance.tsx @@ -0,0 +1,15 @@ +import { Title, TitleProps } from '@mantine/core' +import { PublicKey } from '@solana/web3.js' +import { useGetBalance } from '../account-data-access' + +import { BalanceSol } from './balance-sol' + +export function AccountUiBalance({ address, ...props }: { address: PublicKey } & TitleProps) { + const query = useGetBalance({ address }) + + return ( + query.refetch()} {...props}> + {query.data ? <BalanceSol balance={query.data} /> : '...'} SOL + + ) +} diff --git a/web/src/app/features/account/ui/account-ui-buttons.tsx b/web/src/app/features/account/ui/account-ui-buttons.tsx new file mode 100644 index 0000000..ae3ab63 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-buttons.tsx @@ -0,0 +1,120 @@ +import { Button, ButtonProps, Group, Modal, TextInput } from '@mantine/core' +import { useDisclosure } from '@mantine/hooks' +import { useWallet } from '@solana/wallet-adapter-react' +import { PublicKey } from '@solana/web3.js' +import { useState } from 'react' +import { useCluster } from '../../cluster/cluster-data-access' +import { useRequestAirdrop, useTransferSol } from '../account-data-access' + +export function AccountUiButtons({ address }: { address: PublicKey }) { + const wallet = useWallet() + const { cluster } = useCluster() + + return ( + + + + + + ) +} + +function ModalReceive({ address, ...props }: { address: PublicKey }) { + const [opened, { close, open }] = useDisclosure(false) + + return ( + <> + + +

You can receive assets by sending them to your public key:

+ {address.toString()} +
+ + ) +} + +function ModalAirdrop({ address, ...props }: ButtonProps & { address: PublicKey }) { + const [opened, { close, open }] = useDisclosure(false) + const mutation = useRequestAirdrop({ address }) + const [amount, setAmount] = useState('2') + + return ( + <> + + + setAmount(e.target.value)} + /> + + + + ) +} + +function ModalSend({ address, ...props }: ButtonProps & { address: PublicKey }) { + const [opened, { close, open }] = useDisclosure(false) + const wallet = useWallet() + const mutation = useTransferSol({ address }) + const [destination, setDestination] = useState('') + const [amount, setAmount] = useState('1') + + if (!address || !wallet.sendTransaction) { + return
Wallet not connected
+ } + + return ( + <> + + + setDestination(e.target.value)} + /> + setAmount(e.target.value)} + /> + + + + ) +} diff --git a/web/src/app/features/account/ui/account-ui-checker.tsx b/web/src/app/features/account/ui/account-ui-checker.tsx new file mode 100644 index 0000000..e259feb --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-checker.tsx @@ -0,0 +1,11 @@ +import { useWallet } from '@solana/wallet-adapter-react' + +import { AccountUiBalanceCheck } from './account-ui-balance-check' + +export function AccountUiChecker() { + const { publicKey } = useWallet() + if (!publicKey) { + return null + } + return +} diff --git a/web/src/app/features/account/ui/account-ui-form-send.tsx b/web/src/app/features/account/ui/account-ui-form-send.tsx new file mode 100644 index 0000000..19e44c7 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-form-send.tsx @@ -0,0 +1,140 @@ +import { Button, ButtonProps, Group, Stack, Text, TextInput } from '@mantine/core' +import { UiGroup } from '@pubkey-ui/core' +import { useState } from 'react' + +export function formatAmount(amount: number | string, decimals = 2) { + return Intl.NumberFormat('en-US', { maximumFractionDigits: decimals }).format(parseFloat(amount.toString())) +} + +export function AccountUiFormSend({ + available, + send, + ...props +}: ButtonProps & { + available: string + send: (input: { destination: string; amount: string }) => Promise +}) { + const [destination, setDestination] = useState('') + const [amount, setAmount] = useState('1') + const [loading, setLoading] = useState(false) + + return ( + { + e.preventDefault() + setLoading(true) + return send({ destination, amount }).finally(() => setLoading(false)) + }} + > + + setDestination(e.target.value)} + flex={1} + /> + + + Amount + + + { + setAmount(available) + }} + > + {formatAmount(available)} + + + + } + type="number" + step="any" + min="0" + placeholder="Amount" + value={amount} + onChange={(e) => setAmount(e.target.value)} + /> + + + + + + ) +} + +export function AccountUiFormBurn({ + available, + burn, + ...props +}: ButtonProps & { + available: string + burn: (input: { amount: string }) => Promise +}) { + const [amount, setAmount] = useState('1') + const [loading, setLoading] = useState(false) + + return ( + { + e.preventDefault() + setLoading(true) + return burn({ amount }).finally(() => setLoading(false)) + }} + > + + + + Amount + + + { + setAmount(available) + }} + > + {formatAmount(available)} + + + + } + type="number" + step="any" + min="0" + placeholder="Amount" + value={amount} + onChange={(e) => setAmount(e.target.value)} + flex={1} + /> + + + + + + ) +} diff --git a/web/src/app/features/account/ui/account-ui-keypair-checker.tsx b/web/src/app/features/account/ui/account-ui-keypair-checker.tsx new file mode 100644 index 0000000..7e63f47 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-keypair-checker.tsx @@ -0,0 +1,10 @@ +import { useKeypair } from '../../keypair/data-access' +import { AccountUiBalanceCheck } from './account-ui-balance-check' + +export function AccountUiKeypairChecker() { + const { keypair } = useKeypair() + if (!keypair.solana) { + return null + } + return +} diff --git a/web/src/app/features/account/ui/account-ui-token-actions.tsx b/web/src/app/features/account/ui/account-ui-token-actions.tsx new file mode 100644 index 0000000..2473f0d --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-token-actions.tsx @@ -0,0 +1,80 @@ +import { ActionIcon, ActionIconGroup } from '@mantine/core' +import { modals } from '@mantine/modals' +import { PublicKey } from '@solana/web3.js' +import { IconFlame, IconSend, IconX } from '@tabler/icons-react' + +import { AccountUiFormBurn, AccountUiFormSend } from './account-ui-form-send' +import { ellipsify } from './ellipsify' + +export function AccountUiTokenActions({ + available, + burn, + close, + mint, + send, +}: { + available: string + burn?: (input: { amount: string }) => Promise + close?: () => Promise + mint: PublicKey + send?: (input: { destination: string; amount: string }) => Promise +}) { + return ( + + {send && ( + + modals.open({ + title: `Send '${ellipsify(mint.toString(), 8)}' tokens`, + size: 'lg', + centered: true, + children: ( + send(input).then(() => modals.closeAll())} /> + ), + }) + } + > + + + )} + {burn && ( + + modals.open({ + title: `Burn '${ellipsify(mint.toString(), 8)}' tokens`, + size: 'lg', + centered: true, + children: ( + burn(input).then(() => modals.closeAll())} /> + ), + }) + } + > + + + )} + {close && ( + { + if (!window.confirm(`Close account '${ellipsify(mint.toString(), 8)}'?`)) return + close().then(() => modals.closeAll()) + }} + > + + + )} + + ) +} diff --git a/web/src/app/features/account/ui/account-ui-token-table.tsx b/web/src/app/features/account/ui/account-ui-token-table.tsx new file mode 100644 index 0000000..adeeaf3 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-token-table.tsx @@ -0,0 +1,179 @@ +import { ActionIcon, Button, Group, Loader, Table, Text } from '@mantine/core' +import { UiError, UiInfo, UiStack } from '@pubkey-ui/core' +import { PublicKey } from '@solana/web3.js' +import { IconRefresh } from '@tabler/icons-react' +import { useQueryClient } from '@tanstack/react-query' +import { useMemo, useState } from 'react' +import { AppLabel } from '../../../app-labels-provider' +import { ExplorerLink } from '../../cluster/cluster-ui' +import { useGetTokenAccounts } from '../account-data-access' +import { formatAmount } from './account-ui-form-send' +import { AccountUiTokenActions } from './account-ui-token-actions' +import { ellipsify } from './ellipsify' + +export interface AccountUiTokenBurnInput { + amount: string + source: string + mint: string +} + +export interface AccountUiTokenCloseInput { + source: string + mint: string +} + +export interface AccountUiTokenSendInput { + amount: string + source: string + destination: string + mint: string +} + +export function AccountUiTokenTable({ + address, + burn, + close, + send, +}: { + address: PublicKey + burn?: (input: AccountUiTokenBurnInput) => Promise + close?: (input: AccountUiTokenCloseInput) => Promise + send?: (input: AccountUiTokenSendInput) => Promise +}) { + const [showAll, setShowAll] = useState(false) + const query = useGetTokenAccounts({ address }) + const client = useQueryClient() + const items = useMemo(() => { + if (showAll) return query.data + return query.data + ?.slice(0, 5) + .sort((a, b) => { + const aMint = a.account.data.parsed.info.mint + const bMint = b.account.data.parsed.info.mint + if (aMint < bMint) return -1 + if (aMint > bMint) return 1 + return 0 + }) + .sort((a, b) => { + const aBalance = a.account.data.parsed.info.tokenAmount.uiAmount + const bBalance = b.account.data.parsed.info.tokenAmount.uiAmount + return bBalance - aBalance + }) + }, [query.data, showAll]) + + return ( +
+ + + Token Accounts + + {query.isLoading ? ( + + ) : ( + { + await query.refetch() + await client.invalidateQueries({ + queryKey: ['getTokenBalance'], + }) + }} + > + + + )} + + + {query.isError && } + + {query.isSuccess && ( +
+ {query.data.length === 0 ? ( + + ) : ( + + + + Mint + Public Key + Balance + + Actions + + + + + {items?.map(({ account, pubkey }) => ( + + + } + path={`account/${account.data.parsed.info.mint.toString()}`} + /> + + + + + + + {formatAmount(account.data.parsed.info.tokenAmount.uiAmountString ?? '0')} + + + + { + if (!burn) return + return burn({ + ...input, + mint: account.data.parsed.info.mint, + source: pubkey.toString(), + }) + }} + close={async () => { + if (!close) return + return close({ + mint: account.data.parsed.info.mint, + source: pubkey.toString(), + }) + }} + send={async (input) => { + if (!send) return + return send({ + ...input, + mint: account.data.parsed.info.mint, + source: pubkey.toString(), + }) + }} + available={account.data.parsed.info.tokenAmount.uiAmount} + mint={account.data.parsed.info.mint} + /> + + + ))} + + {(query.data?.length ?? 0) > 5 && ( + + + + + + )} + +
+ )} +
+ )} +
+
+ ) +} diff --git a/web/src/app/features/account/ui/account-ui-transactions.tsx b/web/src/app/features/account/ui/account-ui-transactions.tsx new file mode 100644 index 0000000..3923668 --- /dev/null +++ b/web/src/app/features/account/ui/account-ui-transactions.tsx @@ -0,0 +1,83 @@ +import { ActionIcon, Badge, Button, Group, Loader, Table, Text } from '@mantine/core' +import { UiError, UiInfo, UiStack, UiTime } from '@pubkey-ui/core' +import { PublicKey } from '@solana/web3.js' +import { IconRefresh } from '@tabler/icons-react' +import { useMemo, useState } from 'react' +import { ExplorerLink } from '../../cluster/cluster-ui' +import { useGetSignatures } from '../account-data-access' + +import { ellipsify } from './ellipsify' + +export function AccountUiTransactions({ address }: { address: PublicKey }) { + const query = useGetSignatures({ address }) + const [showAll, setShowAll] = useState(false) + + const items = useMemo(() => { + if (showAll) return query.data + return query.data?.slice(0, 5) + }, [query.data, showAll]) + + return ( + + + Transaction History + {query.isLoading ? ( + + ) : ( + query.refetch()}> + + + )} + + {query.isError && } + {query.isSuccess && query.data.length === 0 ? ( + + ) : ( + + + + Signature + Slot + Block Time + Result + + + + {items?.map((item) => ( + + + + + + + + + + + + {item.err ? ( + + Failed + + ) : ( + Success + )} + + + ))} + {(query.data?.length ?? 0) > 5 && ( + + + + + + )} + +
+ )} +
+ ) +} diff --git a/web/src/app/features/account/ui/account-ui.tsx b/web/src/app/features/account/ui/account-ui.tsx new file mode 100644 index 0000000..e69de29 diff --git a/web/src/app/features/account/ui/balance-sol.tsx b/web/src/app/features/account/ui/balance-sol.tsx new file mode 100644 index 0000000..f89842d --- /dev/null +++ b/web/src/app/features/account/ui/balance-sol.tsx @@ -0,0 +1,5 @@ +import { LAMPORTS_PER_SOL } from '@solana/web3.js' + +export function BalanceSol({ balance }: { balance: number }) { + return {Math.round((balance / LAMPORTS_PER_SOL) * 100000) / 100000} +} diff --git a/web/src/app/features/account/ui/ellipsify.tsx b/web/src/app/features/account/ui/ellipsify.tsx new file mode 100644 index 0000000..6d2f962 --- /dev/null +++ b/web/src/app/features/account/ui/ellipsify.tsx @@ -0,0 +1,6 @@ +export function ellipsify(str = '', len = 4) { + if (str.length > 30) { + return str.substring(0, len) + '..' + str.substring(str.length - len, str.length) + } + return str +} diff --git a/web/src/app/features/cluster/cluster-data-access.tsx b/web/src/app/features/cluster/cluster-data-access.tsx new file mode 100644 index 0000000..6ca4b67 --- /dev/null +++ b/web/src/app/features/cluster/cluster-data-access.tsx @@ -0,0 +1,106 @@ +import { clusterApiUrl } from '@solana/web3.js' +import { atom, useAtomValue, useSetAtom } from 'jotai' +import { atomWithStorage } from 'jotai/utils' +import { createContext, ReactNode, useContext } from 'react' + +export interface Cluster { + name: string + endpoint: string + network?: ClusterNetwork + active?: boolean +} + +export enum ClusterNetwork { + Mainnet = 'mainnet-beta', + Testnet = 'testnet', + Devnet = 'devnet', + Custom = 'custom', +} + +export const defaultClusters: Cluster[] = [ + { + name: 'devnet', + endpoint: clusterApiUrl('devnet'), + network: ClusterNetwork.Devnet, + }, + { name: 'local', endpoint: 'http://localhost:8899' }, + { + name: 'testnet', + endpoint: clusterApiUrl('testnet'), + network: ClusterNetwork.Testnet, + }, +] + +const clusterAtom = atomWithStorage('solana-cluster', defaultClusters[0]) +const clustersAtom = atomWithStorage('solana-clusters', defaultClusters) + +const activeClustersAtom = atom((get) => { + const clusters = get(clustersAtom) + const cluster = get(clusterAtom) + return clusters.map((item) => ({ + ...item, + active: item.name === cluster.name, + })) +}) + +const activeClusterAtom = atom((get) => { + const clusters = get(activeClustersAtom) + + return clusters.find((item) => item.active) || clusters[0] +}) + +export interface ClusterProviderContext { + cluster: Cluster + clusters: Cluster[] + addCluster: (cluster: Cluster) => void + deleteCluster: (cluster: Cluster) => void + setCluster: (cluster: Cluster) => void + getExplorerUrl(path: string): string +} + +const Context = createContext({} as ClusterProviderContext) + +export function ClusterProvider({ children }: { children: ReactNode }) { + const cluster = useAtomValue(activeClusterAtom) + const clusters = useAtomValue(activeClustersAtom) + const setCluster = useSetAtom(clusterAtom) + const setClusters = useSetAtom(clustersAtom) + + const value: ClusterProviderContext = { + cluster, + clusters: clusters.sort((a, b) => (a.name > b.name ? 1 : -1)), + addCluster: (cluster: Cluster) => { + setClusters([...clusters, cluster]) + }, + deleteCluster: (cluster: Cluster) => { + setClusters(clusters.filter((item) => item.name !== cluster.name)) + }, + setCluster: (cluster: Cluster) => setCluster(cluster), + getExplorerUrl: (path: string) => `https://solana.fm/${path}${getClusterUrlParam(cluster)}`, + } + return {children} +} + +export function useCluster() { + return useContext(Context) +} + +function getClusterUrlParam(cluster: Cluster): string { + let suffix = '' + switch (cluster.network) { + case ClusterNetwork.Devnet: + suffix = 'devnet-solana' + break + case ClusterNetwork.Mainnet: + suffix = 'mainnet-solana' + break + case ClusterNetwork.Testnet: + suffix = 'testnet-solana' + break + default: + suffix = `localnet-solana&customUrl=${encodeURIComponent(cluster.endpoint)}` + break + } + + return suffix.length ? `?cluster=${suffix}` : '' +} diff --git a/web/src/app/features/cluster/cluster-feature.tsx b/web/src/app/features/cluster/cluster-feature.tsx new file mode 100644 index 0000000..f479186 --- /dev/null +++ b/web/src/app/features/cluster/cluster-feature.tsx @@ -0,0 +1,18 @@ +import { Container, Text, Title } from '@mantine/core' +import { UiStack } from '@pubkey-ui/core' + +import { ClusterUiModal, ClusterUiTable } from './cluster-ui' + +export default function ClusterFeature() { + return ( + + + Clusters + Manage and select your Solana clusters + + + + + + ) +} diff --git a/web/src/app/features/cluster/cluster-ui.tsx b/web/src/app/features/cluster/cluster-ui.tsx new file mode 100644 index 0000000..75249c8 --- /dev/null +++ b/web/src/app/features/cluster/cluster-ui.tsx @@ -0,0 +1,168 @@ +import { Anchor, AnchorProps, Button, Group, Menu, Modal, Select, Table, Text, TextInput } from '@mantine/core' +import { useDisclosure } from '@mantine/hooks' +import { UiCopy, UiWarning } from '@pubkey-ui/core' +import { useConnection } from '@solana/wallet-adapter-react' +import { IconNetwork, IconNetworkOff, IconTrash } from '@tabler/icons-react' +import { useQuery } from '@tanstack/react-query' +import { ReactNode, useState } from 'react' +import { Link } from 'react-router-dom' +import { ClusterNetwork, useCluster } from './cluster-data-access' + +export function ExplorerLink({ + copy, + path, + label = 'View on Explorer', + ...props +}: { path: string; copy?: string; label?: ReactNode } & AnchorProps) { + const { getExplorerUrl } = useCluster() + return ( + + {copy ? : null} + + {label} + + + ) +} + +export function ClusterUiSelect() { + const { clusters, setCluster, cluster } = useCluster() + return ( + + + + + + + {clusters.map((item) => ( + setCluster(item)} + leftSection={item.active ? : } + > + {item.name} + + ))} + + + Manage Clusters + + + + ) +} + +export function ClusterChecker({ children }: { children: ReactNode }) { + const { cluster } = useCluster() + const { connection } = useConnection() + + const query = useQuery({ + queryKey: ['version', { cluster, endpoint: connection.rpcEndpoint }], + queryFn: () => connection.getVersion(), + retry: 1, + }) + if (query.isLoading) { + return null + } + if (query.isError || !query.data) { + return ( + } + message={ + + + Error connecting to cluster {cluster.name} + + + + } + /> + ) + } + return children +} + +export function ClusterUiModal() { + const { addCluster } = useCluster() + const [opened, { close, open }] = useDisclosure(false) + const [name, setName] = useState('') + const [network, setNetwork] = useState() + const [endpoint, setEndpoint] = useState('') + + return ( + <> + + + setName(e.target.value)} /> + setEndpoint(e.target.value)} /> + + + + + ) +} + +export function ClusterUiTable() { + const { clusters, setCluster, deleteCluster } = useCluster() + return ( +
+ + + + Name / Network / Endpoint + Actions + + + + {clusters.map((item) => ( + + + + {item?.active ? ( + item.name + ) : ( + setCluster(item)}> + {item.name} + + )} + + Network: {item.network ?? 'custom'} +
{item.endpoint}
+
+ + + +
+ ))} +
+
+
+ ) +} diff --git a/web/src/app/features/dashboard/dashboard-feature.tsx b/web/src/app/features/dashboard/dashboard-feature.tsx new file mode 100644 index 0000000..791e6cc --- /dev/null +++ b/web/src/app/features/dashboard/dashboard-feature.tsx @@ -0,0 +1,15 @@ +import { UiContainer, UiDashboardGrid } from '@pubkey-ui/core' +import { IconListDetails, IconServer } from '@tabler/icons-react' + +export function DashboardFeature() { + return ( + + + + ) +} diff --git a/web/src/app/features/solana/solana-provider.tsx b/web/src/app/features/solana/solana-provider.tsx new file mode 100644 index 0000000..0285c1f --- /dev/null +++ b/web/src/app/features/solana/solana-provider.tsx @@ -0,0 +1,39 @@ +import { AnchorProvider } from '@coral-xyz/anchor' +import { WalletModalProvider, WalletMultiButton, WalletMultiIcon } from '@pubkeyapp/wallet-adapter-mantine-ui' +import { WalletError } from '@solana/wallet-adapter-base' +import { + AnchorWallet, + ConnectionProvider, + useConnection, + useWallet, + WalletProvider, +} from '@solana/wallet-adapter-react' + +import { ReactNode, useCallback, useMemo } from 'react' +import { useCluster } from '../cluster/cluster-data-access' + +export const WalletButton = WalletMultiButton +export const WalletIcon = WalletMultiIcon + +export function SolanaProvider({ children }: { children: ReactNode }) { + const { cluster } = useCluster() + const endpoint = useMemo(() => cluster.endpoint, [cluster]) + const onError = useCallback((error: WalletError) => { + console.error(error) + }, []) + + return ( + + + {children} + + + ) +} + +export function useAnchorProvider() { + const { connection } = useConnection() + const wallet = useWallet() + + return new AnchorProvider(connection, wallet as AnchorWallet, { commitment: 'confirmed' }) +} diff --git a/web/src/app/ui/app-logo-type-black.tsx b/web/src/app/ui/app-logo-type-black.tsx new file mode 100644 index 0000000..72a5997 --- /dev/null +++ b/web/src/app/ui/app-logo-type-black.tsx @@ -0,0 +1,55 @@ +import { UiLogoTypeProps } from '@pubkey-ui/core' + +export function AppLogoTypeBlack({ height, width, ...props }: UiLogoTypeProps = {}) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/web/src/app/ui/app-logo-type-white.tsx b/web/src/app/ui/app-logo-type-white.tsx new file mode 100644 index 0000000..4c6c4d5 --- /dev/null +++ b/web/src/app/ui/app-logo-type-white.tsx @@ -0,0 +1,84 @@ +import { UiLogoTypeProps } from '@pubkey-ui/core' + +export function AppLogoTypeWhite({ height, width, ...props }: UiLogoTypeProps = {}) { + return ( + + logo-white + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/web/src/app/ui/app-logo-type.tsx b/web/src/app/ui/app-logo-type.tsx new file mode 100644 index 0000000..bb46d90 --- /dev/null +++ b/web/src/app/ui/app-logo-type.tsx @@ -0,0 +1,9 @@ +import { UiLogoTypeProps, useUiColorScheme } from '@pubkey-ui/core' +import { AppLogoTypeBlack } from './app-logo-type-black' +import { AppLogoTypeWhite } from './app-logo-type-white' + +export function AppLogoType(props: UiLogoTypeProps = {}) { + const { colorScheme } = useUiColorScheme() + + return colorScheme === 'dark' ? : +} diff --git a/web/src/app/ui/app-logo.tsx b/web/src/app/ui/app-logo.tsx new file mode 100644 index 0000000..da17027 --- /dev/null +++ b/web/src/app/ui/app-logo.tsx @@ -0,0 +1,36 @@ +import { UiLogoTypeProps } from '@pubkey-ui/core' + +export function AppLogo({ height, width, ...props }: UiLogoTypeProps = {}) { + return ( + + icon + + + + + + + + + + + + + + + + + ) +} diff --git a/web/src/app/ui/index.ts b/web/src/app/ui/index.ts new file mode 100644 index 0000000..5e95928 --- /dev/null +++ b/web/src/app/ui/index.ts @@ -0,0 +1,4 @@ +export * from './app-logo' +export * from './app-logo-type' +export * from './app-logo-type-black' +export * from './app-logo-type-white' diff --git a/web/src/assets/.gitkeep b/web/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/web/src/favicon.ico b/web/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..54e5c972c7c6cfa035eb9146594fa911b3dae28b GIT binary patch literal 168499 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 literal 0 HcmV?d00001 diff --git a/web/src/index.html b/web/src/index.html new file mode 100644 index 0000000..c5b3d80 --- /dev/null +++ b/web/src/index.html @@ -0,0 +1,12 @@ + + + + + TokenGator Starter + + + + +
+ + diff --git a/web/src/main.tsx b/web/src/main.tsx new file mode 100644 index 0000000..3f3dbf4 --- /dev/null +++ b/web/src/main.tsx @@ -0,0 +1,14 @@ +import { StrictMode } from 'react' +import * as ReactDOM from 'react-dom/client' +import { BrowserRouter } from 'react-router-dom' + +import { App } from './app/app' + +const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement) +root.render( + + + + + , +) diff --git a/web/src/styles.css b/web/src/styles.css new file mode 100644 index 0000000..0afb828 --- /dev/null +++ b/web/src/styles.css @@ -0,0 +1,9 @@ +html, +body, +#root { + height: 100%; +} + +:root[data-mantine-color-scheme='dark'] { + --mantine-color-body: var(--mantine-color-dark-8) !important; +} diff --git a/web/tsconfig.app.json b/web/tsconfig.app.json new file mode 100644 index 0000000..a8c1e84 --- /dev/null +++ b/web/tsconfig.app.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../dist/out-tsc", + "types": ["node", "@nx/react/typings/cssmodule.d.ts", "@nx/react/typings/image.d.ts"] + }, + "exclude": [ + "jest.config.ts", + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.jsx", + "src/**/*.test.jsx" + ], + "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] +} diff --git a/web/tsconfig.json b/web/tsconfig.json new file mode 100644 index 0000000..1af4d52 --- /dev/null +++ b/web/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "allowJs": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "extends": "../tsconfig.base.json" +} diff --git a/web/tsconfig.spec.json b/web/tsconfig.spec.json new file mode 100644 index 0000000..1a0cc50 --- /dev/null +++ b/web/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node", "@nx/react/typings/cssmodule.d.ts", "@nx/react/typings/image.d.ts"] + }, + "include": [ + "jest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/web/webpack.config.js b/web/webpack.config.js new file mode 100644 index 0000000..3795b47 --- /dev/null +++ b/web/webpack.config.js @@ -0,0 +1,13 @@ +const { composePlugins, withNx } = require('@nx/webpack') +const { withReact } = require('@nx/react') + +// Nx plugins for webpack. +module.exports = composePlugins(withNx(), withReact(), (config) => { + // Update the webpack config as needed here. + // e.g. `config.plugins.push(new MyPlugin())` + config.ignoreWarnings = [/Failed to parse source map/] + config.resolve.fallback = { + crypto: false, + } + return config +})