From f7b2d09c4bd0fefd3a45186a800f33a4c61507e5 Mon Sep 17 00:00:00 2001 From: Anish Lakhwara Date: Sat, 26 Oct 2024 00:00:30 -0700 Subject: [PATCH] init react --- mast-react/.dockerignore | 6 + mast-react/.eslintrc.cjs | 14 + mast-react/.gitignore | 27 + mast-react/.prettierrc | 5 + mast-react/.yarnrc.yml | 1 + mast-react/Dockerfile | 32 + mast-react/README.md | 30 + mast-react/etc/litefs.yml | 25 + mast-react/fly.toml | 45 + mast-react/index.html | 13 + mast-react/notes.md | 12 + mast-react/package.json | 37 + mast-react/pnpm-lock.yaml | 4858 +++++++++++++++++++++++++ mast-react/public/vite.svg | 1 + mast-react/server.js | 23 + mast-react/src/App.css | 31 + mast-react/src/App.tsx | 148 + mast-react/src/Root.tsx | 78 + mast-react/src/assets/react.svg | 1 + mast-react/src/assets/vlcn-hand.png | Bin 0 -> 71288 bytes mast-react/src/assets/vlcn.png | Bin 0 -> 26224 bytes mast-react/src/index.css | 97 + mast-react/src/main.tsx | 13 + mast-react/src/schemas/main2.sql | 2 + mast-react/src/support/randomWords.ts | 338 ++ mast-react/src/sync-worker.ts | 10 + mast-react/src/vite-env.d.ts | 1 + mast-react/tsconfig.json | 25 + mast-react/tsconfig.node.json | 10 + mast-react/vite.config.ts | 36 + 30 files changed, 5919 insertions(+) create mode 100644 mast-react/.dockerignore create mode 100644 mast-react/.eslintrc.cjs create mode 100644 mast-react/.gitignore create mode 100644 mast-react/.prettierrc create mode 100644 mast-react/.yarnrc.yml create mode 100644 mast-react/Dockerfile create mode 100644 mast-react/README.md create mode 100644 mast-react/etc/litefs.yml create mode 100644 mast-react/fly.toml create mode 100644 mast-react/index.html create mode 100644 mast-react/notes.md create mode 100644 mast-react/package.json create mode 100644 mast-react/pnpm-lock.yaml create mode 100644 mast-react/public/vite.svg create mode 100644 mast-react/server.js create mode 100644 mast-react/src/App.css create mode 100644 mast-react/src/App.tsx create mode 100644 mast-react/src/Root.tsx create mode 100644 mast-react/src/assets/react.svg create mode 100644 mast-react/src/assets/vlcn-hand.png create mode 100644 mast-react/src/assets/vlcn.png create mode 100644 mast-react/src/index.css create mode 100644 mast-react/src/main.tsx create mode 100644 mast-react/src/schemas/main2.sql create mode 100644 mast-react/src/support/randomWords.ts create mode 100644 mast-react/src/sync-worker.ts create mode 100644 mast-react/src/vite-env.d.ts create mode 100644 mast-react/tsconfig.json create mode 100644 mast-react/tsconfig.node.json create mode 100644 mast-react/vite.config.ts diff --git a/mast-react/.dockerignore b/mast-react/.dockerignore new file mode 100644 index 0000000..b3d3786 --- /dev/null +++ b/mast-react/.dockerignore @@ -0,0 +1,6 @@ +fly.toml +Dockerfile +.dockerignore +node_modules +.git +dbs \ No newline at end of file diff --git a/mast-react/.eslintrc.cjs b/mast-react/.eslintrc.cjs new file mode 100644 index 0000000..4020bcb --- /dev/null +++ b/mast-react/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + }, +} diff --git a/mast-react/.gitignore b/mast-react/.gitignore new file mode 100644 index 0000000..9659dd8 --- /dev/null +++ b/mast-react/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +dbs/ + +public/assets/crsqlite-*.wasm diff --git a/mast-react/.prettierrc b/mast-react/.prettierrc new file mode 100644 index 0000000..c44bef2 --- /dev/null +++ b/mast-react/.prettierrc @@ -0,0 +1,5 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "singleQuote": false +} diff --git a/mast-react/.yarnrc.yml b/mast-react/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/mast-react/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/mast-react/Dockerfile b/mast-react/Dockerfile new file mode 100644 index 0000000..e3c9c77 --- /dev/null +++ b/mast-react/Dockerfile @@ -0,0 +1,32 @@ +FROM debian:bullseye as builder + +ENV PATH=/usr/local/node/bin:$PATH +ARG NODE_VERSION=19.0.1 + +RUN apt-get update; apt install -y curl python-is-python3 pkg-config build-essential && \ + curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz -C /tmp/ && \ + /tmp/node-build-master/bin/node-build "${NODE_VERSION}" /usr/local/node && \ +rm -rf /tmp/node-build-master + +RUN mkdir /app +WORKDIR /app + +COPY . . + +RUN npm install -g pnpm +RUN pnpm install +RUN pnpm run build + + +FROM debian:bullseye-slim + +LABEL fly_launch_runtime="nodejs" + +COPY --from=builder /usr/local/node /usr/local/node +COPY --from=builder /app /app + +WORKDIR /app +ENV NODE_ENV production +ENV PATH /usr/local/node/bin:$PATH + +CMD [ "pnpm", "run", "start" ] \ No newline at end of file diff --git a/mast-react/README.md b/mast-react/README.md new file mode 100644 index 0000000..b824d42 --- /dev/null +++ b/mast-react/README.md @@ -0,0 +1,30 @@ +# vite-starter + +Getting started with pnpm/npm/yarn create: + +``` +# npm +npm create @vlcn.io@latest your-app-name +# pnpm +pnpm create @vlcn.io your-app-name +# yarn +yarn create @vlcn.io your-app-name +``` + +Or, just cloning directly: + +``` +git clone git@github.com:vlcn-io/vite-starter.git +npm install +npm dev +``` + +What you get: +- A client ([App.tsx](https://github.com/vlcn-io/vite-starter/blob/main/src/App.tsx)) that runs a SQLite DB +- A server ([server.js](https://github.com/vlcn-io/vite-starter/blob/main/server.js)) that the client (or many clients) can sync to when online +- A database schema file ([schemas/main.mjs](https://github.com/vlcn-io/vite-starter/blob/main/src/schemas/main.mjs) that is automatically migrated to (auto migration is still in beta! You may find yourself needing to wipe the DB (clear indexeddb or change dbid) when using auto-migrate) on server and client restart. + + +Demo Video: [![example scaffolding result](https://img.youtube.com/vi/QJBQLYmXReI/0.jpg)](https://www.youtube.com/watch?v=QJBQLYmXReI) + +Deployed Scaffolding: https://vite-starter2.fly.dev/ Try it out! Collaborate between all your devices. diff --git a/mast-react/etc/litefs.yml b/mast-react/etc/litefs.yml new file mode 100644 index 0000000..5e78dcd --- /dev/null +++ b/mast-react/etc/litefs.yml @@ -0,0 +1,25 @@ +# This directory is where your application will access the database. +fuse: + dir: "/app/dbs" + +# This directory is where LiteFS will store internal data. +# You must place this directory on a persistent volume. +data: + dir: "/var/lib/litefs" + +exec: + - cmd: "pnpm run start" + +# The lease section specifies how the cluster will be managed. We're using the +# "consul" lease type so that our application can dynamically change the primary. +# +# These environment variables will be available in your Fly.io application. +lease: + type: "consul" + advertise-url: "http://${HOSTNAME}.vm.${FLY_APP_NAME}.internal:20202" + candidate: ${FLY_REGION == PRIMARY_REGION} + promote: true + + consul: + url: "${FLY_CONSUL_URL}" + key: "litefs/${FLY_APP_NAME}" diff --git a/mast-react/fly.toml b/mast-react/fly.toml new file mode 100644 index 0000000..7048d06 --- /dev/null +++ b/mast-react/fly.toml @@ -0,0 +1,45 @@ +# fly.toml app configuration file generated for mast-react on 2023-06-01T10:35:47-04:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = "vite-starter2" +primary_region = "iad" +kill_signal = "SIGINT" +kill_timeout = "5s" + +[experimental] + auto_rollback = true + +[env] + PORT = "8080" + PRIMARY_REGION = "iad" + +[[mounts]] + source = "dbs_machines" + destination = "/app/dbs" + processes = ["app"] + +[[services]] + protocol = "tcp" + internal_port = 8080 + processes = ["app"] + + [[services.ports]] + port = 80 + handlers = ["http"] + force_https = true + + [[services.ports]] + port = 443 + handlers = ["tls", "http"] + [services.concurrency] + type = "connections" + hard_limit = 250 + soft_limit = 200 + + [[services.tcp_checks]] + interval = "15s" + timeout = "2s" + grace_period = "1s" + restart_limit = 0 \ No newline at end of file diff --git a/mast-react/index.html b/mast-react/index.html new file mode 100644 index 0000000..e0d1c84 --- /dev/null +++ b/mast-react/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/mast-react/notes.md b/mast-react/notes.md new file mode 100644 index 0000000..228da00 --- /dev/null +++ b/mast-react/notes.md @@ -0,0 +1,12 @@ +more regions: +https://fly.io/docs/litefs/speedrun/#5-add-some-replicas-in-other-regions + +``` +fly m clone --select --region lhr +``` + +consul: + +``` +fly consul attach +``` diff --git a/mast-react/package.json b/mast-react/package.json new file mode 100644 index 0000000..a451d6c --- /dev/null +++ b/mast-react/package.json @@ -0,0 +1,37 @@ +{ + "name": "mast-react", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "node ./server.js", + "start": "NODE_ENV=production node ./server.js", + "build": "tsc && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0" + }, + "dependencies": { + "@vlcn.io/crsqlite-wasm": "0.16.0", + "@vlcn.io/react": "3.1.0", + "@vlcn.io/ws-browserdb": "0.2.0", + "@vlcn.io/ws-client": "0.2.0", + "@vlcn.io/ws-server": "0.2.3", + "cors": "^2.8.5", + "express": "^4.18.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "vite-express": "^0.9.2" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "@vitejs/plugin-react": "^4.0.0", + "eslint": "^8.38.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "typescript": "^5.0.2", + "vite": "^4.3.9", + "vite-plugin-pwa": "^0.16.4" + } +} \ No newline at end of file diff --git a/mast-react/pnpm-lock.yaml b/mast-react/pnpm-lock.yaml new file mode 100644 index 0000000..ccf4f32 --- /dev/null +++ b/mast-react/pnpm-lock.yaml @@ -0,0 +1,4858 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@vlcn.io/crsqlite-wasm': + specifier: 0.16.0 + version: 0.16.0 + '@vlcn.io/react': + specifier: 3.1.0 + version: 3.1.0(react@18.2.0) + '@vlcn.io/ws-browserdb': + specifier: 0.2.0 + version: 0.2.0 + '@vlcn.io/ws-client': + specifier: 0.2.0 + version: 0.2.0 + '@vlcn.io/ws-server': + specifier: 0.2.3 + version: 0.2.3 + cors: + specifier: ^2.8.5 + version: 2.8.5 + express: + specifier: ^4.18.2 + version: 4.18.2 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + vite-express: + specifier: ^0.9.2 + version: 0.9.2(express@4.18.2)(vite@4.5.1) + +devDependencies: + '@types/react': + specifier: ^18.0.28 + version: 18.2.45 + '@types/react-dom': + specifier: ^18.0.11 + version: 18.2.18 + '@typescript-eslint/eslint-plugin': + specifier: ^5.57.1 + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^5.57.1 + version: 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@vitejs/plugin-react': + specifier: ^4.0.0 + version: 4.2.1(vite@4.5.1) + eslint: + specifier: ^8.38.0 + version: 8.56.0 + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.56.0) + eslint-plugin-react-refresh: + specifier: ^0.3.4 + version: 0.3.5(eslint@8.56.0) + typescript: + specifier: ^5.0.2 + version: 5.3.3 + vite: + specifier: ^4.3.9 + version: 4.5.1 + vite-plugin-pwa: + specifier: ^0.16.4 + version: 0.16.7(vite@4.5.1)(workbox-build@7.0.0)(workbox-window@7.0.0) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@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 + dev: true + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.6: + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@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.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + 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 + dev: true + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@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.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@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.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@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.23.6 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@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 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@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.23.6 + dev: true + + /@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.23.6 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@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.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helpers@7.23.6: + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@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 + dev: true + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@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-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + 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.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.6 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.23.6: + resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@babel/traverse@7.23.6: + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + 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.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + 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 + dev: true + + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + dev: false + + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + dev: false + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.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.56.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.0 + 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.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + 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.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@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.15.0 + dev: true + + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.6)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace@2.4.2(rollup@2.79.1): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + dependencies: + ejs: 3.1.9 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.10 + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 + dev: true + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@types/better-sqlite3@7.6.8: + resolution: {integrity: sha512-ASndM4rdGrzk7iXXqyNC4fbwt4UEjpK0i3j4q4FyeQrLAthfB6s7EF135ZJE0qQxtKIMFwmyT6x0switET7uIw==} + dependencies: + '@types/node': 20.10.4 + dev: false + + /@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/node@20.10.4: + resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} + dependencies: + undici-types: 5.26.5 + + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + dev: true + + /@types/react-dom@18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} + dependencies: + '@types/react': 18.2.45 + dev: true + + /@types/react@18.2.45: + resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 + dev: true + + /@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + dependencies: + '@types/node': 20.10.4 + dev: true + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + dev: true + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/throttle-debounce@5.0.2: + resolution: {integrity: sha512-pDzSNulqooSKvSNcksnV72nk8p7gRqN8As71Sp28nov1IgmPKWbOEIwAWvBME5pPTtaXJAvG3O4oc76HlQ4kqQ==} + dev: false + + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + dev: false + + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@vitejs/plugin-react@4.2.1(vite@4.5.1): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 4.5.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@vlcn.io/crsqlite-wasm@0.16.0: + resolution: {integrity: sha512-5gf52eyMYvZirxuEUo4QS65JhEsw3fndoO+tCtCEOxuiIEtvaKB2/6wuuKGRlMVkxIp4Bls70D3DCF5v9lcJxA==} + dependencies: + '@vlcn.io/wa-sqlite': 0.22.0 + '@vlcn.io/xplat-api': 0.15.0 + async-mutex: 0.4.0 + dev: false + + /@vlcn.io/crsqlite@0.16.3: + resolution: {integrity: sha512-1rKylRr2LyW5kwh/a6ZFmvt7kFK+aKLGkz9+O1w9EFVdH11SMUg6MfvxTfoczKCyb3/E5qvdOk2NDW/Zin6OjQ==} + requiresBuild: true + dev: false + + /@vlcn.io/logger-provider@0.2.0: + resolution: {integrity: sha512-HLYSnXDo5gCLN22CEIX1eg78JTuw49l7F/KEDTbtoZXch6IJDQ1621z0m162q6T9oIOGTM400y/RUOXaKCRo8w==} + dependencies: + winston: 3.11.0 + dev: false + + /@vlcn.io/react@3.1.0(react@18.2.0): + resolution: {integrity: sha512-sWAoEMVhuPXk4zCxIZa4SoSElNXWO8TwvcQf0xWfKTwQzkPldhiUqCIwXxHzQ37X47rlHrLfMuSvv5dT1vQupA==} + peerDependencies: + react: ^18 + dependencies: + '@vlcn.io/crsqlite-wasm': 0.16.0 + '@vlcn.io/rx-tbl': 0.15.0 + '@vlcn.io/typed-sql': 0.3.0 + '@vlcn.io/ws-client': 0.2.0 + '@vlcn.io/xplat-api': 0.15.0 + async-mutex: 0.4.0 + react: 18.2.0 + dev: false + + /@vlcn.io/rx-tbl@0.15.0: + resolution: {integrity: sha512-6P5R8E5EJ6oASDyT7TbuV18Af4P/YobGEI3+uGUoquQi0GVl+NLdtbYA/sR4PkXsjQ1zBcs0oAi5TmYGe+Cd6A==} + dependencies: + '@vlcn.io/xplat-api': 0.15.0 + dev: false + + /@vlcn.io/typed-sql@0.3.0: + resolution: {integrity: sha512-cKRh2RNzTNIv6NJs5Q2Nda8c4VQ1kEDhR6ERJEyFkmBEHnY/dBFWtZFN2ku35zfDjwVQxFqsr9GiJh0KpvtcXw==} + dev: false + + /@vlcn.io/wa-sqlite@0.22.0: + resolution: {integrity: sha512-OujKro0mAqP7/efUeCGB6zBiyMoSCFVe7jQKPF0n47U9ZhOaIW3kQUVCwF+CmzvzQfN1Vl4PrFQRNNxlSwTCNQ==} + dev: false + + /@vlcn.io/ws-browserdb@0.2.0: + resolution: {integrity: sha512-TKPygQomMPurQ8mwAwEefN5BROw30FagL21S3FzvUunyCybOByysAEoV/OrJ7xNCvYXN9yjg0qyf7iZZfeOsYg==} + dependencies: + '@types/throttle-debounce': 5.0.2 + '@vlcn.io/crsqlite-wasm': 0.16.0 + '@vlcn.io/rx-tbl': 0.15.0 + '@vlcn.io/ws-client': 0.2.0 + '@vlcn.io/ws-common': 0.2.0 + '@vlcn.io/xplat-api': 0.15.0 + dev: false + + /@vlcn.io/ws-client@0.2.0: + resolution: {integrity: sha512-0Nwqh/vBrKZNmRvVS2/LHUm8ssgfXbAzS5J3h3b2l9FQWDDsF3f+DfFekR/ExNagFGHEk8ZEjTQtIzj+F9doJw==} + dependencies: + '@types/throttle-debounce': 5.0.2 + '@vlcn.io/ws-common': 0.2.0 + dev: false + + /@vlcn.io/ws-common@0.2.0: + resolution: {integrity: sha512-c7a470fCAzKzsjn+dchp+zAHXXem2eG2W7RxjHowZuO9PUfLjMAKp0GpZ9rsKAyLiyYRMOFAFnpl0HmFxERjig==} + dependencies: + lib0: 0.2.88 + dev: false + + /@vlcn.io/ws-server@0.2.3: + resolution: {integrity: sha512-jJkZN32hq4k1Tk1W/BmgzCJ91bIs2GLZsvIQdpA7QNbO5aJxF5qQfxiy8PMWYe4UJUYiHb5mQcF+bx1iPP7Yrw==} + dependencies: + '@types/better-sqlite3': 7.6.8 + '@vlcn.io/crsqlite': 0.16.3 + '@vlcn.io/logger-provider': 0.2.0 + '@vlcn.io/ws-common': 0.2.0 + better-sqlite3: 9.2.2 + chokidar: 3.5.3 + throttle-debounce: 5.0.0 + winston: 3.11.0 + ws: 8.15.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@vlcn.io/xplat-api@0.15.0: + resolution: {integrity: sha512-2/aE7VgI3EbIO5EcJGrskAJuCa2pteY1rWNWfhovFKMERe9NhJdlDMIB1I31X0sN/WC2DnF30RqcdTXNfYyzhQ==} + dependencies: + comlink: 4.4.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 + dev: false + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + dev: true + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + 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 + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /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 + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /async-mutex@0.4.0: + resolution: {integrity: sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==} + dependencies: + tslib: 2.6.2 + dev: false + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + core-js-compat: 3.34.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + + /better-sqlite3@9.2.2: + resolution: {integrity: sha512-qwjWB46il0lsDkeB4rSRI96HyDQr8sxeu1MkBVLMrwusq1KRu4Bpt1TMI+8zIJkDUtZ3umjAkaEjIlokZKWCQw==} + requiresBuild: true + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.1 + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: false + + /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 + dev: false + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + 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.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /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.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001570 + electron-to-chromium: 1.4.614 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: false + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001570: + resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} + dev: true + + /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 + dev: true + + /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 + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + 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: false + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + + /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 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false + + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + dev: false + + /comlink@4.4.1: + resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==} + dev: false + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /cookie-signature@1.0.6: + resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} + dev: false + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: false + + /core-js-compat@3.34.0: + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + dependencies: + browserslist: 4.22.2 + dev: true + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: false + + /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 + dev: true + + /crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + + /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 + dev: true + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + + /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'} + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: false + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: false + + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + dev: false + + /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.614: + resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==} + dev: true + + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + 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.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + 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 + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.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.56.0 + dev: true + + /eslint-plugin-react-refresh@0.3.5(eslint@8.56.0): + resolution: {integrity: sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 8.56.0 + 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.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + 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.0 + 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.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: 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 + + /estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: false + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + 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 + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + 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 + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + dev: false + + /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-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 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /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 + dev: false + + /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 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: false + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /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.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + 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'} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /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@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 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /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.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + 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'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /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 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + + /idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + + /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 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /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: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + 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.0 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + 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.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + 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.0 + 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.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isomorphic.js@0.2.5: + resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + dev: false + + /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 + + /jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.10.4 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + 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-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + dev: false + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /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 + + /lib0@0.2.88: + resolution: {integrity: sha512-KyroiEvCeZcZEMx5Ys+b4u4eEBbA1ch7XUaBhYpwa/nPMrzTjUhI4RfcytmQfYoTBPcdyx+FX6WFNIoNuJzJfQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + isomorphic.js: 0.2.5 + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /logform@2.6.0: + resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.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 + dev: false + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /media-typer@0.3.0: + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} + engines: {node: '>= 0.6'} + dev: false + + /merge-descriptors@1.0.1: + resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} + dev: false + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /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'} + 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 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false + + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + + /node-abi@3.52.0: + resolution: {integrity: sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: false + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /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.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + dependencies: + fn.name: 1.1.0 + dev: false + + /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 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + 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'} + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.52.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + + /pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /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 + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + 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'} + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + 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 + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /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 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: false + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.6 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + 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 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + 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 + 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@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': 7.23.5 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.26.0 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + 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 + dev: false + + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + 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 + dev: false + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: false + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: false + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: false + + /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: false + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: true + + /tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /terser@5.26.0: + resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /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'} + dev: false + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.1 + dev: true + + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /tsutils@3.21.0(typescript@5.3.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.3.3 + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /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-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /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 + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + 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.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /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 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.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'} + dev: false + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + + /utils-merge@1.0.1: + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + engines: {node: '>= 0.4.0'} + dev: false + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: false + + /vite-express@0.9.2(express@4.18.2)(vite@4.5.1): + resolution: {integrity: sha512-kfrx5qPj3Fn1KicqW4TLnRPGTuqVHwXTItX3o38qMzYUh2NAGWL2uak9eNnk+IQN5vXXzE57Prie+1YeVICEEA==} + peerDependencies: + express: ^4.18.2 + vite: ^4.0.0 + dependencies: + express: 4.18.2 + picocolors: 1.0.0 + vite: 4.5.1 + dev: false + + /vite-plugin-pwa@0.16.7(vite@4.5.1)(workbox-build@7.0.0)(workbox-window@7.0.0): + resolution: {integrity: sha512-4WMA5unuKlHs+koNoykeuCfTcqEGbiTRr8sVYUQMhc6tWxZpSRnv9Ojk4LKmqVhoPGHfBVCdGaMo8t9Qidkc1Q==} + engines: {node: '>=16.0.0'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + workbox-build: ^7.0.0 + workbox-window: ^7.0.0 + dependencies: + debug: 4.3.4 + fast-glob: 3.3.2 + pretty-bytes: 6.1.1 + vite: 4.5.1 + workbox-build: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vite@4.5.1: + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.32 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /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-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /winston-transport@4.6.0: + resolution: {integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==} + engines: {node: '>= 12.0.0'} + dependencies: + logform: 2.6.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + dev: false + + /winston@3.11.0: + resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.5 + is-stream: 2.0.1 + logform: 2.6.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.4.3 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.6.0 + dev: false + + /workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@babel/core': 7.23.6 + '@babel/preset-env': 7.23.6(@babel/core@7.23.6) + '@babel/runtime': 7.23.6 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.6)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2(rollup@2.79.1) + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.0.0 + workbox-broadcast-update: 7.0.0 + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-google-analytics: 7.0.0 + workbox-navigation-preload: 7.0.0 + workbox-precaching: 7.0.0 + workbox-range-requests: 7.0.0 + workbox-recipes: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + workbox-streams: 7.0.0 + workbox-sw: 7.0.0 + workbox-window: 7.0.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + dev: true + + /workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + dependencies: + idb: 7.1.1 + workbox-core: 7.0.0 + dev: true + + /workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + dependencies: + workbox-background-sync: 7.0.0 + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + dependencies: + workbox-cacheable-response: 7.0.0 + workbox-core: 7.0.0 + workbox-expiration: 7.0.0 + workbox-precaching: 7.0.0 + workbox-routing: 7.0.0 + workbox-strategies: 7.0.0 + dev: true + + /workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + dependencies: + workbox-core: 7.0.0 + dev: true + + /workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + dependencies: + workbox-core: 7.0.0 + workbox-routing: 7.0.0 + dev: true + + /workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + dev: true + + /workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + dependencies: + '@types/trusted-types': 2.0.7 + workbox-core: 7.0.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /ws@8.15.1: + resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==} + 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 + dev: false + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/mast-react/public/vite.svg b/mast-react/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/mast-react/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mast-react/server.js b/mast-react/server.js new file mode 100644 index 0000000..5b6d9a8 --- /dev/null +++ b/mast-react/server.js @@ -0,0 +1,23 @@ +import express from "express"; +import ViteExpress from "vite-express"; +import { attachWebsocketServer } from "@vlcn.io/ws-server"; +import * as http from "http"; + +const PORT = parseInt(process.env.PORT || "8080"); + +const app = express(); +const server = http.createServer(app); + +const wsConfig = { + dbFolder: "./dbs", + schemaFolder: "./src/schemas", + pathPattern: /\/sync/, +}; + +attachWebsocketServer(server, wsConfig); + +server.listen(PORT, () => + console.log("info", `listening on http://localhost:${PORT}!`) +); + +ViteExpress.bind(app, server); diff --git a/mast-react/src/App.css b/mast-react/src/App.css new file mode 100644 index 0000000..de3e781 --- /dev/null +++ b/mast-react/src/App.css @@ -0,0 +1,31 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 2em; + will-change: filter; + transition: filter 300ms; +} + +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} +.logo.vlcn:hover { + filter: drop-shadow(0 0 2em #e3eaef); +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/mast-react/src/App.tsx b/mast-react/src/App.tsx new file mode 100644 index 0000000..b04f258 --- /dev/null +++ b/mast-react/src/App.tsx @@ -0,0 +1,148 @@ +import { CtxAsync, useCachedState, useQuery, useSync } from "@vlcn.io/react"; +import reactLogo from "./assets/react.svg"; +import viteLogo from "/vite.svg"; +import vlcnLogo from "./assets/vlcn.png"; +import "./App.css"; +import randomWords from "./support/randomWords.js"; +import { useDB } from "@vlcn.io/react"; +import SyncWorker from "./sync-worker.js?worker"; + +type TestRecord = { id: string; name: string }; +const wordOptions = { exactly: 3, join: " " }; + +function getEndpoint() { + let proto = "ws:"; + const host = window.location.host; + if (window.location.protocol === "https:") { + proto = "wss:"; + } + + return `${proto}//${host}/sync`; +} + +const worker = new SyncWorker(); +function App({ dbname }: { dbname: string }) { + const ctx = useDB(dbname); + useSync({ + dbname, + endpoint: getEndpoint(), + room: dbname, + worker, + }); + const data = useQuery( + ctx, + "SELECT * FROM test ORDER BY id DESC" + ).data; + + const addData = () => { + ctx.db.exec("INSERT INTO test (id, name) VALUES (?, ?);", [ + nanoid(10), + randomWords(wordOptions) as string, + ]); + }; + + const dropData = () => { + ctx.db.exec("DELETE FROM test;"); + }; + + return ( + <> +
+ + Vite logo + + + React logo + + + Vulcan logo + +
+

Vite + React + Vulcan

+
+ + + + + + + + + + + {data.map((row) => ( + + + + + ))} + +
IDName
{row.id} + +
+

+ Edit src/App.tsx and save to test HMR +

+

+ Open another browser and navigate to{" "} + + this window's url + {" "} + to test sync. +

+
+

+ Click on the Vite, React and Vulcan logos to learn more +

+ + ); +} + +function EditableItem({ + ctx, + id, + value, +}: { + ctx: CtxAsync; + id: string; + value: string; +}) { + // Generally you will not need to use `useCachedState`. It is only required for highly interactive components + // that write to the database on every interaction (e.g., keystroke or drag) or in cases where you want + // to de-bounce your writes to the DB. + // + // `useCachedState` will never be required once when one of the following is true: + // a. We complete the synchronous Reactive SQL layer (SQLiteRX) + // b. We figure out how to get SQLite-WASM to do a write + read round-trip in a single event loop tick + const [cachedValue, setCachedValue] = useCachedState(value); + const onChange = async (e: React.ChangeEvent) => { + setCachedValue(e.target.value); + // You could de-bounce your write to the DB here if so desired. + return ctx.db.exec("UPDATE test SET name = ? WHERE id = ?;", [ + e.target.value, + id, + ]); + }; + + return ; +} + +export default App; + +const nanoid = (t = 21) => + crypto + .getRandomValues(new Uint8Array(t)) + .reduce( + (t, e) => + (t += + (e &= 63) < 36 + ? e.toString(36) + : e < 62 + ? (e - 26).toString(36).toUpperCase() + : e > 62 + ? "-" + : "_"), + "" + ); diff --git a/mast-react/src/Root.tsx b/mast-react/src/Root.tsx new file mode 100644 index 0000000..0de7e53 --- /dev/null +++ b/mast-react/src/Root.tsx @@ -0,0 +1,78 @@ +import App from "./App.tsx"; +import schemaContent from "./schemas/main2.sql?raw"; +import { DBProvider } from "@vlcn.io/react"; +import { useEffect, useState } from "react"; + +/** + * Generates a random room name to sync with or pulls one from local storage. + */ +function getRoom(hash: HashBag): string { + return hash.room || localStorage.getItem("room") || newRoom(); +} + +function hashChanged() { + const hash = parseHash(); + const room = getRoom(hash); + if (room != hash.room) { + hash.room = room; + window.location.hash = writeHash(hash); + } + localStorage.setItem("room", room); + return room; +} +const room = hashChanged(); + +export default function Root() { + const [theRoom, setTheRoom] = useState(room); + useEffect(() => { + const cb = () => { + const room = hashChanged(); + if (room != theRoom) { + setTheRoom(room); + } + }; + addEventListener("hashchange", cb); + return () => { + removeEventListener("hashchange", cb); + }; + }, []); // ignore -- theRoom is managed by the effect + + return ( + } + > + ); +} + +type HashBag = { [key: string]: string }; +function parseHash(): HashBag { + const hash = window.location.hash; + const ret: { [key: string]: string } = {}; + if (hash.length > 1) { + const substr = hash.substring(1); + const parts = substr.split(","); + for (const part of parts) { + const [key, value] = part.split("="); + ret[key] = value; + } + } + + return ret; +} + +function writeHash(hash: HashBag) { + const parts = []; + for (const key in hash) { + parts.push(`${key}=${hash[key]}`); + } + return parts.join(","); +} + +function newRoom() { + return crypto.randomUUID().replaceAll("-", ""); +} diff --git a/mast-react/src/assets/react.svg b/mast-react/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/mast-react/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mast-react/src/assets/vlcn-hand.png b/mast-react/src/assets/vlcn-hand.png new file mode 100644 index 0000000000000000000000000000000000000000..50450fa3d58db3962ab4d115f0ad0a1331f97d65 GIT binary patch literal 71288 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 literal 0 HcmV?d00001 diff --git a/mast-react/src/index.css b/mast-react/src/index.css new file mode 100644 index 0000000..845d86a --- /dev/null +++ b/mast-react/src/index.css @@ -0,0 +1,97 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + text-align: center; + margin-top: 20px; + margin-bottom: 80px; +} + +table input { + background: none; + border: none; + outline: none; + width: 100%; + height: 100%; + text-align: center; + padding: 8px; + font-size: 1em; +} + +table input:focus { + background: grey; +} + +thead { + font-size: 24px; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/mast-react/src/main.tsx b/mast-react/src/main.tsx new file mode 100644 index 0000000..06803f3 --- /dev/null +++ b/mast-react/src/main.tsx @@ -0,0 +1,13 @@ +import ReactDOM from "react-dom/client"; + +import "./index.css"; + +import React from "react"; +import Root from "./Root.tsx"; + +// Launch our app. +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + +); diff --git a/mast-react/src/schemas/main2.sql b/mast-react/src/schemas/main2.sql new file mode 100644 index 0000000..69253bf --- /dev/null +++ b/mast-react/src/schemas/main2.sql @@ -0,0 +1,2 @@ +CREATE TABLE IF NOT EXISTS test (id PRIMARY KEY NOT NULL, name TEXT); +SELECT crsql_as_crr('test'); diff --git a/mast-react/src/support/randomWords.ts b/mast-react/src/support/randomWords.ts new file mode 100644 index 0000000..f6079ca --- /dev/null +++ b/mast-react/src/support/randomWords.ts @@ -0,0 +1,338 @@ +var wordList = [ + // Borrowed from xkcd password generator which borrowed it from wherever + "ability","able","aboard","about","above","accept","accident","according", + "account","accurate","acres","across","act","action","active","activity", + "actual","actually","add","addition","additional","adjective","adult","adventure", + "advice","affect","afraid","after","afternoon","again","against","age", + "ago","agree","ahead","aid","air","airplane","alike","alive", + "all","allow","almost","alone","along","aloud","alphabet","already", + "also","although","am","among","amount","ancient","angle","angry", + "animal","announced","another","answer","ants","any","anybody","anyone", + "anything","anyway","anywhere","apart","apartment","appearance","apple","applied", + "appropriate","are","area","arm","army","around","arrange","arrangement", + "arrive","arrow","art","article","as","aside","ask","asleep", + "at","ate","atmosphere","atom","atomic","attached","attack","attempt", + "attention","audience","author","automobile","available","average","avoid","aware", + "away","baby","back","bad","badly","bag","balance","ball", + "balloon","band","bank","bar","bare","bark","barn","base", + "baseball","basic","basis","basket","bat","battle","be","bean", + "bear","beat","beautiful","beauty","became","because","become","becoming", + "bee","been","before","began","beginning","begun","behavior","behind", + "being","believed","bell","belong","below","belt","bend","beneath", + "bent","beside","best","bet","better","between","beyond","bicycle", + "bigger","biggest","bill","birds","birth","birthday","bit","bite", + "black","blank","blanket","blew","blind","block","blood","blow", + "blue","board","boat","body","bone","book","border","born", + "both","bottle","bottom","bound","bow","bowl","box","boy", + "brain","branch","brass","brave","bread","break","breakfast","breath", + "breathe","breathing","breeze","brick","bridge","brief","bright","bring", + "broad","broke","broken","brother","brought","brown","brush","buffalo", + "build","building","built","buried","burn","burst","bus","bush", + "business","busy","but","butter","buy","by","cabin","cage", + "cake","call","calm","came","camera","camp","can","canal", + "cannot","cap","capital","captain","captured","car","carbon","card", + "care","careful","carefully","carried","carry","case","cast","castle", + "cat","catch","cattle","caught","cause","cave","cell","cent", + "center","central","century","certain","certainly","chain","chair","chamber", + "chance","change","changing","chapter","character","characteristic","charge","chart", + "check","cheese","chemical","chest","chicken","chief","child","children", + "choice","choose","chose","chosen","church","circle","circus","citizen", + "city","class","classroom","claws","clay","clean","clear","clearly", + "climate","climb","clock","close","closely","closer","cloth","clothes", + "clothing","cloud","club","coach","coal","coast","coat","coffee", + "cold","collect","college","colony","color","column","combination","combine", + "come","comfortable","coming","command","common","community","company","compare", + "compass","complete","completely","complex","composed","composition","compound","concerned", + "condition","congress","connected","consider","consist","consonant","constantly","construction", + "contain","continent","continued","contrast","control","conversation","cook","cookies", + "cool","copper","copy","corn","corner","correct","correctly","cost", + "cotton","could","count","country","couple","courage","course","court", + "cover","cow","cowboy","crack","cream","create","creature","crew", + "crop","cross","crowd","cry","cup","curious","current","curve", + "customs","cut","cutting","daily","damage","dance","danger","dangerous", + "dark","darkness","date","daughter","dawn","day","dead","deal", + "dear","death","decide","declared","deep","deeply","deer","definition", + "degree","depend","depth","describe","desert","design","desk","detail", + "determine","develop","development","diagram","diameter","did","die","differ", + "difference","different","difficult","difficulty","dig","dinner","direct","direction", + "directly","dirt","dirty","disappear","discover","discovery","discuss","discussion", + "disease","dish","distance","distant","divide","division","do","doctor", + "does","dog","doing","doll","dollar","done","donkey","door", + "dot","double","doubt","down","dozen","draw","drawn","dream", + "dress","drew","dried","drink","drive","driven","driver","driving", + "drop","dropped","drove","dry","duck","due","dug","dull", + "during","dust","duty","each","eager","ear","earlier","early", + "earn","earth","easier","easily","east","easy","eat","eaten", + "edge","education","effect","effort","egg","eight","either","electric", + "electricity","element","elephant","eleven","else","empty","end","enemy", + "energy","engine","engineer","enjoy","enough","enter","entire","entirely", + "environment","equal","equally","equator","equipment","escape","especially","essential", + "establish","even","evening","event","eventually","ever","every","everybody", + "everyone","everything","everywhere","evidence","exact","exactly","examine","example", + "excellent","except","exchange","excited","excitement","exciting","exclaimed","exercise", + "exist","expect","experience","experiment","explain","explanation","explore","express", + "expression","extra","eye","face","facing","fact","factor","factory", + "failed","fair","fairly","fall","fallen","familiar","family","famous", + "far","farm","farmer","farther","fast","fastened","faster","fat", + "father","favorite","fear","feathers","feature","fed","feed","feel", + "feet","fell","fellow","felt","fence","few","fewer","field", + "fierce","fifteen","fifth","fifty","fight","fighting","figure","fill", + "film","final","finally","find","fine","finest","finger","finish", + "fire","fireplace","firm","first","fish","five","fix","flag", + "flame","flat","flew","flies","flight","floating","floor","flow", + "flower","fly","fog","folks","follow","food","foot","football", + "for","force","foreign","forest","forget","forgot","forgotten","form", + "former","fort","forth","forty","forward","fought","found","four", + "fourth","fox","frame","free","freedom","frequently","fresh","friend", + "friendly","frighten","frog","from","front","frozen","fruit","fuel", + "full","fully","fun","function","funny","fur","furniture","further", + "future","gain","game","garage","garden","gas","gasoline","gate", + "gather","gave","general","generally","gentle","gently","get","getting", + "giant","gift","girl","give","given","giving","glad","glass", + "globe","go","goes","gold","golden","gone","good","goose", + "got","government","grabbed","grade","gradually","grain","grandfather","grandmother", + "graph","grass","gravity","gray","great","greater","greatest","greatly", + "green","grew","ground","group","grow","grown","growth","guard", + "guess","guide","gulf","gun","habit","had","hair","half", + "halfway","hall","hand","handle","handsome","hang","happen","happened", + "happily","happy","harbor","hard","harder","hardly","has","hat", + "have","having","hay","he","headed","heading","health","heard", + "hearing","heart","heat","heavy","height","held","hello","help", + "helpful","her","herd","here","herself","hidden","hide","high", + "higher","highest","highway","hill","him","himself","his","history", + "hit","hold","hole","hollow","home","honor","hope","horn", + "horse","hospital","hot","hour","house","how","however","huge", + "human","hundred","hung","hungry","hunt","hunter","hurried","hurry", + "hurt","husband","ice","idea","identity","if","ill","image", + "imagine","immediately","importance","important","impossible","improve","in","inch", + "include","including","income","increase","indeed","independent","indicate","individual", + "industrial","industry","influence","information","inside","instance","instant","instead", + "instrument","interest","interior","into","introduced","invented","involved","iron", + "is","island","it","its","itself","jack","jar","jet", + "job","join","joined","journey","joy","judge","jump","jungle", + "just","keep","kept","key","kids","kill","kind","kitchen", + "knew","knife","know","knowledge","known","label","labor","lack", + "lady","laid","lake","lamp","land","language","large","larger", + "largest","last","late","later","laugh","law","lay","layers", + "lead","leader","leaf","learn","least","leather","leave","leaving", + "led","left","leg","length","lesson","let","letter","level", + "library","lie","life","lift","light","like","likely","limited", + "line","lion","lips","liquid","list","listen","little","live", + "living","load","local","locate","location","log","lonely","long", + "longer","look","loose","lose","loss","lost","lot","loud", + "love","lovely","low","lower","luck","lucky","lunch","lungs", + "lying","machine","machinery","mad","made","magic","magnet","mail", + "main","mainly","major","make","making","man","managed","manner", + "manufacturing","many","map","mark","market","married","mass","massage", + "master","material","mathematics","matter","may","maybe","me","meal", + "mean","means","meant","measure","meat","medicine","meet","melted", + "member","memory","men","mental","merely","met","metal","method", + "mice","middle","might","mighty","mile","military","milk","mill", + "mind","mine","minerals","minute","mirror","missing","mission","mistake", + "mix","mixture","model","modern","molecular","moment","money","monkey", + "month","mood","moon","more","morning","most","mostly","mother", + "motion","motor","mountain","mouse","mouth","move","movement","movie", + "moving","mud","muscle","music","musical","must","my","myself", + "mysterious","nails","name","nation","national","native","natural","naturally", + "nature","near","nearby","nearer","nearest","nearly","necessary","neck", + "needed","needle","needs","negative","neighbor","neighborhood","nervous","nest", + "never","new","news","newspaper","next","nice","night","nine", + "no","nobody","nodded","noise","none","noon","nor","north", + "nose","not","note","noted","nothing","notice","noun","now", + "number","numeral","nuts","object","observe","obtain","occasionally","occur", + "ocean","of","off","offer","office","officer","official","oil", + "old","older","oldest","on","once","one","only","onto", + "open","operation","opinion","opportunity","opposite","or","orange","orbit", + "order","ordinary","organization","organized","origin","original","other","ought", + "our","ourselves","out","outer","outline","outside","over","own", + "owner","oxygen","pack","package","page","paid","pain","paint", + "pair","palace","pale","pan","paper","paragraph","parallel","parent", + "park","part","particles","particular","particularly","partly","parts","party", + "pass","passage","past","path","pattern","pay","peace","pen", + "pencil","people","per","percent","perfect","perfectly","perhaps","period", + "person","personal","pet","phrase","physical","piano","pick","picture", + "pictured","pie","piece","pig","pile","pilot","pine","pink", + "pipe","pitch","place","plain","plan","plane","planet","planned", + "planning","plant","plastic","plate","plates","play","pleasant","please", + "pleasure","plenty","plural","plus","pocket","poem","poet","poetry", + "point","pole","police","policeman","political","pond","pony","pool", + "poor","popular","population","porch","port","position","positive","possible", + "possibly","post","pot","potatoes","pound","pour","powder","power", + "powerful","practical","practice","prepare","present","president","press","pressure", + "pretty","prevent","previous","price","pride","primitive","principal","principle", + "printed","private","prize","probably","problem","process","produce","product", + "production","program","progress","promised","proper","properly","property","protection", + "proud","prove","provide","public","pull","pupil","pure","purple", + "purpose","push","put","putting","quarter","queen","question","quick", + "quickly","quiet","quietly","quite","rabbit","race","radio","railroad", + "rain","raise","ran","ranch","range","rapidly","rate","rather", + "raw","rays","reach","read","reader","ready","real","realize", + "rear","reason","recall","receive","recent","recently","recognize","record", + "red","refer","refused","region","regular","related","relationship","religious", + "remain","remarkable","remember","remove","repeat","replace","replied","report", + "represent","require","research","respect","rest","result","return","review", + "rhyme","rhythm","rice","rich","ride","riding","right","ring", + "rise","rising","river","road","roar","rock","rocket","rocky", + "rod","roll","roof","room","root","rope","rose","rough", + "round","route","row","rubbed","rubber","rule","ruler","run", + "running","rush","sad","saddle","safe","safety","said","sail", + "sale","salmon","salt","same","sand","sang","sat","satellites", + "satisfied","save","saved","saw","say","scale","scared","scene", + "school","science","scientific","scientist","score","screen","sea","search", + "season","seat","second","secret","section","see","seed","seeing", + "seems","seen","seldom","select","selection","sell","send","sense", + "sent","sentence","separate","series","serious","serve","service","sets", + "setting","settle","settlers","seven","several","shade","shadow","shake", + "shaking","shall","shallow","shape","share","sharp","she","sheep", + "sheet","shelf","shells","shelter","shine","shinning","ship","shirt", + "shoe","shoot","shop","shore","short","shorter","shot","should", + "shoulder","shout","show","shown","shut","sick","sides","sight", + "sign","signal","silence","silent","silk","silly","silver","similar", + "simple","simplest","simply","since","sing","single","sink","sister", + "sit","sitting","situation","six","size","skill","skin","sky", + "slabs","slave","sleep","slept","slide","slight","slightly","slip", + "slipped","slope","slow","slowly","small","smaller","smallest","smell", + "smile","smoke","smooth","snake","snow","so","soap","social", + "society","soft","softly","soil","solar","sold","soldier","solid", + "solution","solve","some","somebody","somehow","someone","something","sometime", + "somewhere","son","song","soon","sort","sound","source","south", + "southern","space","speak","special","species","specific","speech","speed", + "spell","spend","spent","spider","spin","spirit","spite","split", + "spoken","sport","spread","spring","square","stage","stairs","stand", + "standard","star","stared","start","state","statement","station","stay", + "steady","steam","steel","steep","stems","step","stepped","stick", + "stiff","still","stock","stomach","stone","stood","stop","stopped", + "store","storm","story","stove","straight","strange","stranger","straw", + "stream","street","strength","stretch","strike","string","strip","strong", + "stronger","struck","structure","struggle","stuck","student","studied","studying", + "subject","substance","success","successful","such","sudden","suddenly","sugar", + "suggest","suit","sum","summer","sun","sunlight","supper","supply", + "support","suppose","sure","surface","surprise","surrounded","swam","sweet", + "swept","swim","swimming","swing","swung","syllable","symbol","system", + "table","tail","take","taken","tales","talk","tall","tank", + "tape","task","taste","taught","tax","tea","teach","teacher", + "team","tears","teeth","telephone","television","tell","temperature","ten", + "tent","term","terrible","test","than","thank","that","thee", + "them","themselves","then","theory","there","therefore","these","they", + "thick","thin","thing","think","third","thirty","this","those", + "thou","though","thought","thousand","thread","three","threw","throat", + "through","throughout","throw","thrown","thumb","thus","thy","tide", + "tie","tight","tightly","till","time","tin","tiny","tip", + "tired","title","to","tobacco","today","together","told","tomorrow", + "tone","tongue","tonight","too","took","tool","top","topic", + "torn","total","touch","toward","tower","town","toy","trace", + "track","trade","traffic","trail","train","transportation","trap","travel", + "treated","tree","triangle","tribe","trick","tried","trip","troops", + "tropical","trouble","truck","trunk","truth","try","tube","tune", + "turn","twelve","twenty","twice","two","type","typical","uncle", + "under","underline","understanding","unhappy","union","unit","universe","unknown", + "unless","until","unusual","up","upon","upper","upward","us", + "use","useful","using","usual","usually","valley","valuable","value", + "vapor","variety","various","vast","vegetable","verb","vertical","very", + "vessels","victory","view","village","visit","visitor","voice","volume", + "vote","vowel","voyage","wagon","wait","walk","wall","want", + "war","warm","warn","was","wash","waste","watch","water", + "wave","way","we","weak","wealth","wear","weather","week", + "weigh","weight","welcome","well","went","were","west","western", + "wet","whale","what","whatever","wheat","wheel","when","whenever", + "where","wherever","whether","which","while","whispered","whistle","white", + "who","whole","whom","whose","why","wide","widely","wife", + "wild","will","willing","win","wind","window","wing","winter", + "wire","wise","wish","with","within","without","wolf","women", + "won","wonder","wonderful","wood","wooden","wool","word","wore", + "work","worker","world","worried","worry","worse","worth","would", + "wrapped","write","writer","writing","written","wrong","wrote","yard", + "year","yellow","yes","yesterday","yet","you","young","younger", + "your","yourself","youth","zero","zebra","zipper","zoo","zulu" +]; + +export default function words( + options: any +) { + + function word() { + if (options && options.maxLength > 1) { + return generateWordWithMaxLength(); + } else { + return generateRandomWord(); + } + } + + function generateWordWithMaxLength() { + var rightSize = false; + var wordUsed; + while (!rightSize) { + wordUsed = generateRandomWord(); + if(wordUsed.length <= (options.maxLength)) { + rightSize = true; + } + + } + return wordUsed; + } + + function generateRandomWord() { + return wordList[randInt(wordList.length)]; + } + + function randInt(lessThan: number) { + return Math.floor(Math.random() * lessThan); + } + + // No arguments = generate one word + if (typeof(options) === 'undefined') { + return word(); + } + + // Just a number = return that many words + if (typeof(options) === 'number') { + options = { exactly: options }; + } + + // options supported: exactly, min, max, join + if (options.exactly) { + options.min = options.exactly; + options.max = options.exactly; + } + + // not a number = one word par string + if (typeof(options.wordsPerString) !== 'number') { + options.wordsPerString = 1; + } + + //not a function = returns the raw word + if (typeof(options.formatter) !== 'function') { + options.formatter = (word: string) => word; + } + + //not a string = separator is a space + if (typeof(options.separator) !== 'string') { + options.separator = ' '; + } + + var total = options.min + randInt(options.max + 1 - options.min); + var results: any = []; + var token = ''; + var relativeIndex = 0; + + for (var i = 0; (i < total * options.wordsPerString); i++) { + if (relativeIndex === options.wordsPerString - 1) { + token += options.formatter(word(), relativeIndex); + } + else { + token += options.formatter(word(), relativeIndex) + options.separator; + } + relativeIndex++; + if ((i + 1) % options.wordsPerString === 0) { + results.push(token); + token = ''; + relativeIndex = 0; + } + + } + if (typeof options.join === 'string') { + results = results.join(options.join); + } + + return results; +} diff --git a/mast-react/src/sync-worker.ts b/mast-react/src/sync-worker.ts new file mode 100644 index 0000000..3fd0ad2 --- /dev/null +++ b/mast-react/src/sync-worker.ts @@ -0,0 +1,10 @@ +import { Config, defaultConfig } from "@vlcn.io/ws-client"; +import { start } from "@vlcn.io/ws-client/worker.js"; +import { createDbProvider } from "@vlcn.io/ws-browserdb"; + +export const config: Config = { + dbProvider: createDbProvider(), + transportProvider: defaultConfig.transportProvider, +}; + +start(config); diff --git a/mast-react/src/vite-env.d.ts b/mast-react/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/mast-react/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/mast-react/tsconfig.json b/mast-react/tsconfig.json new file mode 100644 index 0000000..4274659 --- /dev/null +++ b/mast-react/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + "allowJs": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/mast-react/tsconfig.node.json b/mast-react/tsconfig.node.json new file mode 100644 index 0000000..42872c5 --- /dev/null +++ b/mast-react/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/mast-react/vite.config.ts b/mast-react/vite.config.ts new file mode 100644 index 0000000..1b8285d --- /dev/null +++ b/mast-react/vite.config.ts @@ -0,0 +1,36 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import { VitePWA } from "vite-plugin-pwa"; + +// https://vitejs.dev/config/ +export default defineConfig({ + build: { + target: "esnext", + }, + optimizeDeps: { + exclude: ["@vite/client", "@vite/env", "@vlcn.io/crsqlite-wasm"], + esbuildOptions: { + target: "esnext", + }, + }, + plugins: [ + react(), + // VitePWA({ + // workbox: { + // globPatterns: [ + // "**/*.js", + // "**/*.css", + // "**/*.svg", + // "**/*.html", + // "**/*.png", + // "**/*.wasm", + // ], + // }, + // }), + ], + server: { + fs: { + strict: false, + }, + }, +});