diff --git a/components/crystallize-import/src/core.server/use-cases/crystallize/push-item-to-flow.ts b/components/crystallize-import/src/core.server/use-cases/crystallize/push-item-to-flow.ts index dab0d7f..b13a981 100644 --- a/components/crystallize-import/src/core.server/use-cases/crystallize/push-item-to-flow.ts +++ b/components/crystallize-import/src/core.server/use-cases/crystallize/push-item-to-flow.ts @@ -46,7 +46,7 @@ export const pushItemToFlow = async ( if (!res?.addItemsToFlowStage?.content || res?.addItemsToFlowStage?.content.length === 0) { throw new Error( res?.addItemsToFlowStage?.error || - `Failed to add item to flow ${id}-${language}-${version} to stage ${stage}`, + `Failed to add item to flow ${id}-${language}-${version} to stage ${stage}`, ); } }; diff --git a/components/generative-ai-app/.env.dist b/components/generative-ai-app/.env.dist new file mode 100644 index 0000000..71d7430 --- /dev/null +++ b/components/generative-ai-app/.env.dist @@ -0,0 +1,5 @@ +CRYSTALLIZE_ACCESS_TOKEN_ID=xxx +CRYSTALLIZE_ACCESS_TOKEN_SECRET=xxx +OPENAI_API_KEY=xxx +JWT_SECRET=xxx +CRYSTALLIZE_SIGNATURE_SECRET=xxx diff --git a/components/generative-ai-app/.gitignore b/components/generative-ai-app/.gitignore new file mode 100644 index 0000000..1dcef2d --- /dev/null +++ b/components/generative-ai-app/.gitignore @@ -0,0 +1,2 @@ +node_modules +.env \ No newline at end of file diff --git a/components/generative-ai-app/Caddyfile b/components/generative-ai-app/Caddyfile new file mode 100644 index 0000000..adb8c4b --- /dev/null +++ b/components/generative-ai-app/Caddyfile @@ -0,0 +1,3 @@ +generative-ai-app.crystallize.app.local { + reverse_proxy 127.0.0.1:3000 +} diff --git a/components/generative-ai-app/Dockerfile b/components/generative-ai-app/Dockerfile new file mode 100644 index 0000000..12f0305 --- /dev/null +++ b/components/generative-ai-app/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20-slim as base +LABEL fly_launch_runtime="Remix" +RUN mkdir /app +WORKDIR /app +ARG PNPM_VERSION=9.0.1 +RUN npm install -g pnpm@$PNPM_VERSION +COPY . . +RUN pnpm install --frozen-lockfile --prod=false +RUN pnpm build +ENV NODE_ENV=production +ENV PORT=80 +EXPOSE 80 +CMD [ "pnpm", "start" ] diff --git a/components/generative-ai-app/Makefile b/components/generative-ai-app/Makefile new file mode 100644 index 0000000..206e492 --- /dev/null +++ b/components/generative-ai-app/Makefile @@ -0,0 +1,63 @@ +# Styles +YELLOW=$(shell echo "\033[00;33m") +RED=$(shell echo "\033[00;31m") +RESTORE=$(shell echo "\033[0m") + +# Variables +PACKAGE_MANAGER := pnpm +CADDY := caddy +CADDY_PID_FILE := caddy.dev.pid +CADDYFILE := Caddyfile + +.DEFAULT_GOAL := list + +.PHONY: list +list: + @echo "******************************" + @echo "${YELLOW}Available targets${RESTORE}:" + @grep -E '^[a-zA-Z-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " ${YELLOW}%-15s${RESTORE} > %s\n", $$1, $$2}' + @echo "${RED}==============================${RESTORE}" + +.PHONY: clean +clean: stop ## Clean non-essential files + @rm -rf node_modules + +.PHONY: install +install: ## Install dependencies + @$(PACKAGE_MANAGER) install + +.PHONY: serve-https +serve-https: ## Start the HTTPS proxy + @$(CADDY) start --config $(CADDYFILE) --pidfile $(CADDY_PID_FILE) + +.PHONY: serve-front +serve-front: ## Serve the Frontend + @$(PACKAGE_MANAGER) run codegen + @$(PACKAGE_MANAGER) run dev + +.PHONY: stop +stop: ## Stop all the local services you need + -@$(CADDY) stop > /dev/null 2>&1 & + -@if [ -f $(CADDY_PID_FILE) ]; then \ + kill -9 `cat $(CADDY_PID_FILE)`; \ + rm -f $(CADDY_PID_FILE); \ + fi + +.PHONY: serve +serve: stop serve-https serve-front ## Run all the local services you need + + +.PHONY: codeclean +codeclean: ## Code Clean + @$(PACKAGE_MANAGER) run lint:fix + @$(PACKAGE_MANAGER) run prettier:fix + @$(PACKAGE_MANAGER) run lint:check + @$(PACKAGE_MANAGER) run prettier:check + +.PHONY: strict-codeclean +strict-codeclean: codeclean + @$(PACKAGE_MANAGER) run typecheck + +.PHONY: tests +tests: ## Run All the Tests + @$(PACKAGE_MANAGER) run test diff --git a/components/generative-ai-app/README.md b/components/generative-ai-app/README.md new file mode 100644 index 0000000..6a9ba2a --- /dev/null +++ b/components/generative-ai-app/README.md @@ -0,0 +1,26 @@ +# Crystallize - Generate Content with AI APP + +## Requirements + +- Volta.sh (that will bring good version of Node ) +- Docker +- Node: 20.x +- PNPM: 9+ + +## Installation + +```bash +make install +``` + +> Important!: You need to adapt variables in the `.env`. + +## Run the project + +```bash +make serve +``` + +## Contributing + +- `make codeclean` will keep the project in order. diff --git a/components/generative-ai-app/codegen.ts b/components/generative-ai-app/codegen.ts new file mode 100644 index 0000000..649ffe8 --- /dev/null +++ b/components/generative-ai-app/codegen.ts @@ -0,0 +1,32 @@ +import type { CodegenConfig } from '@graphql-codegen/cli'; + +const tokenId = process.env.CRYSTALLIZE_ACCESS_TOKEN_ID; +const tokenSecret = process.env.CRYSTALLIZE_ACCESS_TOKEN_SECRET; + +if (!tokenId || !tokenSecret) { + throw new Error('Missing env variable(s) when generating api legacy schemas'); +} + +const config: CodegenConfig = { + overwrite: true, + schema: [ + { + [`https://pim.crystallize.com/graphql`]: { + headers: { + 'X-Crystallize-Access-Token-Id': tokenId, + 'X-Crystallize-Access-Token-Secret': tokenSecret, + }, + }, + }, + ], + generates: { + './src/__generated__/types.ts': { + plugins: ['typescript'], + config: { + preResolveTypes: false, + }, + }, + }, +}; + +export default config; diff --git a/components/generative-ai-app/fly.toml b/components/generative-ai-app/fly.toml new file mode 100644 index 0000000..9a5c831 --- /dev/null +++ b/components/generative-ai-app/fly.toml @@ -0,0 +1,22 @@ +# fly.toml app configuration file generated for generative-ai-app on 2024-04-17T10:24:31+02:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'generative-ai-app' +primary_region = 'lhr' + +[build] + +[http_service] + internal_port = 80 + force_https = true + auto_stop_machines = true + auto_start_machines = true + min_machines_running = 0 + processes = ['app'] + +[[vm]] + memory = '1gb' + cpu_kind = 'shared' + cpus = 1 diff --git a/components/generative-ai-app/package.json b/components/generative-ai-app/package.json new file mode 100644 index 0000000..54c1fe7 --- /dev/null +++ b/components/generative-ai-app/package.json @@ -0,0 +1,62 @@ +{ + "name": "crystallize-generative-ai-app", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "build": "remix vite:build", + "dev": "remix vite:dev --host", + "lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .", + "start": "remix-serve ./build/server/index.js", + "codegen": "graphql-codegen --require dotenv/config --config codegen.ts", + "typecheck": "tsc", + "lint:check": "eslint .", + "lint:fix": "eslint . --fix", + "prettier:fix": "prettier --write .", + "prettier:check": "prettier --check .", + "test": "echo todo" + }, + "dependencies": { + "@crystallize/app-signal": "^1.1.1", + "@crystallize/design-system": "^1.24.6", + "@crystallize/js-api-client": "^2.5.0", + "@remix-run/node": "^2.8.1", + "@remix-run/react": "^2.8.1", + "@remix-run/serve": "^2.8.1", + "isbot": "^4.1.0", + "jose": "^5.2.4", + "openai": "^4.36.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-textarea-autosize": "^8.5.3" + }, + "devDependencies": { + "@graphql-codegen/cli": "^5.0.2", + "@graphql-codegen/typescript": "^4.0.6", + "@remix-run/dev": "^2.8.1", + "@tailwindcss/container-queries": "^0.1.1", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "autoprefixer": "^10.4.19", + "eslint": "^8.38.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "prettier": "^3.2.5", + "tailwindcss": "^3.4.3", + "typescript": "^5.1.6", + "vite": "^5.1.0", + "vite-tsconfig-paths": "^4.2.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "packageManager": "pnpm@9.0.1", + "volta": { + "node": "20.12.2" + } +} diff --git a/components/generative-ai-app/pnpm-lock.yaml b/components/generative-ai-app/pnpm-lock.yaml new file mode 100644 index 0000000..02724fa --- /dev/null +++ b/components/generative-ai-app/pnpm-lock.yaml @@ -0,0 +1,13626 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@crystallize/app-signal': + specifier: ^1.1.1 + version: 1.1.1 + '@crystallize/design-system': + specifier: ^1.24.6 + version: 1.24.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(yjs@13.6.14) + '@crystallize/js-api-client': + specifier: ^2.5.0 + version: 2.5.0 + '@remix-run/node': + specifier: ^2.8.1 + version: 2.8.1(typescript@5.4.5) + '@remix-run/react': + specifier: ^2.8.1 + version: 2.8.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5) + '@remix-run/serve': + specifier: ^2.8.1 + version: 2.8.1(typescript@5.4.5) + isbot: + specifier: ^4.1.0 + version: 4.4.0 + jose: + specifier: ^5.2.4 + version: 5.2.4 + openai: + specifier: ^4.36.0 + version: 4.36.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-textarea-autosize: + specifier: ^8.5.3 + version: 8.5.3(@types/react@18.2.79)(react@18.2.0) + +devDependencies: + '@graphql-codegen/cli': + specifier: ^5.0.2 + version: 5.0.2(graphql@16.8.1)(typescript@5.4.5) + '@graphql-codegen/typescript': + specifier: ^4.0.6 + version: 4.0.6(graphql@16.8.1) + '@remix-run/dev': + specifier: ^2.8.1 + version: 2.8.1(@remix-run/serve@2.8.1)(typescript@5.4.5)(vite@5.2.9) + '@tailwindcss/container-queries': + specifier: ^0.1.1 + version: 0.1.1(tailwindcss@3.4.3) + '@types/react': + specifier: ^18.2.20 + version: 18.2.79 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.2.25 + '@typescript-eslint/eslint-plugin': + specifier: ^6.7.4 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: ^6.7.4 + version: 6.21.0(eslint@8.57.0)(typescript@5.4.5) + autoprefixer: + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.38) + eslint: + specifier: ^8.38.0 + version: 8.57.0 + eslint-import-resolver-typescript: + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: + specifier: ^2.28.1 + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-jsx-a11y: + specifier: ^6.7.1 + version: 6.8.0(eslint@8.57.0) + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.34.1(eslint@8.57.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.57.0) + prettier: + specifier: ^3.2.5 + version: 3.2.5 + tailwindcss: + specifier: ^3.4.3 + version: 3.4.3 + typescript: + specifier: ^5.1.6 + version: 5.4.5 + vite: + specifier: ^5.1.0 + version: 5.2.9 + vite-tsconfig-paths: + specifier: ^4.2.1 + version: 4.3.2(typescript@5.4.5)(vite@5.2.9) + +packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: '>=10' } + dev: true + + /@ampproject/remapping@2.3.0: + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@ardatan/relay-compiler@12.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==, + } + hasBin: true + peerDependencies: + graphql: '*' + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/runtime': 7.24.4 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.24.4) + chalk: 4.1.2 + fb-watchman: 2.0.2 + fbjs: 3.0.5 + glob: 7.2.3 + graphql: 16.8.1 + immutable: 3.7.6 + invariant: 2.2.4 + nullthrows: 1.1.1 + relay-runtime: 12.0.0 + signedsource: 1.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@ardatan/sync-fetch@0.0.1: + resolution: + { + integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==, + } + engines: { node: '>=14' } + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /@babel/code-frame@7.24.2: + resolution: + { + integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + dev: true + + /@babel/compat-data@7.24.4: + resolution: + { + integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/core@7.24.4: + resolution: + { + integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.24.4: + resolution: + { + integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: + { + integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.24.0 + 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.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + resolution: + { + integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@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.24.1(@babel/core@7.24.4) + '@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-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.24.0 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.24.0 + 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.24.0 + dev: true + + /@babel/helper-module-imports@7.24.3: + resolution: + { + integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + resolution: + { + integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@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.24.0 + dev: true + + /@babel/helper-plugin-utils@7.24.0: + resolution: + { + integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@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.24.0 + 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.24.0 + 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.24.0 + dev: true + + /@babel/helper-string-parser@7.24.1: + resolution: + { + integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==, + } + 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/helpers@7.24.4: + resolution: + { + integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.24.2: + resolution: + { + integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: true + + /@babel/parser@7.24.4: + resolution: + { + integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==, + } + engines: { node: '>=6.0.0' } + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4): + resolution: + { + integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, + } + engines: { node: '>=6.9.0' } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.4): + resolution: + { + integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, + } + engines: { node: '>=6.9.0' } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): + resolution: + { + integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 + dev: true + + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): + resolution: + { + integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): + resolution: + { + integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): + resolution: + { + integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + dev: true + + /@babel/runtime@7.24.4: + resolution: + { + integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==, + } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.24.0: + resolution: + { + integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + dev: true + + /@babel/traverse@7.24.1: + resolution: + { + integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.24.0: + resolution: + { + integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@crystallize/app-signal@1.1.1: + resolution: + { + integrity: sha512-9XdC3wUNBUctVGMrqmlnLCN4JMkWvRwHFa54LJTfiBSQ1rgx7YP1SddpbC3Z/wOeG3hsXCbGHbtmR4LLJNxw+w==, + } + dev: false + + /@crystallize/design-system@1.24.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(yjs@13.6.14): + resolution: + { + integrity: sha512-DIvmGAQLrkk/f5I0FigjbXxL9DkYZJ8Hns6Luo/7Ug2AMkvDOuxnYWziwpR9koYFNN/uoRrXj+dXqOaxJRcsYw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@lexical/clipboard': 0.12.4(lexical@0.12.4) + '@lexical/code': 0.12.4(lexical@0.12.4) + '@lexical/file': 0.12.4(lexical@0.12.4) + '@lexical/hashtag': 0.12.4(lexical@0.12.4) + '@lexical/html': 0.12.4(lexical@0.12.4) + '@lexical/link': 0.12.4(lexical@0.12.4) + '@lexical/list': 0.12.4(lexical@0.12.4) + '@lexical/mark': 0.12.4(lexical@0.12.4) + '@lexical/markdown': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(lexical@0.12.4) + '@lexical/overflow': 0.12.4(lexical@0.12.4) + '@lexical/react': 0.12.4(lexical@0.12.4)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14) + '@lexical/rich-text': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/table': 0.12.4(lexical@0.12.4) + '@lexical/text': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + '@lexical/yjs': 0.12.4(lexical@0.12.4)(yjs@13.6.14) + '@radix-ui/react-checkbox': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collapsible': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': 1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-progress': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-radio-group': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.1.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + class-variance-authority: 0.4.0(typescript@5.4.5) + lexical: 0.12.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + sonner: 0.6.2(react-dom@18.2.0)(react@18.2.0) + tailwindcss-radix: 2.9.0 + use-debounce: 8.0.4(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - typescript + - yjs + dev: false + + /@crystallize/js-api-client@2.5.0: + resolution: + { + integrity: sha512-BlqGQUzvti3U66s3iYGoElOTrvi2lVv9dtYLI7m/oecMhInh1ZZtsjHc2rXkryoKvf5Tw3UolPBAnL1bGgoC0w==, + } + dependencies: + dotenv: 16.4.5 + json-to-graphql-query: 2.2.5 + mime-lite: 1.0.3 + node-fetch: 2.7.0 + tiny-invariant: 1.3.3 + typescript: 5.4.5 + zod: 3.22.4 + transitivePeerDependencies: + - encoding + dev: false + + /@emotion/hash@0.9.1: + resolution: + { + integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, + } + dev: true + + /@esbuild/aix-ppc64@0.20.2: + resolution: + { + integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.17.6: + resolution: + { + integrity: sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.20.2: + resolution: + { + integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.6: + resolution: + { + integrity: sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.20.2: + resolution: + { + integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.6: + resolution: + { + integrity: sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.20.2: + resolution: + { + integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.6: + resolution: + { + integrity: sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.20.2: + resolution: + { + integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.6: + resolution: + { + integrity: sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.2: + resolution: + { + integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.6: + resolution: + { + integrity: sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.20.2: + resolution: + { + integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.6: + resolution: + { + integrity: sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.20.2: + resolution: + { + integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.6: + resolution: + { + integrity: sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.2: + resolution: + { + integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.6: + resolution: + { + integrity: sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.2: + resolution: + { + integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.6: + resolution: + { + integrity: sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.20.2: + resolution: + { + integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.6: + resolution: + { + integrity: sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.20.2: + resolution: + { + integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.6: + resolution: + { + integrity: sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.20.2: + resolution: + { + integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.6: + resolution: + { + integrity: sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: + { + integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.6: + resolution: + { + integrity: sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.2: + resolution: + { + integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.6: + resolution: + { + integrity: sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.2: + resolution: + { + integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.6: + resolution: + { + integrity: sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.20.2: + resolution: + { + integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.6: + resolution: + { + integrity: sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.2: + resolution: + { + integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.6: + resolution: + { + integrity: sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.2: + resolution: + { + integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.6: + resolution: + { + integrity: sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.2: + resolution: + { + integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.6: + resolution: + { + integrity: sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.20.2: + resolution: + { + integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.6: + resolution: + { + integrity: sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.20.2: + resolution: + { + integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.6: + resolution: + { + integrity: sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.20.2: + resolution: + { + integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.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.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: + { + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: + { + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: + { + integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@floating-ui/core@0.7.3: + resolution: + { + integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==, + } + dev: false + + /@floating-ui/dom@0.5.4: + resolution: + { + integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==, + } + dependencies: + '@floating-ui/core': 0.7.3 + dev: false + + /@floating-ui/react-dom@0.7.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==, + } + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 0.5.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@graphql-codegen/add@5.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-ouBkSvMFUhda5VoKumo/ZvsZM9P5ZTyDsI8LW18VxSNWOjrTeLXBWHG8Gfaai0HwhflPtCYVABbriEcOmrRShQ==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-codegen/cli@5.0.2(graphql@16.8.1)(typescript@5.4.5): + resolution: + { + integrity: sha512-MBIaFqDiLKuO4ojN6xxG9/xL9wmfD3ZjZ7RsPjwQnSHBCUXnEkdKvX+JVpx87Pq29Ycn8wTJUguXnTZ7Di0Mlw==, + } + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + dependencies: + '@babel/generator': 7.24.4 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + '@graphql-codegen/client-preset': 4.2.5(graphql@16.8.1) + '@graphql-codegen/core': 4.0.2(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/code-file-loader': 8.1.1(graphql@16.8.1) + '@graphql-tools/git-loader': 8.0.5(graphql@16.8.1) + '@graphql-tools/github-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/load': 8.0.2(graphql@16.8.1) + '@graphql-tools/prisma-loader': 8.0.3(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@whatwg-node/fetch': 0.8.8 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.4.5) + debounce: 1.2.1 + detect-indent: 6.1.0 + graphql: 16.8.1 + graphql-config: 5.0.3(graphql@16.8.1)(typescript@5.4.5) + inquirer: 8.2.6 + is-glob: 4.0.3 + jiti: 1.21.0 + json-to-pretty-yaml: 1.2.2 + listr2: 4.0.5 + log-symbols: 4.1.0 + micromatch: 4.0.5 + shell-quote: 1.8.1 + string-env-interpolation: 1.0.1 + ts-log: 2.2.5 + tslib: 2.6.2 + yaml: 2.4.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding + - enquirer + - supports-color + - typescript + - utf-8-validate + dev: true + + /@graphql-codegen/client-preset@4.2.5(graphql@16.8.1): + resolution: + { + integrity: sha512-hAdB6HN8EDmkoBtr0bPUN/7NH6svzqbcTDMWBCRXPESXkl7y80po+IXrXUjsSrvhKG8xkNXgJNz/2mjwHzywcA==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 + '@graphql-codegen/add': 5.0.2(graphql@16.8.1) + '@graphql-codegen/gql-tag-operations': 4.0.6(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/typed-document-node': 5.0.6(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.6(graphql@16.8.1) + '@graphql-codegen/typescript-operations': 4.2.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 5.1.0(graphql@16.8.1) + '@graphql-tools/documents': 1.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/core@4.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-tools/schema': 10.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-codegen/gql-tag-operations@4.0.6(graphql@16.8.1): + resolution: + { + integrity: sha512-y6iXEDpDNjwNxJw3WZqX1/Znj0QHW7+y8O+t2V8qvbTT+3kb2lr9ntc8By7vCr6ctw9tXI4XKaJgpTstJDOwFA==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 5.1.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + auto-bind: 4.0.0 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/plugin-helpers@5.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-yZ1rpULIWKBZqCDlvGIJRSyj1B2utkEdGmXZTBT/GVayP4hyRYlkd36AJV/LfEsVD8dnsKL5rLz2VTYmRNlJ5Q==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + change-case-all: 1.0.15 + common-tags: 1.8.2 + graphql: 16.8.1 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.6.2 + dev: true + + /@graphql-codegen/schema-ast@4.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-5mVAOQQK3Oz7EtMl/l3vOQdc2aYClUzVDHHkMvZlunc+KlGgl81j8TLa+X7ANIllqU4fUEsQU3lJmk4hXP6K7Q==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-codegen/typed-document-node@5.0.6(graphql@16.8.1): + resolution: + { + integrity: sha512-US0J95hOE2/W/h42w4oiY+DFKG7IetEN1mQMgXXeat1w6FAR5PlIz4JrRrEkiVfVetZ1g7K78SOwBD8/IJnDiA==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 5.1.0(graphql@16.8.1) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/typescript-operations@4.2.0(graphql@16.8.1): + resolution: + { + integrity: sha512-lmuwYb03XC7LNRS8oo9M4/vlOrq/wOKmTLBHlltK2YJ1BO/4K/Q9Jdv/jDmJpNydHVR1fmeF4wAfsIp1f9JibA==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/typescript': 4.0.6(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 5.1.0(graphql@16.8.1) + auto-bind: 4.0.0 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/typescript@4.0.6(graphql@16.8.1): + resolution: + { + integrity: sha512-IBG4N+Blv7KAL27bseruIoLTjORFCT3r+QYyMC3g11uY3/9TPpaUyjSdF70yBe5GIQ6dAgDU+ENUC1v7EPi0rw==, + } + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-codegen/schema-ast': 4.0.2(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 5.1.0(graphql@16.8.1) + auto-bind: 4.0.0 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/visitor-plugin-common@5.1.0(graphql@16.8.1): + resolution: + { + integrity: sha512-eamQxtA9bjJqI2lU5eYoA1GbdMIRT2X8m8vhWYsVQVWD3qM7sx/IqJU0kx0J3Vd4/CSd36BzL6RKwksibytDIg==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.3(graphql@16.8.1) + '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) + '@graphql-tools/relay-operation-optimizer': 7.0.1(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + dependency-graph: 0.11.0 + graphql: 16.8.1 + graphql-tag: 2.12.6(graphql@16.8.1) + parse-filepath: 1.0.2 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-tools/apollo-engine-loader@8.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.17 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + dev: true + + /@graphql-tools/batch-execute@9.0.4(graphql@16.8.1): + resolution: + { + integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + dataloader: 2.2.2 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/code-file-loader@8.1.1(graphql@16.8.1): + resolution: + { + integrity: sha512-q4KN25EPSUztc8rA8YUU3ufh721Yk12xXDbtUA+YstczWS7a1RJlghYMFEfR1HsHSYbF7cUqkbnTKSGM3o52bQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/delegate@10.0.4(graphql@16.8.1): + resolution: + { + integrity: sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/batch-execute': 9.0.4(graphql@16.8.1) + '@graphql-tools/executor': 1.2.6(graphql@16.8.1) + '@graphql-tools/schema': 10.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + dataloader: 2.2.2 + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/documents@1.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-rHGjX1vg/nZ2DKqRGfDPNC55CWZBMldEVcH+91BThRa6JeT80NqXknffLLEZLRUxyikCfkwMsk6xR3UNMqG0Rg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + lodash.sortby: 4.7.0 + tslib: 2.6.2 + dev: true + + /@graphql-tools/executor-graphql-ws@1.1.2(graphql@16.8.1): + resolution: + { + integrity: sha512-+9ZK0rychTH1LUv4iZqJ4ESbmULJMTsv3XlFooPUngpxZkk00q6LqHKJRrsLErmQrVaC7cwQCaRBJa0teK17Lg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@types/ws': 8.5.10 + graphql: 16.8.1 + graphql-ws: 5.16.0(graphql@16.8.1) + isomorphic-ws: 5.0.0(ws@8.16.0) + tslib: 2.6.2 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor-http@1.0.9(graphql@16.8.1): + resolution: + { + integrity: sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.5 + '@whatwg-node/fetch': 0.9.17 + extract-files: 11.0.0 + graphql: 16.8.1 + meros: 1.3.0 + tslib: 2.6.2 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@graphql-tools/executor-legacy-ws@1.0.6(graphql@16.8.1): + resolution: + { + integrity: sha512-lDSxz9VyyquOrvSuCCnld3256Hmd+QI2lkmkEv7d4mdzkxkK4ddAWW1geQiWrQvWmdsmcnGGlZ7gDGbhEExwqg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@types/ws': 8.5.10 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.16.0) + tslib: 2.6.2 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor@1.2.6(graphql@16.8.1): + resolution: + { + integrity: sha512-+1kjfqzM5T2R+dCw7F4vdJ3CqG+fY/LYJyhNiWEFtq0ToLwYzR/KKyD8YuzTirEjSxWTVlcBh7endkx5n5F6ew==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.5 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/git-loader@8.0.5(graphql@16.8.1): + resolution: + { + integrity: sha512-P97/1mhruDiA6D5WUmx3n/aeGPLWj2+4dpzDOxFGGU+z9NcI/JdygMkeFpGZNHeJfw+kHfxgPcMPnxHcyhAoVA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + is-glob: 4.0.3 + micromatch: 4.0.5 + tslib: 2.6.2 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/github-loader@8.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/executor-http': 1.0.9(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.3.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.17 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + - encoding + - supports-color + dev: true + + /@graphql-tools/graphql-file-loader@8.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/import': 7.0.1(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + dev: true + + /@graphql-tools/graphql-tag-pluck@8.3.0(graphql@16.8.1): + resolution: + { + integrity: sha512-gNqukC+s7iHC7vQZmx1SEJQmLnOguBq+aqE2zV2+o1hxkExvKqyFli1SY/9gmukFIKpKutCIj+8yLOM+jARutw==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/import@7.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + resolve-from: 5.0.0 + tslib: 2.6.2 + dev: true + + /@graphql-tools/json-file-loader@8.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + dev: true + + /@graphql-tools/load@8.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/schema': 10.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + p-limit: 3.1.0 + tslib: 2.6.2 + dev: true + + /@graphql-tools/merge@9.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/optimize@2.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/prisma-loader@8.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-oZhxnMr3Jw2WAW1h9FIhF27xWzIB7bXWM8olz4W12oII4NiZl7VRkFw9IT50zME2Bqi9LGh9pkmMWkjvbOpl+Q==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/url-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@types/js-yaml': 4.0.9 + '@types/json-stable-stringify': 1.0.36 + '@whatwg-node/fetch': 0.9.17 + chalk: 4.1.2 + debug: 4.3.4 + dotenv: 16.4.5 + graphql: 16.8.1 + graphql-request: 6.1.0(graphql@16.8.1) + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + jose: 5.2.4 + js-yaml: 4.1.0 + json-stable-stringify: 1.1.1 + lodash: 4.17.21 + scuid: 1.1.0 + tslib: 2.6.2 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@graphql-tools/relay-operation-optimizer@7.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-tools/schema@10.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/merge': 9.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/url-loader@8.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) + '@graphql-tools/executor-graphql-ws': 1.1.2(graphql@16.8.1) + '@graphql-tools/executor-http': 1.0.9(graphql@16.8.1) + '@graphql-tools/executor-legacy-ws': 1.0.6(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + '@graphql-tools/wrap': 10.0.5(graphql@16.8.1) + '@types/ws': 8.5.10 + '@whatwg-node/fetch': 0.9.17 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.16.0) + tslib: 2.6.2 + value-or-promise: 1.0.12 + ws: 8.16.0 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + dev: true + + /@graphql-tools/utils@10.1.3(graphql@16.8.1): + resolution: + { + integrity: sha512-loco2ctrrMQzdpSHbcOo6+Ecp21BV67cQ2pNGhuVKAexruu01RdLn3LgtK47B9BpLz3cUD6U0u1R0rur7xMOOg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-inspect: 1.0.0 + dset: 3.1.3 + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/wrap@10.0.5(graphql@16.8.1): + resolution: + { + integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/delegate': 10.0.4(graphql@16.8.1) + '@graphql-tools/schema': 10.0.3(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): + resolution: + { + integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: + { + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, + } + engines: { node: '>=10.10.0' } + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + 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.3: + resolution: + { + integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, + } + dev: true + + /@isaacs/cliui@8.0.2: + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: '>=12' } + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@jridgewell/resolve-uri@3.1.2: + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/set-array@1.2.1: + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } + dev: true + + /@jridgewell/trace-mapping@0.3.25: + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jspm/core@2.0.1: + resolution: + { + integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==, + } + dev: true + + /@kamilkisiela/fast-url-parser@1.1.4: + resolution: + { + integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==, + } + dev: true + + /@lexical/clipboard@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-kFR+UdhtLCMTQgZCyDmYzp2yjPFMNpUZ4TaRjuRBpCRFYwKMlgie4p1J4VJm6sT23kkAFZtVjOfp+gDEYnPHRQ==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/html': 0.12.4(lexical@0.12.4) + '@lexical/list': 0.12.4(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/code@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-pX7rJCjbjCl6VdOPl2hl/UkjP3iPPyCQgH2VQ+WlXapDd+0uZ54nPL1MKCCaFUZocHPmOmSRKKGUp6K2CNiqzg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + prismjs: 1.29.0 + dev: false + + /@lexical/dragon@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-7DaXdQ/5GJ8HRpPYr2+SjaUi912tG9L6ukg9IglG1t51lWGxqLx2chW17tp50XDTtY05w9VnoMaxtgsuCN5Pmg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/file@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-QE25zTs95bZpJTLzvfMDUv12XwJ3QzZzO4Pk73ri2kkp3Mav9R+9E7LEyUdBNwZJiHquU5NZspOgD+7vzBGXAg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/hashtag@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-iCxQRBZmgwAV6kypmxtWg7HVhBC7PKclmqLNaLDLoKBm+keEXpKnGB5iEtgK/tCMiwkzrg+wGcrw5qi+YjvM9Q==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/history@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-XLbSSr9FueAxuKHo4LBi+lZNVAEReNNDCt4MM2Ol8UZhWPlpNskSB/sECYEEQ6/ItlzgtnKyKWjfDFBHRWvC2g==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/html@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-RD/n9n1eCuTZtLaTEI3wuUDlJjCn6j+/0c9GvzqLKhNz9f+E5zMVExhzTT4cZQh5WXbzGFNlwC/cuOtaM3wODg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/link@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-gmEs0GJGDhgwV1x0IrO7Br2GCALijZLIayGWoLAgYiXZee4WZpvjbngZuC6yghYBhrme6muPRMG2sLMwV2cWiQ==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/list@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-qxwRIz+4Aj2u2fzyGPo86vX+1ebwCnamppr/c5ZWuqpRTWtYDWjq5LQKIwAvZBxCzPdtP5jzwyZ6VYWQXYW4Kg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/mark@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-NFFk/3AFFJARjsth8wd5HdeW8XhcaECoQ8wwnJ4fRZzgN0lu3ZSiq+CuVm0NRN5xA5KoUT6sfIQqGOzIPfvdsw==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/markdown@0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(lexical@0.12.4): + resolution: + { + integrity: sha512-cOk0dkafyvQI4DMwwMfkP329bRVfyhXcVF3dcRiydl6ZIgqOrj/EMi+C0qxQkcqg0MO26Rky6LLJ4vQi6AgJDg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/code': 0.12.4(lexical@0.12.4) + '@lexical/link': 0.12.4(lexical@0.12.4) + '@lexical/list': 0.12.4(lexical@0.12.4) + '@lexical/rich-text': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4) + '@lexical/text': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + transitivePeerDependencies: + - '@lexical/clipboard' + - '@lexical/selection' + dev: false + + /@lexical/offset@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-6fjXCx+YD1TMl6GFL4wowhBgbIg+UX3j2OOXh3F7WEp3SDvzoJsJ6F7xRctrHQbluCITM3oDwOyHa1J0m5lrFg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/overflow@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-mEWgVukoOgcyDruHvzk1amy9jgGDVXFYiPn20ykxgrVQz6XEpq+lfyic/BUnN4toNR8p6jc/Yxi2lF1ELCU0Kg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/plain-text@0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4): + resolution: + { + integrity: sha512-osbqOyt19oFG0kTbV71jxxCdgnUqNYW6QXIIaS1SwcCN/N1CdFZ0sNpjPkHIFx9AdZ/Tmi4u9SNFUo16DjvThA==, + } + peerDependencies: + '@lexical/clipboard': 0.12.4 + '@lexical/selection': 0.12.4 + '@lexical/utils': 0.12.4 + lexical: 0.12.4 + dependencies: + '@lexical/clipboard': 0.12.4(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/react@0.12.4(lexical@0.12.4)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14): + resolution: + { + integrity: sha512-tz4ebqJ++YP/Y6FCjk5aU3bvgrps8+i9abqvaaNCSzSQavI0qHtdS7EGy4S9qyO6qKuthXcOGIQxGTweRTkDsA==, + } + peerDependencies: + lexical: 0.12.4 + react: '>=17.x' + react-dom: '>=17.x' + dependencies: + '@lexical/clipboard': 0.12.4(lexical@0.12.4) + '@lexical/code': 0.12.4(lexical@0.12.4) + '@lexical/dragon': 0.12.4(lexical@0.12.4) + '@lexical/hashtag': 0.12.4(lexical@0.12.4) + '@lexical/history': 0.12.4(lexical@0.12.4) + '@lexical/link': 0.12.4(lexical@0.12.4) + '@lexical/list': 0.12.4(lexical@0.12.4) + '@lexical/mark': 0.12.4(lexical@0.12.4) + '@lexical/markdown': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(lexical@0.12.4) + '@lexical/overflow': 0.12.4(lexical@0.12.4) + '@lexical/plain-text': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4) + '@lexical/rich-text': 0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/table': 0.12.4(lexical@0.12.4) + '@lexical/text': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + '@lexical/yjs': 0.12.4(lexical@0.12.4)(yjs@13.6.14) + lexical: 0.12.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: 3.1.4(react@18.2.0) + transitivePeerDependencies: + - yjs + dev: false + + /@lexical/rich-text@0.12.4(@lexical/clipboard@0.12.4)(@lexical/selection@0.12.4)(@lexical/utils@0.12.4)(lexical@0.12.4): + resolution: + { + integrity: sha512-gWMDmdRRFPk00JfQv52650qcpjTN6oBrrYwBydYvEG8WTC8o1k8qEOZaOFja6GElPt0520dpyvcWHTlIL0jv3Q==, + } + peerDependencies: + '@lexical/clipboard': 0.12.4 + '@lexical/selection': 0.12.4 + '@lexical/utils': 0.12.4 + lexical: 0.12.4 + dependencies: + '@lexical/clipboard': 0.12.4(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/selection@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-9lJt9PBJW7lWYiPDo/PGl2nZ6NrdYaDBidEoMNhyusPjeBEr35z4Hm0qWUhDrPDQPhK2i1oBw6nZa94bxuS9Lw==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/table@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-Lyy6y1HOQqzU8O2cH5Zhzek46B0UU7NceM2fJKM7qiBSuxY/nE0BzkFq0xDk3x5W+vhXob6Z32sJSNFImtuqKw==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/utils': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/text@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-r/7402eCf6C/7BqUNR7ZLZQQjsE62wjeuf0rFeW1ulOpwiti/dFn1o+EsCb0hvNeHPzfGgRC+FuDT9KSEKu7Ig==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + lexical: 0.12.4 + dev: false + + /@lexical/utils@0.12.4(lexical@0.12.4): + resolution: + { + integrity: sha512-ColV11ANBY6deT7CdGwP4lzv3pb5caFfFLcVKdGDMMJSUYFQ5l69aZvDP2qWWnNqzGLb+AJSunMd142wWc5LGg==, + } + peerDependencies: + lexical: 0.12.4 + dependencies: + '@lexical/list': 0.12.4(lexical@0.12.4) + '@lexical/selection': 0.12.4(lexical@0.12.4) + '@lexical/table': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + dev: false + + /@lexical/yjs@0.12.4(lexical@0.12.4)(yjs@13.6.14): + resolution: + { + integrity: sha512-qtCiABugE1CiZ7K5iFfQnB1KqfWtLyiRK0nxAaSxuZzQTO4+Kh3WDh7ULppPa53Sf3pKpw8Sq2XB4AXP6csbkg==, + } + peerDependencies: + lexical: 0.12.4 + yjs: '>=13.5.22' + dependencies: + '@lexical/offset': 0.12.4(lexical@0.12.4) + lexical: 0.12.4 + yjs: 13.6.14 + dev: false + + /@mdx-js/mdx@2.3.0: + resolution: + { + integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/mdx': 2.0.13 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + 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.17.1 + dev: true + + /@npmcli/fs@3.1.0: + resolution: + { + integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + semver: 7.6.0 + dev: true + + /@npmcli/git@4.1.0: + resolution: + { + integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/promise-spawn': 6.0.2 + lru-cache: 7.18.3 + npm-pick-manifest: 8.0.2 + proc-log: 3.0.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.0 + which: 3.0.1 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/package-json@4.0.1: + resolution: + { + integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/git': 4.1.0 + glob: 10.3.12 + hosted-git-info: 6.1.1 + json-parse-even-better-errors: 3.0.1 + normalize-package-data: 5.0.0 + proc-log: 3.0.0 + semver: 7.6.0 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/promise-spawn@6.0.2: + resolution: + { + integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + which: 3.0.1 + dev: true + + /@peculiar/asn1-schema@2.3.8: + resolution: + { + integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==, + } + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: true + + /@peculiar/json-schema@1.1.12: + resolution: + { + integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==, + } + engines: { node: '>=8.0.0' } + dependencies: + tslib: 2.6.2 + dev: true + + /@peculiar/webcrypto@1.4.6: + resolution: + { + integrity: sha512-YBcMfqNSwn3SujUJvAaySy5tlYbYm6tVt9SKoXu8BaTdKGROiJDgPR3TXpZdAKUfklzm3lRapJEAltiMQtBgZg==, + } + engines: { node: '>=10.12.0' } + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.5 + tslib: 2.6.2 + webcrypto-core: 1.7.9 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: '>=14' } + requiresBuild: true + dev: true + optional: true + + /@radix-ui/number@1.0.0: + resolution: + { + integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/number@1.0.1: + resolution: + { + integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/primitive@1.0.0: + resolution: + { + integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/primitive@1.0.1: + resolution: + { + integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/react-arrow@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-arrow@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1yientwXqXcErDHEv8av9ZVNEBldH8L9scVR3is20lL+jOCfcJyMFZFEY5cgIrgexsq1qggSXqiEL/d/4f+QXA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-checkbox@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-TisH0B8hWmYP3ONRduYCyN04rR9yLPIw/Rwyn1RoC1suSoGCa8Wn+YPdSSSarSszeIbcg3p2lBkDp2XXit4sZw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collapsible@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NfZqWntvPsC43szs0NvumRjmTTJTLgaDOAnmVGDZaGsg2u6LcJwUT7YeYSKnlxWRQWN4pwwEfoYdWrtoutfO8g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-dialog@1.0.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-EKxxp2WNSmUPkx4trtWNmZ4/vAYEg7JkAfa1HKBUnaubw9eHzf1Orr9B472lJYaYz327RHDrd4R95fsw7VR8DA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-direction@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-direction@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dismissable-layer@1.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-WjJzMrTWROozDqLB0uRWYvj4UuXsM/2L19EmQ3Au+IJWqwvwq9Bwd+P8ivo0Deg9JDPArR1I6MbWNi1CmXsskg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dropdown-menu@2.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-WDZqmwsNuxdBMkvgB85UeSPAT0wSBd+ojxtzX7lU7uYYh47gacCj6Spo0l9+X4TMe3JA1BBMN9c7OhIMaQeKbg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-menu': 2.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-focus-scope@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-Ej2MQTit8IWJiS2uuujGUmxXjF/y5xZptIIQnyd2JHLwtV0R2j9NRVoRj/1j/gJ7e3REdaBw4Hjf4a1ImhkZcQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-id@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-menu@2.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-I5FFZQxCl2fHoJ7R0m5/oWA9EX8/ttH4AbgneoCH7DAXQioFeb0XMAYnOVSp1GgJZ1Nx/mohxNQSeTMcaF1YPw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popover@1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-osxFFO0TiZ9ABpEOitZu0R1Fdd+tSpJgAqLZxRLLdZQ7ya0onSODcITp5hXDVuYQeVXH6pKEBGwXN6ZGjZ0a5g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popper@1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 0.7.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popper@1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-J4Vj7k3k+EHNWgcKrE+BLlQfpewxA7Zd76h5I0bIa+/EqaIZ3DuwrbPj49O3wqN+STnXsBuxiHLiF0iU3yfovw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 0.7.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-portal@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NY2vUWI5WENgAT1nfC6JS7RU5xRYBfjZVLq0HmgEN1Ezy3rk/UruMV4+Rd0F40PEaFC5SrLS1ixYvcYIQrb4Ig==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-radio-group@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-7rrkZCXu0Q7oC0MxCm497X1DdV/tI78oNIGXA8sDbCkboiTkuLSe728zCCpRYHw+9PifHIx86nsbITPEq5yijg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-roving-focus@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-TB76u5TIxKpqMpUAuYH2VqMhHYKa+4Vs1NHygo/llLvlffN6mLVsFhz0AnSFlSBAvTBYVHYAkHAyEt7x1gPJOA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-select@1.1.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-pQmfz7T6oR5m27E3NgKOo6DLs5U1qMZaUcfTENXZnNPeyyRN8pEb6Z+xXE6zomP5sg9pgLOtir4R2Q3f2kkF9w==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/number': 1.0.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.1(react-dom@18.2.0)(react@18.2.0) + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-slider@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-slot@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.1(react@18.2.0): + resolution: + { + integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.2(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-tooltip@1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-RB06pov+O4Npy10ei1C6fsyB9QoOjz7Ubo8Sl3qdKtLgkL9iI96925DYtH0bxx6MH6YB2FuzLU6B75qn3AQQQw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.2(react@18.2.0): + resolution: + { + integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-RG2K8z/K7InnOKpq6YLDmT49HGjNmrK+fr82UCVKT2sW0GYfVnYp4wZWBooT/EYfQ5faA9uIjvsuMMhH61rheg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-rect@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /@radix-ui/react-visually-hidden@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-MwAhMdX+n6S4InwRKSnpUsp+lLkYG6izQF56ul6guSX2mBBLOMV9Frx7xJlkEe2GjKLzbNuHhaCS6e5gopmZNA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-visually-hidden@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-K1hJcCMfWfiYUibRqf3V8r5Drpyf7rh44jnrwAbdvI5iCCijilBBeyQv9SKidYNZIopMdCyR9FnIjkHxHN0FcQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/rect@1.0.0: + resolution: + { + integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@remix-run/dev@2.8.1(@remix-run/serve@2.8.1)(typescript@5.4.5)(vite@5.2.9): + resolution: + { + integrity: sha512-qFt4jAsAJeIOyg6ngeSnTG/9Z5N9QJfeThP/8wRHc1crqYgTiEtcI3DZ8WlAXjVSF5emgn/ZZKqzLAI02OgMfQ==, + } + engines: { node: '>=18.0.0' } + hasBin: true + peerDependencies: + '@remix-run/serve': ^2.8.1 + typescript: ^5.1.0 + vite: ^5.1.0 + wrangler: ^3.28.2 + peerDependenciesMeta: + '@remix-run/serve': + optional: true + typescript: + optional: true + vite: + optional: true + wrangler: + optional: true + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@mdx-js/mdx': 2.3.0 + '@npmcli/package-json': 4.0.1 + '@remix-run/node': 2.8.1(typescript@5.4.5) + '@remix-run/router': 1.15.3-pre.0 + '@remix-run/serve': 2.8.1(typescript@5.4.5) + '@remix-run/server-runtime': 2.8.1(typescript@5.4.5) + '@types/mdx': 2.0.13 + '@vanilla-extract/integration': 6.5.0 + arg: 5.0.2 + cacache: 17.1.4 + chalk: 4.1.2 + chokidar: 3.6.0 + cross-spawn: 7.0.3 + dotenv: 16.4.5 + es-module-lexer: 1.5.0 + esbuild: 0.17.6 + esbuild-plugins-node-modules-polyfill: 1.6.3(esbuild@0.17.6) + execa: 5.1.1 + exit-hook: 2.2.1 + express: 4.19.2 + fs-extra: 10.1.0 + get-port: 5.1.1 + gunzip-maybe: 1.4.2 + jsesc: 3.0.2 + json5: 2.2.3 + lodash: 4.17.21 + lodash.debounce: 4.0.8 + minimatch: 9.0.4 + ora: 5.4.1 + picocolors: 1.0.0 + picomatch: 2.3.1 + pidtree: 0.6.0 + postcss: 8.4.38 + postcss-discard-duplicates: 5.1.0(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-modules: 6.0.0(postcss@8.4.38) + prettier: 2.8.8 + pretty-ms: 7.0.1 + react-refresh: 0.14.0 + remark-frontmatter: 4.0.1 + remark-mdx-frontmatter: 1.1.1 + semver: 7.6.0 + set-cookie-parser: 2.6.0 + tar-fs: 2.1.1 + tsconfig-paths: 4.2.0 + typescript: 5.4.5 + vite: 5.2.9 + ws: 7.5.9 + transitivePeerDependencies: + - '@types/node' + - bluebird + - bufferutil + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - ts-node + - utf-8-validate + dev: true + + /@remix-run/express@2.8.1(express@4.19.2)(typescript@5.4.5): + resolution: + { + integrity: sha512-p1eo8uwZk8uLihSDpUnPOPsTDfghWikVPQfa+e0ZMk6tnJCjcpHAyENKDFtn9vDh9h7YNUg6A7+19CStHgxd7Q==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + express: ^4.17.1 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/node': 2.8.1(typescript@5.4.5) + express: 4.19.2 + typescript: 5.4.5 + + /@remix-run/node@2.8.1(typescript@5.4.5): + resolution: + { + integrity: sha512-ddCwBVlfLvRxTQJHPcaM1lhfMjsFYG3EGmYpWJIWnnzDX5EbX9pUNHBWisMuH1eA0c7pbw0PbW0UtCttKYx2qg==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/server-runtime': 2.8.1(typescript@5.4.5) + '@remix-run/web-fetch': 4.4.2 + '@remix-run/web-file': 3.1.0 + '@remix-run/web-stream': 1.1.0 + '@web3-storage/multipart-parser': 1.0.0 + cookie-signature: 1.2.1 + source-map-support: 0.5.21 + stream-slice: 0.1.2 + typescript: 5.4.5 + + /@remix-run/react@2.8.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5): + resolution: + { + integrity: sha512-HTPm1U8+xz2jPaVjZnssrckfmFMA8sUZUdaWnoF5lmLWdReqcQv+XlBhIrQQ3jO9L8iYYdnzaSZZcRFYSdpTYg==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/router': 1.15.3 + '@remix-run/server-runtime': 2.8.1(typescript@5.4.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.22.3(react@18.2.0) + react-router-dom: 6.22.3(react-dom@18.2.0)(react@18.2.0) + typescript: 5.4.5 + dev: false + + /@remix-run/router@1.15.3: + resolution: + { + integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==, + } + engines: { node: '>=14.0.0' } + + /@remix-run/router@1.15.3-pre.0: + resolution: + { + integrity: sha512-JUQb6sztqJpRbsdKpx3D4+6eaGmHU4Yb/QeKrES/ZbLuijlZMOmZ+gV0ohX5vrRDnJHJmcQPq3Tpk0GGPNM9gg==, + } + engines: { node: '>=14.0.0' } + dev: true + + /@remix-run/serve@2.8.1(typescript@5.4.5): + resolution: + { + integrity: sha512-PyCV7IMnRshwfFw7JJ2hZJppX88VAhZyYjeTAmYb6PK7IDtdmqUf5eOrYDi8gCu914C+aZRu6blxpLRlpyCY8Q==, + } + engines: { node: '>=18.0.0' } + hasBin: true + dependencies: + '@remix-run/express': 2.8.1(express@4.19.2)(typescript@5.4.5) + '@remix-run/node': 2.8.1(typescript@5.4.5) + chokidar: 3.6.0 + compression: 1.7.4 + express: 4.19.2 + get-port: 5.1.1 + morgan: 1.10.0 + source-map-support: 0.5.21 + transitivePeerDependencies: + - supports-color + - typescript + + /@remix-run/server-runtime@2.8.1(typescript@5.4.5): + resolution: + { + integrity: sha512-fh4SOEoONrN73Kvzc0gMDCmYpVRVbvoj9j3BUXHAcn0An8iX+HD/22gU7nTkIBzExM/F9xgEcwTewOnWqLw0Bg==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/router': 1.15.3 + '@types/cookie': 0.6.0 + '@web3-storage/multipart-parser': 1.0.0 + cookie: 0.6.0 + set-cookie-parser: 2.6.0 + source-map: 0.7.4 + typescript: 5.4.5 + + /@remix-run/web-blob@3.1.0: + resolution: + { + integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==, + } + dependencies: + '@remix-run/web-stream': 1.1.0 + web-encoding: 1.1.5 + + /@remix-run/web-fetch@4.4.2: + resolution: + { + integrity: sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==, + } + engines: { node: ^10.17 || >=12.3 } + dependencies: + '@remix-run/web-blob': 3.1.0 + '@remix-run/web-file': 3.1.0 + '@remix-run/web-form-data': 3.1.0 + '@remix-run/web-stream': 1.1.0 + '@web3-storage/multipart-parser': 1.0.0 + abort-controller: 3.0.0 + data-uri-to-buffer: 3.0.1 + mrmime: 1.0.1 + + /@remix-run/web-file@3.1.0: + resolution: + { + integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==, + } + dependencies: + '@remix-run/web-blob': 3.1.0 + + /@remix-run/web-form-data@3.1.0: + resolution: + { + integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==, + } + dependencies: + web-encoding: 1.1.5 + + /@remix-run/web-stream@1.1.0: + resolution: + { + integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==, + } + dependencies: + web-streams-polyfill: 3.3.3 + + /@repeaterjs/repeater@3.0.5: + resolution: + { + integrity: sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==, + } + dev: true + + /@rollup/rollup-android-arm-eabi@4.14.3: + resolution: + { + integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==, + } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.14.3: + resolution: + { + integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==, + } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.14.3: + resolution: + { + integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==, + } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.14.3: + resolution: + { + integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==, + } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.14.3: + resolution: + { + integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.14.3: + resolution: + { + integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==, + } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.14.3: + resolution: + { + integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.14.3: + resolution: + { + integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==, + } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: + resolution: + { + integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==, + } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.14.3: + resolution: + { + integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==, + } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.14.3: + resolution: + { + integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==, + } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.14.3: + resolution: + { + integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.14.3: + resolution: + { + integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.14.3: + resolution: + { + integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==, + } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.14.3: + resolution: + { + integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==, + } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.14.3: + resolution: + { + integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==, + } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.3): + resolution: + { + integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==, + } + peerDependencies: + tailwindcss: '>=3.2.0' + dependencies: + tailwindcss: 3.4.3 + dev: true + + /@types/acorn@4.0.6: + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } + dependencies: + '@types/estree': 1.0.5 + dev: true + + /@types/cookie@0.6.0: + resolution: + { + integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, + } + + /@types/debug@4.1.12: + resolution: + { + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + } + dependencies: + '@types/ms': 0.7.34 + dev: true + + /@types/estree-jsx@1.0.5: + resolution: + { + integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==, + } + dependencies: + '@types/estree': 1.0.5 + dev: true + + /@types/estree@1.0.5: + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, + } + dev: true + + /@types/hast@2.3.10: + resolution: + { + integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /@types/js-yaml@4.0.9: + resolution: + { + integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==, + } + dev: true + + /@types/json-schema@7.0.15: + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } + dev: true + + /@types/json-stable-stringify@1.0.36: + resolution: + { + integrity: sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==, + } + dev: true + + /@types/json5@0.0.29: + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } + dev: true + + /@types/mdast@3.0.15: + resolution: + { + integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /@types/mdx@2.0.13: + resolution: + { + integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, + } + dev: true + + /@types/ms@0.7.34: + resolution: + { + integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, + } + dev: true + + /@types/node-fetch@2.6.11: + resolution: + { + integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, + } + dependencies: + '@types/node': 18.19.31 + form-data: 4.0.0 + dev: false + + /@types/node@18.19.31: + resolution: + { + integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==, + } + dependencies: + undici-types: 5.26.5 + dev: false + + /@types/node@20.12.7: + resolution: + { + integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==, + } + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/prop-types@15.7.12: + resolution: + { + integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==, + } + + /@types/react-dom@18.2.25: + resolution: + { + integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==, + } + dependencies: + '@types/react': 18.2.79 + + /@types/react@18.2.79: + resolution: + { + integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==, + } + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + /@types/semver@7.5.8: + resolution: + { + integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==, + } + dev: true + + /@types/unist@2.0.10: + resolution: + { + integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, + } + dev: true + + /@types/ws@8.5.10: + resolution: + { + integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==, + } + dependencies: + '@types/node': 20.12.7 + dev: true + + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: + { + integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5): + resolution: + { + integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.21.0: + resolution: + { + integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true + + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): + resolution: + { + integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.21.0: + resolution: + { + integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + dev: true + + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5): + resolution: + { + integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): + resolution: + { + integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.21.0: + resolution: + { + integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==, + } + engines: { node: ^16.0.0 || >=18.0.0 } + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } + dev: true + + /@vanilla-extract/babel-plugin-debug-ids@1.0.5: + resolution: + { + integrity: sha512-Rc9A6ylsw7EBErmpgqCMvc/Z/eEZxI5k1xfLQHw7f5HHh3oc5YfzsAsYU/PdmSNjF1dp3sGEViBdDltvwnfVaA==, + } + dependencies: + '@babel/core': 7.24.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@vanilla-extract/css@1.14.2: + resolution: + { + integrity: sha512-OasEW4ojGqqRiUpsyEDUMrSkLnmwbChtafkogpCZ1eDAgAZ9eY9CHLYodj2nB8aV5T25kQ5shm92k25ngjYhhg==, + } + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.4 + chalk: 4.1.2 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.3 + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + outdent: 0.8.0 + dev: true + + /@vanilla-extract/integration@6.5.0: + resolution: + { + integrity: sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==, + } + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@vanilla-extract/babel-plugin-debug-ids': 1.0.5 + '@vanilla-extract/css': 1.14.2 + esbuild: 0.17.6 + eval: 0.1.8 + find-up: 5.0.0 + javascript-stringify: 2.1.0 + lodash: 4.17.21 + mlly: 1.6.1 + outdent: 0.8.0 + vite: 5.2.9 + vite-node: 1.5.0 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /@vanilla-extract/private@1.0.4: + resolution: + { + integrity: sha512-8FGD6AejeC/nXcblgNCM5rnZb9KXa4WNkR03HCWtdJBpANjTgjHEglNLFnhuvdQ78tC6afaxBPI+g7F2NX3tgg==, + } + dev: true + + /@web3-storage/multipart-parser@1.0.0: + resolution: + { + integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==, + } + + /@whatwg-node/events@0.0.3: + resolution: + { + integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==, + } + dev: true + + /@whatwg-node/events@0.1.1: + resolution: + { + integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==, + } + engines: { node: '>=16.0.0' } + dev: true + + /@whatwg-node/fetch@0.8.8: + resolution: + { + integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==, + } + dependencies: + '@peculiar/webcrypto': 1.4.6 + '@whatwg-node/node-fetch': 0.3.6 + busboy: 1.6.0 + urlpattern-polyfill: 8.0.2 + web-streams-polyfill: 3.3.3 + dev: true + + /@whatwg-node/fetch@0.9.17: + resolution: + { + integrity: sha512-TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q==, + } + engines: { node: '>=16.0.0' } + dependencies: + '@whatwg-node/node-fetch': 0.5.10 + urlpattern-polyfill: 10.0.0 + dev: true + + /@whatwg-node/node-fetch@0.3.6: + resolution: + { + integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==, + } + dependencies: + '@whatwg-node/events': 0.0.3 + busboy: 1.6.0 + fast-querystring: 1.1.2 + fast-url-parser: 1.1.3 + tslib: 2.6.2 + dev: true + + /@whatwg-node/node-fetch@0.5.10: + resolution: + { + integrity: sha512-KIAHepie/T1PRkUfze4t+bPlyvpxlWiXTPtcGlbIZ0vWkBJMdRmCg4ZrJ2y4XaO1eTPo1HlWYUuj1WvoIpumqg==, + } + engines: { node: '>=16.0.0' } + dependencies: + '@kamilkisiela/fast-url-parser': 1.1.4 + '@whatwg-node/events': 0.1.1 + busboy: 1.6.0 + fast-querystring: 1.1.2 + tslib: 2.6.2 + dev: true + + /@zxing/text-encoding@0.9.0: + resolution: + { + integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==, + } + requiresBuild: true + optional: true + + /abort-controller@3.0.0: + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: '>=6.5' } + dependencies: + event-target-shim: 5.0.1 + + /accepts@1.3.8: + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn@8.11.3: + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, + } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /agent-base@7.1.1: + resolution: + { + integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==, + } + engines: { node: '>= 14' } + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive@4.5.0: + resolution: + { + integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==, + } + engines: { node: '>= 8.0.0' } + dependencies: + humanize-ms: 1.2.1 + dev: false + + /aggregate-error@3.1.0: + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: '>=8' } + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + 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 + + /ansi-escapes@4.3.2: + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: '>=8' } + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: '>=8' } + dev: true + + /ansi-regex@6.0.1: + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: '>=12' } + 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 + + /ansi-styles@6.2.1: + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: '>=12' } + dev: true + + /any-promise@1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } + 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 + + /arg@5.0.2: + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } + dev: true + + /argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + dev: true + + /aria-hidden@1.2.4: + resolution: + { + integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==, + } + engines: { node: '>=10' } + dependencies: + tslib: 2.6.2 + dev: false + + /aria-query@5.3.0: + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } + dependencies: + dequal: 2.0.3 + dev: true + + /array-buffer-byte-length@1.0.1: + resolution: + { + integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + + /array-flatten@1.1.1: + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, + } + + /array-includes@3.1.8: + resolution: + { + integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: '>=8' } + dev: true + + /array.prototype.findlast@1.2.5: + resolution: + { + integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.findlastindex@1.2.5: + resolution: + { + integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.toreversed@1.1.2: + resolution: + { + integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==, + } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.3: + resolution: + { + integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==, + } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: + { + integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, + } + engines: { node: '>= 0.4' } + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + + /asap@2.0.6: + resolution: + { + integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, + } + dev: true + + /asn1js@3.0.5: + resolution: + { + integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==, + } + engines: { node: '>=12.0.0' } + dependencies: + pvtsutils: 1.3.5 + pvutils: 1.1.3 + tslib: 2.6.2 + dev: true + + /ast-types-flow@0.0.8: + resolution: + { + integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==, + } + dev: true + + /astral-regex@2.0.0: + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: '>=8' } + dev: true + + /astring@1.8.6: + resolution: + { + integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, + } + hasBin: true + dev: true + + /asynckit@0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } + dev: false + + /auto-bind@4.0.0: + resolution: + { + integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==, + } + engines: { node: '>=8' } + dev: true + + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: + { + integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==, + } + engines: { node: ^10 || ^12 || >=14 } + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001610 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.7: + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + } + engines: { node: '>= 0.4' } + dependencies: + possible-typed-array-names: 1.0.0 + + /axe-core@4.7.0: + resolution: + { + integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==, + } + engines: { node: '>=4' } + dev: true + + /axobject-query@3.2.1: + resolution: + { + integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==, + } + dependencies: + dequal: 2.0.3 + dev: true + + /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: + resolution: + { + integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==, + } + dev: true + + /babel-preset-fbjs@3.4.0(@babel/core@7.24.4): + resolution: + { + integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==, + } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + dev: true + + /bail@2.0.2: + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } + 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: true + + /basic-auth@2.0.1: + resolution: + { + integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, + } + engines: { node: '>= 0.8' } + dependencies: + safe-buffer: 5.1.2 + + /binary-extensions@2.3.0: + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: '>=8' } + + /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: true + + /body-parser@1.20.2: + resolution: + { + integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /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 + + /browserify-zlib@0.1.4: + resolution: + { + integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==, + } + dependencies: + pako: 0.2.9 + dev: true + + /browserslist@4.23.0: + resolution: + { + integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001610 + electron-to-chromium: 1.4.738 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + + /bser@2.1.1: + resolution: + { + integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, + } + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-from@1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + + /buffer@5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtins@5.1.0: + resolution: + { + integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==, + } + dependencies: + semver: 7.6.0 + dev: true + + /busboy@1.6.0: + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: '>=10.16.0' } + dependencies: + streamsearch: 1.1.0 + dev: true + + /bytes@3.0.0: + resolution: + { + integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, + } + engines: { node: '>= 0.8' } + + /bytes@3.1.2: + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: '>= 0.8' } + + /cac@6.7.14: + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: '>=8' } + dev: true + + /cacache@17.1.4: + resolution: + { + integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.3 + glob: 10.3.12 + lru-cache: 7.18.3 + minipass: 7.0.4 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.5 + tar: 6.2.1 + unique-filename: 3.0.0 + dev: true + + /call-bind@1.0.7: + resolution: + { + integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, + } + engines: { node: '>= 0.4' } + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + /callsites@3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: '>=6' } + dev: true + + /camel-case@4.1.2: + resolution: + { + integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, + } + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase-css@2.0.1: + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: '>= 6' } + dev: true + + /camelcase@5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: '>=6' } + dev: true + + /caniuse-lite@1.0.30001610: + resolution: + { + integrity: sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==, + } + dev: true + + /capital-case@1.0.4: + resolution: + { + integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /ccount@2.0.1: + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } + 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 + + /change-case-all@1.0.15: + resolution: + { + integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==, + } + dependencies: + change-case: 4.1.2 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lower-case: 2.0.2 + lower-case-first: 2.0.2 + sponge-case: 1.0.1 + swap-case: 2.0.2 + title-case: 3.0.3 + upper-case: 2.0.2 + upper-case-first: 2.0.2 + dev: true + + /change-case@4.1.2: + resolution: + { + integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==, + } + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /character-entities-html4@2.1.0: + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } + dev: true + + /character-entities-legacy@3.0.0: + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } + dev: true + + /character-entities@2.0.2: + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } + dev: true + + /character-reference-invalid@2.0.1: + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } + dev: true + + /chardet@0.7.0: + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } + dev: true + + /chokidar@3.6.0: + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: '>= 8.10.0' } + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /chownr@1.1.4: + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + } + dev: true + + /chownr@2.0.0: + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: '>=10' } + dev: true + + /class-variance-authority@0.4.0(typescript@5.4.5): + resolution: + { + integrity: sha512-74enNN8O9ZNieycac/y8FxqgyzZhZbxmCitAtAeUrLPlxjSd5zA7LfpprmxEcOmQBnaGs5hYhiSGnJ0mqrtBLQ==, + } + peerDependencies: + typescript: '>= 4.5.5 < 5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.4.5 + dev: false + + /clean-stack@2.2.0: + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: '>=6' } + dev: true + + /cli-cursor@3.1.0: + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: '>=8' } + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.2: + resolution: + { + integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, + } + engines: { node: '>=6' } + dev: true + + /cli-truncate@2.1.0: + resolution: + { + integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + } + engines: { node: '>=8' } + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-width@3.0.0: + resolution: + { + integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + } + engines: { node: '>= 10' } + dev: true + + /cliui@6.0.0: + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@8.0.1: + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: '>=12' } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: '>=0.8' } + dev: true + + /color-convert@1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + dev: true + + /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==, + } + dev: true + + /color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /colorette@2.0.20: + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } + dev: true + + /combined-stream@1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: '>= 0.8' } + dependencies: + delayed-stream: 1.0.0 + dev: false + + /comma-separated-tokens@2.0.3: + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } + dev: true + + /commander@4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: '>= 6' } + dev: true + + /common-tags@1.8.2: + resolution: + { + integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, + } + engines: { node: '>=4.0.0' } + dev: true + + /compressible@2.0.18: + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + + /compression@1.7.4: + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /concat-map@0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + dev: true + + /constant-case@3.0.4: + resolution: + { + integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: true + + /content-disposition@0.5.4: + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: '>= 0.6' } + dependencies: + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: '>= 0.6' } + + /convert-source-map@2.0.0: + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } + dev: true + + /cookie-signature@1.0.6: + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } + + /cookie-signature@1.2.1: + resolution: + { + integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==, + } + engines: { node: '>=6.6.0' } + + /cookie@0.6.0: + resolution: + { + integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, + } + engines: { node: '>= 0.6' } + + /core-util-is@1.0.3: + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } + dev: true + + /cosmiconfig@8.3.6(typescript@5.4.5): + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: '>=14' } + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.4.5 + dev: true + + /cross-fetch@3.1.8: + resolution: + { + integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==, + } + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /cross-inspect@1.0.0: + resolution: + { + integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==, + } + engines: { node: '>=16.0.0' } + dependencies: + tslib: 2.6.2 + dev: true + + /cross-spawn@7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-what@6.1.0: + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: '>= 6' } + dev: true + + /cssesc@3.0.0: + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: '>=4' } + hasBin: true + dev: true + + /csstype@3.1.3: + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } + + /damerau-levenshtein@1.0.8: + resolution: + { + integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, + } + dev: true + + /data-uri-to-buffer@3.0.1: + resolution: + { + integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==, + } + engines: { node: '>= 6' } + + /data-view-buffer@1.0.1: + resolution: + { + integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: + { + integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: + { + integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /dataloader@2.2.2: + resolution: + { + integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==, + } + dev: true + + /debounce@1.2.1: + resolution: + { + integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==, + } + 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 + + /debug@3.2.7: + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize@1.2.0: + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /decode-named-character-reference@1.0.2: + resolution: + { + integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, + } + dependencies: + character-entities: 2.0.2 + dev: true + + /deep-is@0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } + dev: true + + /deep-object-diff@1.1.9: + resolution: + { + integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==, + } + dev: true + + /deepmerge@4.3.1: + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: '>=0.10.0' } + dev: true + + /defaults@1.0.4: + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.4: + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + } + engines: { node: '>= 0.4' } + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + /define-properties@1.2.1: + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: '>=0.4.0' } + dev: false + + /depd@2.0.0: + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: '>= 0.8' } + + /dependency-graph@0.11.0: + resolution: + { + integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==, + } + engines: { node: '>= 0.6.0' } + dev: true + + /dequal@2.0.3: + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: '>=6' } + dev: true + + /destroy@1.2.0: + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + + /detect-indent@6.1.0: + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: '>=8' } + dev: true + + /detect-node-es@1.1.0: + resolution: + { + integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, + } + dev: false + + /didyoumean@1.2.2: + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } + dev: true + + /diff@5.2.0: + resolution: + { + integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==, + } + engines: { node: '>=0.3.1' } + dev: true + + /dir-glob@3.0.1: + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: '>=8' } + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } + dev: true + + /doctrine@2.1.0: + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: '>=0.10.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: '>=6.0.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /dot-case@3.0.4: + resolution: + { + integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /dotenv@16.4.5: + resolution: + { + integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==, + } + engines: { node: '>=12' } + + /dset@3.1.3: + resolution: + { + integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==, + } + engines: { node: '>=4' } + dev: true + + /duplexify@3.7.1: + resolution: + { + integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, + } + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + dev: true + + /eastasianwidth@0.2.0: + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } + dev: true + + /ee-first@1.1.1: + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } + + /electron-to-chromium@1.4.738: + resolution: + { + integrity: sha512-lwKft2CLFztD+vEIpesrOtCrko/TFnEJlHFdRhazU7Y/jx5qc4cqsocfVrBg4So4gGe9lvxnbLIoev47WMpg+A==, + } + dev: true + + /emoji-regex@8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + dev: true + + /emoji-regex@9.2.2: + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } + dev: true + + /encodeurl@1.0.2: + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: '>= 0.8' } + + /end-of-stream@1.4.4: + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve@5.16.0: + resolution: + { + integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==, + } + engines: { node: '>=10.13.0' } + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /err-code@2.0.3: + resolution: + { + integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, + } + dev: true + + /error-ex@1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.23.3: + resolution: + { + integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, + } + engines: { node: '>= 0.4' } + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: + { + integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, + } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.2.4 + + /es-errors@1.3.0: + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + } + engines: { node: '>= 0.4' } + + /es-iterator-helpers@1.0.18: + resolution: + { + integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + + /es-module-lexer@1.5.0: + resolution: + { + integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==, + } + dev: true + + /es-object-atoms@1.0.0: + resolution: + { + integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, + } + engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: + { + integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, + } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } + dependencies: + hasown: 2.0.2 + 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-plugins-node-modules-polyfill@1.6.3(esbuild@0.17.6): + resolution: + { + integrity: sha512-nydQGT3RijD8mBd3Hek+2gSAxndgceZU9GIjYYiqU+7CE7veN8utTmupf0frcKpwIXCXWpRofL9CY9k0yU70CA==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + esbuild: ^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 || ^0.19.0 || ^0.20.0 + dependencies: + '@jspm/core': 2.0.1 + esbuild: 0.17.6 + local-pkg: 0.5.0 + resolve.exports: 2.0.2 + dev: true + + /esbuild@0.17.6: + resolution: + { + integrity: sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.6 + '@esbuild/android-arm64': 0.17.6 + '@esbuild/android-x64': 0.17.6 + '@esbuild/darwin-arm64': 0.17.6 + '@esbuild/darwin-x64': 0.17.6 + '@esbuild/freebsd-arm64': 0.17.6 + '@esbuild/freebsd-x64': 0.17.6 + '@esbuild/linux-arm': 0.17.6 + '@esbuild/linux-arm64': 0.17.6 + '@esbuild/linux-ia32': 0.17.6 + '@esbuild/linux-loong64': 0.17.6 + '@esbuild/linux-mips64el': 0.17.6 + '@esbuild/linux-ppc64': 0.17.6 + '@esbuild/linux-riscv64': 0.17.6 + '@esbuild/linux-s390x': 0.17.6 + '@esbuild/linux-x64': 0.17.6 + '@esbuild/netbsd-x64': 0.17.6 + '@esbuild/openbsd-x64': 0.17.6 + '@esbuild/sunos-x64': 0.17.6 + '@esbuild/win32-arm64': 0.17.6 + '@esbuild/win32-ia32': 0.17.6 + '@esbuild/win32-x64': 0.17.6 + dev: true + + /esbuild@0.20.2: + resolution: + { + integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + dev: true + + /escalade@3.1.2: + resolution: + { + integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, + } + engines: { node: '>=6' } + dev: true + + /escape-html@1.0.3: + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } + + /escape-string-regexp@1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } + dev: true + + /escape-string-regexp@4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: '>=10' } + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: + { + integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.16.0 + eslint: 8.57.0 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.3 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: + { + integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + resolution: + { + integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + hasown: 2.0.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + resolution: + { + integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==, + } + engines: { node: '>=4.0' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.24.4 + aria-query: 5.3.0 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.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.57.0 + dev: true + + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: + { + integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==, + } + engines: { node: '>=4' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + 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.57.0: + resolution: + { + integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: + { + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + + /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@5.3.0: + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: '>=4.0' } + dev: true + + /estree-util-attach-comments@2.1.1: + resolution: + { + integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==, + } + dependencies: + '@types/estree': 1.0.5 + dev: true + + /estree-util-build-jsx@2.2.2: + resolution: + { + integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + dev: true + + /estree-util-is-identifier-name@1.1.0: + resolution: + { + integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==, + } + dev: true + + /estree-util-is-identifier-name@2.1.0: + resolution: + { + integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, + } + dev: true + + /estree-util-to-js@1.2.0: + resolution: + { + integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.8.6 + source-map: 0.7.4 + dev: true + + /estree-util-value-to-estree@1.3.0: + resolution: + { + integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==, + } + engines: { node: '>=12.0.0' } + dependencies: + is-plain-obj: 3.0.0 + dev: true + + /estree-util-visit@1.2.1: + resolution: + { + integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 2.0.10 + dev: true + + /estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } + dependencies: + '@types/estree': 1.0.5 + 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' } + + /eval@0.1.8: + resolution: + { + integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==, + } + engines: { node: '>= 0.8' } + dependencies: + '@types/node': 20.12.7 + require-like: 0.1.2 + dev: true + + /event-target-shim@5.0.1: + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: '>=6' } + + /execa@5.1.1: + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: '>=10' } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit-hook@2.2.1: + resolution: + { + integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==, + } + engines: { node: '>=6' } + dev: true + + /express@4.19.2: + resolution: + { + integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==, + } + engines: { node: '>= 0.10.0' } + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.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 + + /extend@3.0.2: + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } + dev: true + + /external-editor@3.1.0: + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: '>=4' } + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extract-files@11.0.0: + resolution: + { + integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==, + } + engines: { node: ^12.20 || >= 14.13 } + dev: true + + /fast-decode-uri-component@1.0.1: + resolution: + { + integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==, + } + dev: true + + /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 + + /fast-querystring@1.1.2: + resolution: + { + integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==, + } + dependencies: + fast-decode-uri-component: 1.0.1 + dev: true + + /fast-url-parser@1.1.3: + resolution: + { + integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==, + } + dependencies: + punycode: 1.4.1 + dev: true + + /fastq@1.17.1: + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } + dependencies: + reusify: 1.0.4 + dev: true + + /fault@2.0.1: + resolution: + { + integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, + } + dependencies: + format: 0.2.2 + dev: true + + /fb-watchman@2.0.2: + resolution: + { + integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, + } + dependencies: + bser: 2.1.1 + dev: true + + /fbjs-css-vars@1.0.2: + resolution: + { + integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==, + } + dev: true + + /fbjs@3.0.5: + resolution: + { + integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==, + } + dependencies: + cross-fetch: 3.1.8 + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.37 + transitivePeerDependencies: + - encoding + dev: true + + /figures@3.2.0: + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + } + engines: { node: '>=8' } + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.2.0 + dev: true + + /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 + + /find-up@4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /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.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flatted@3.3.1: + resolution: + { + integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==, + } + dev: true + + /for-each@0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + dependencies: + is-callable: 1.2.7 + + /foreground-child@3.1.1: + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: '>=14' } + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data-encoder@1.7.2: + resolution: + { + integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==, + } + dev: false + + /form-data@4.0.0: + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: '>= 6' } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /format@0.2.2: + resolution: + { + integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, + } + engines: { node: '>=0.4.x' } + dev: true + + /formdata-node@4.4.1: + resolution: + { + integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==, + } + engines: { node: '>= 12.20' } + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: false + + /forwarded@0.2.0: + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: '>= 0.6' } + + /fraction.js@4.3.7: + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } + dev: true + + /fresh@0.5.2: + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: '>= 0.6' } + + /fs-constants@1.0.0: + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } + dev: true + + /fs-extra@10.1.0: + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: '>=12' } + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-minipass@2.1.0: + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /fs-minipass@3.0.3: + resolution: + { + integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + minipass: 7.0.4 + 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.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } + dev: true + + /generic-names@4.0.0: + resolution: + { + integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==, + } + dependencies: + loader-utils: 3.2.1 + dev: true + + /gensync@1.0.0-beta.2: + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: '>=6.9.0' } + dev: true + + /get-caller-file@2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true + + /get-intrinsic@1.2.4: + resolution: + { + integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, + } + engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + /get-nonce@1.0.1: + resolution: + { + integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, + } + engines: { node: '>=6' } + dev: false + + /get-port@5.1.1: + resolution: + { + integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==, + } + engines: { node: '>=8' } + + /get-stream@6.0.1: + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: '>=10' } + dev: true + + /get-symbol-description@1.0.2: + resolution: + { + integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + + /get-tsconfig@4.7.3: + resolution: + { + integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==, + } + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /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@10.3.12: + resolution: + { + integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==, + } + engines: { node: '>=16 || 14 >=14.17' } + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.0.4 + path-scurry: 1.10.2 + 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.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globrex@0.1.2: + resolution: + { + integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, + } + dev: true + + /gopd@1.0.1: + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } + dependencies: + get-intrinsic: 1.2.4 + + /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 + + /graphql-config@5.0.3(graphql@16.8.1)(typescript@5.4.5): + resolution: + { + integrity: sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==, + } + engines: { node: '>= 16.0.0' } + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + dependencies: + '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/load': 8.0.2(graphql@16.8.1) + '@graphql-tools/merge': 9.0.3(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.1.3(graphql@16.8.1) + cosmiconfig: 8.3.6(typescript@5.4.5) + graphql: 16.8.1 + jiti: 1.21.0 + minimatch: 4.2.3 + string-env-interpolation: 1.0.1 + tslib: 2.6.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - typescript + - utf-8-validate + dev: true + + /graphql-request@6.1.0(graphql@16.8.1): + resolution: + { + integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==, + } + peerDependencies: + graphql: 14 - 16 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-fetch: 3.1.8 + graphql: 16.8.1 + transitivePeerDependencies: + - encoding + dev: true + + /graphql-tag@2.12.6(graphql@16.8.1): + resolution: + { + integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==, + } + engines: { node: '>=10' } + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /graphql-ws@5.16.0(graphql@16.8.1): + resolution: + { + integrity: sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==, + } + engines: { node: '>=10' } + peerDependencies: + graphql: '>=0.11 <=16' + dependencies: + graphql: 16.8.1 + dev: true + + /graphql@16.8.1: + resolution: + { + integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + dev: true + + /gunzip-maybe@1.4.2: + resolution: + { + integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==, + } + hasBin: true + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + 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.2: + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + } + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: + { + integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, + } + engines: { node: '>= 0.4' } + + /has-symbols@1.0.3: + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: '>= 0.4' } + + /has-tostringtag@1.0.2: + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + + /hasown@2.0.2: + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: '>= 0.4' } + dependencies: + function-bind: 1.1.2 + + /hast-util-to-estree@2.3.3: + resolution: + { + integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, + } + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/unist': 2.0.10 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /hast-util-whitespace@2.0.1: + resolution: + { + integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, + } + dev: true + + /header-case@2.0.4: + resolution: + { + integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==, + } + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: true + + /hosted-git-info@6.1.1: + resolution: + { + integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + lru-cache: 7.18.3 + dev: true + + /http-errors@2.0.0: + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: '>= 0.8' } + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-proxy-agent@7.0.2: + resolution: + { + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, + } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@7.0.4: + resolution: + { + integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==, + } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: '>=10.17.0' } + dev: true + + /humanize-ms@1.2.1: + resolution: + { + integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, + } + dependencies: + ms: 2.1.3 + dev: false + + /iconv-lite@0.4.24: + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + + /icss-utils@5.1.0(postcss@8.4.38): + resolution: + { + integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.38 + dev: true + + /ieee754@1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } + dev: true + + /ignore@5.3.1: + resolution: + { + integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, + } + engines: { node: '>= 4' } + dev: true + + /immutable@3.7.6: + resolution: + { + integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==, + } + engines: { node: '>=0.8.0' } + 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 + + /import-from@4.0.0: + resolution: + { + integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==, + } + engines: { node: '>=12.2' } + dev: true + + /imurmurhash@0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: '>=0.8.19' } + dev: true + + /indent-string@4.0.0: + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: '>=8' } + 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==, + } + + /inline-style-parser@0.1.1: + resolution: + { + integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, + } + dev: true + + /inquirer@8.2.6: + resolution: + { + integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, + } + engines: { node: '>=12.0.0' } + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + dev: true + + /internal-slot@1.0.7: + resolution: + { + integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, + } + engines: { node: '>= 0.4' } + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + dev: true + + /invariant@2.2.4: + resolution: + { + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, + } + dependencies: + loose-envify: 1.4.0 + + /ipaddr.js@1.9.1: + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: '>= 0.10' } + + /is-absolute@1.0.0: + resolution: + { + integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-alphabetical@2.0.1: + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } + dev: true + + /is-alphanumerical@2.0.1: + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: true + + /is-arguments@1.1.1: + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + /is-array-buffer@3.0.4: + resolution: + { + integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-arrayish@0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + dev: true + + /is-async-function@2.0.0: + resolution: + { + integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /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.3.0 + + /is-boolean-object@1.1.2: + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-buffer@2.0.5: + resolution: + { + integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, + } + engines: { node: '>=4' } + dev: true + + /is-callable@1.2.7: + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: '>= 0.4' } + + /is-core-module@2.13.1: + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } + dependencies: + hasown: 2.0.2 + dev: true + + /is-data-view@1.0.1: + resolution: + { + integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, + } + engines: { node: '>= 0.4' } + dependencies: + is-typed-array: 1.1.13 + dev: true + + /is-date-object@1.0.5: + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-decimal@2.0.1: + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } + dev: true + + /is-deflate@1.0.0: + resolution: + { + integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==, + } + dev: true + + /is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } + + /is-finalizationregistry@1.0.2: + resolution: + { + integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, + } + dependencies: + call-bind: 1.0.7 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: '>=8' } + dev: true + + /is-generator-function@1.0.10: + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.2 + + /is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + + /is-gzip@1.0.0: + resolution: + { + integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /is-hexadecimal@2.0.1: + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } + dev: true + + /is-interactive@1.0.0: + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + } + engines: { node: '>=8' } + dev: true + + /is-lower-case@2.0.2: + resolution: + { + integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /is-map@2.0.3: + resolution: + { + integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-negative-zero@2.0.3: + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-number-object@1.0.7: + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-number@7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: '>=0.12.0' } + + /is-path-inside@3.0.3: + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: '>=8' } + dev: true + + /is-plain-obj@3.0.0: + resolution: + { + integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, + } + engines: { node: '>=10' } + dev: true + + /is-plain-obj@4.1.0: + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: '>=12' } + dev: true + + /is-reference@3.0.2: + resolution: + { + integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==, + } + dependencies: + '@types/estree': 1.0.5 + dev: true + + /is-regex@1.1.4: + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-relative@1.0.0: + resolution: + { + integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-set@2.0.3: + resolution: + { + integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-shared-array-buffer@1.0.3: + resolution: + { + integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + dev: true + + /is-stream@2.0.1: + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: '>=8' } + dev: true + + /is-string@1.0.7: + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-symbol@1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.13: + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, + } + engines: { node: '>= 0.4' } + dependencies: + which-typed-array: 1.1.15 + + /is-unc-path@1.0.0: + resolution: + { + integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==, + } + engines: { node: '>=0.10.0' } + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: '>=10' } + dev: true + + /is-upper-case@2.0.2: + resolution: + { + integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /is-weakmap@2.0.2: + resolution: + { + integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-weakref@1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + dependencies: + call-bind: 1.0.7 + dev: true + + /is-weakset@2.0.3: + resolution: + { + integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + + /is-windows@1.0.2: + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /isarray@1.0.0: + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } + dev: true + + /isarray@2.0.5: + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } + dev: true + + /isbot@4.4.0: + resolution: + { + integrity: sha512-8ZvOWUA68kyJO4hHJdWjyreq7TYNWTS9y15IzeqVdKxR9pPr3P/3r9AHcoIv9M0Rllkao5qWz2v1lmcyKIVCzQ==, + } + engines: { node: '>=18' } + dev: false + + /isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + dev: true + + /isomorphic-ws@5.0.0(ws@8.16.0): + resolution: + { + integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, + } + peerDependencies: + ws: '*' + dependencies: + ws: 8.16.0 + dev: true + + /isomorphic.js@0.2.5: + resolution: + { + integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==, + } + dev: false + + /iterator.prototype@1.1.2: + resolution: + { + integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, + } + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: true + + /jackspeak@2.3.6: + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: '>=14' } + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /javascript-stringify@2.1.0: + resolution: + { + integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==, + } + dev: true + + /jiti@1.21.0: + resolution: + { + integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, + } + hasBin: true + dev: true + + /jose@5.2.4: + resolution: + { + integrity: sha512-6ScbIk2WWCeXkmzF6bRPmEuaqy1m8SbsRFMa/FLrSCkGIhj8OLVG/IH+XHVmNMx/KUo8cVWEE6oKR4dJ+S0Rkg==, + } + + /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@2.5.2: + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: '>=4' } + hasBin: true + dev: true + + /jsesc@3.0.2: + resolution: + { + integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, + } + engines: { node: '>=6' } + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + dev: true + + /json-parse-even-better-errors@3.0.1: + resolution: + { + integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /json-schema-traverse@0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } + dev: true + + /json-stable-stringify@1.1.1: + resolution: + { + integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + dev: true + + /json-to-graphql-query@2.2.5: + resolution: + { + integrity: sha512-5Nom9inkIMrtY992LMBBG1Zaekrc10JaRhyZgprwHBVMDtRgllTvzl0oBbg13wJsVZoSoFNNMaeIVQs0P04vsA==, + } + dev: false + + /json-to-pretty-yaml@1.2.2: + resolution: + { + integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==, + } + engines: { node: '>= 0.2.0' } + dependencies: + remedial: 1.0.8 + remove-trailing-spaces: 1.0.8 + dev: true + + /json5@1.0.2: + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: '>=6' } + hasBin: true + dev: true + + /jsonc-parser@3.2.1: + resolution: + { + integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==, + } + 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 + + /jsonify@0.0.1: + resolution: + { + integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==, + } + dev: true + + /jsx-ast-utils@3.3.5: + resolution: + { + integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, + } + engines: { node: '>=4.0' } + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + dev: true + + /keyv@4.5.4: + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } + dependencies: + json-buffer: 3.0.1 + dev: true + + /kleur@4.1.5: + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: '>=6' } + dev: true + + /language-subtag-registry@0.3.22: + resolution: + { + integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, + } + dev: true + + /language-tags@1.0.9: + resolution: + { + integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==, + } + engines: { node: '>=0.10' } + dependencies: + language-subtag-registry: 0.3.22 + 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 + + /lexical@0.12.4: + resolution: + { + integrity: sha512-giNrnp45H6P4IHFhkKaHEPTF+bKLBWdEIDL/FGjRZf+to7l7TORIBk/23Zdchzt/VGgKGWu950EOvGh53gkVMQ==, + } + dev: false + + /lib0@0.2.93: + resolution: + { + integrity: sha512-M5IKsiFJYulS+8Eal8f+zAqf5ckm1vffW0fFDxfgxJ+uiVopvDdd3PxJmz0GsVi3YNO7QCFSq0nAsiDmNhLj9Q==, + } + engines: { node: '>=16' } + hasBin: true + dependencies: + isomorphic.js: 0.2.5 + dev: false + + /lilconfig@2.1.0: + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: '>=10' } + dev: true + + /lilconfig@3.1.1: + resolution: + { + integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==, + } + engines: { node: '>=14' } + dev: true + + /lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + dev: true + + /listr2@4.0.5: + resolution: + { + integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==, + } + engines: { node: '>=12' } + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.1 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /loader-utils@3.2.1: + resolution: + { + integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==, + } + engines: { node: '>= 12.13.0' } + dev: true + + /local-pkg@0.5.0: + resolution: + { + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, + } + engines: { node: '>=14' } + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 + dev: true + + /locate-path@5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: '>=10' } + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.camelcase@4.3.0: + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } + 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 + + /log-symbols@4.1.0: + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: '>=10' } + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@4.0.0: + resolution: + { + integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, + } + engines: { node: '>=10' } + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /longest-streak@3.1.0: + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } + dev: true + + /loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case-first@2.0.2: + resolution: + { + integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /lower-case@2.0.2: + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@10.2.0: + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==, + } + engines: { node: 14 || >=16.14 } + dev: true + + /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 + dev: true + + /lru-cache@7.18.3: + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: '>=12' } + dev: true + + /map-cache@0.2.2: + resolution: + { + integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /markdown-extensions@1.1.1: + resolution: + { + integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==, + } + engines: { node: '>=0.10.0' } + dev: true + + /mdast-util-definitions@5.1.2: + resolution: + { + integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==, + } + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: true + + /mdast-util-from-markdown@1.3.1: + resolution: + { + integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, + } + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-frontmatter@1.0.1: + resolution: + { + integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==, + } + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-extension-frontmatter: 1.1.1 + dev: true + + /mdast-util-mdx-expression@1.3.2: + resolution: + { + integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx-jsx@2.1.4: + resolution: + { + integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx@2.0.1: + resolution: + { + integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==, + } + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdxjs-esm@1.3.1: + resolution: + { + integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==, + } + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-phrasing@3.0.1: + resolution: + { + integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, + } + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + dev: true + + /mdast-util-to-hast@12.3.0: + resolution: + { + integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==, + } + dependencies: + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: true + + /mdast-util-to-markdown@1.5.0: + resolution: + { + integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==, + } + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: true + + /mdast-util-to-string@3.2.0: + resolution: + { + integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, + } + dependencies: + '@types/mdast': 3.0.15 + dev: true + + /media-query-parser@2.0.2: + resolution: + { + integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==, + } + dependencies: + '@babel/runtime': 7.24.4 + dev: true + + /media-typer@0.3.0: + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: '>= 0.6' } + + /merge-descriptors@1.0.1: + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, + } + + /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 + + /meros@1.3.0: + resolution: + { + integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==, + } + engines: { node: '>=13' } + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + dev: true + + /methods@1.1.2: + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: '>= 0.6' } + + /micromark-core-commonmark@1.1.0: + resolution: + { + integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, + } + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-extension-frontmatter@1.1.1: + resolution: + { + integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==, + } + dependencies: + fault: 2.0.1 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-extension-mdx-expression@1.0.8: + resolution: + { + integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==, + } + dependencies: + '@types/estree': 1.0.5 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-extension-mdx-jsx@1.0.5: + resolution: + { + integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==, + } + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-extension-mdx-md@1.0.1: + resolution: + { + integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==, + } + dependencies: + micromark-util-types: 1.1.0 + dev: true + + /micromark-extension-mdxjs-esm@1.0.5: + resolution: + { + integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==, + } + dependencies: + '@types/estree': 1.0.5 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-extension-mdxjs@1.0.1: + resolution: + { + integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==, + } + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-destination@1.1.0: + resolution: + { + integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-label@1.1.0: + resolution: + { + integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-factory-mdx-expression@1.0.9: + resolution: + { + integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==, + } + dependencies: + '@types/estree': 1.0.5 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-factory-space@1.1.0: + resolution: + { + integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-title@1.1.0: + resolution: + { + integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, + } + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-whitespace@1.1.0: + resolution: + { + integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, + } + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-character@1.2.0: + resolution: + { + integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, + } + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-chunked@1.1.0: + resolution: + { + integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-classify-character@1.1.0: + resolution: + { + integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-combine-extensions@1.1.0: + resolution: + { + integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, + } + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: + { + integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-decode-string@1.1.0: + resolution: + { + integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, + } + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-encode@1.1.0: + resolution: + { + integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, + } + dev: true + + /micromark-util-events-to-acorn@1.2.3: + resolution: + { + integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==, + } + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + '@types/unist': 2.0.10 + estree-util-visit: 1.2.1 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-util-html-tag-name@1.2.0: + resolution: + { + integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, + } + dev: true + + /micromark-util-normalize-identifier@1.1.0: + resolution: + { + integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-resolve-all@1.1.0: + resolution: + { + integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, + } + dependencies: + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-sanitize-uri@1.2.0: + resolution: + { + integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-subtokenize@1.1.0: + resolution: + { + integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, + } + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-util-symbol@1.1.0: + resolution: + { + integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, + } + dev: true + + /micromark-util-types@1.1.0: + resolution: + { + integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, + } + dev: true + + /micromark@3.2.0: + resolution: + { + integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, + } + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /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' } + + /mime-lite@1.0.3: + resolution: + { + integrity: sha512-V85l97zJSTG8FEvmdTlmNYb0UMrVBwvRjw7bWTf/aT6KjFwtz3iTz8D2tuFIp7lwiaO2C5ecnrEmSkkMRCrqVw==, + } + 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 + + /mime@1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: '>=4' } + hasBin: true + + /mimic-fn@2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: '>=6' } + dev: true + + /minimatch@3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@4.2.3: + resolution: + { + integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==, + } + engines: { node: '>=10' } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: '>=16 || 14 >=14.17' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.4: + resolution: + { + integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==, + } + engines: { node: '>=16 || 14 >=14.17' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } + dev: true + + /minipass-collect@1.0.2: + resolution: + { + integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-flush@1.0.5: + resolution: + { + integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: + { + integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, + } + engines: { node: '>=8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass@3.3.6: + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: '>=8' } + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: '>=8' } + dev: true + + /minipass@7.0.4: + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: '>=16 || 14 >=14.17' } + dev: true + + /minizlib@2.1.2: + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp-classic@0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } + dev: true + + /mkdirp@1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: '>=10' } + hasBin: true + dev: true + + /mlly@1.6.1: + resolution: + { + integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==, + } + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.3 + dev: true + + /modern-ahocorasick@1.0.1: + resolution: + { + integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==, + } + dev: true + + /morgan@1.10.0: + resolution: + { + integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color + + /mri@1.2.0: + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: '>=4' } + dev: true + + /mrmime@1.0.1: + resolution: + { + integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, + } + engines: { node: '>=10' } + + /ms@2.0.0: + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } + + /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==, + } + + /mute-stream@0.0.8: + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + } + dev: true + + /mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.7: + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } + dev: true + + /negotiator@0.6.3: + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: '>= 0.6' } + + /no-case@3.0.4: + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-domexception@1.0.0: + resolution: + { + integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, + } + engines: { node: '>=10.5.0' } + dev: false + + /node-fetch@2.7.0: + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-int64@0.4.0: + resolution: + { + integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, + } + dev: true + + /node-releases@2.0.14: + resolution: + { + integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, + } + dev: true + + /normalize-package-data@5.0.0: + resolution: + { + integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + hosted-git-info: 6.1.1 + is-core-module: 2.13.1 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@2.1.1: + resolution: + { + integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==, + } + engines: { node: '>=0.10.0' } + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path@3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: '>=0.10.0' } + + /normalize-range@0.1.2: + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /npm-install-checks@6.3.0: + resolution: + { + integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + semver: 7.6.0 + dev: true + + /npm-normalize-package-bin@3.0.1: + resolution: + { + integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /npm-package-arg@10.1.0: + resolution: + { + integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + hosted-git-info: 6.1.1 + proc-log: 3.0.0 + semver: 7.6.0 + validate-npm-package-name: 5.0.0 + dev: true + + /npm-pick-manifest@8.0.2: + resolution: + { + integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 10.1.0 + semver: 7.6.0 + dev: true + + /npm-run-path@4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: '>=8' } + dependencies: + path-key: 3.1.1 + dev: true + + /nullthrows@1.1.1: + resolution: + { + integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==, + } + dev: true + + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /object-hash@3.0.0: + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: '>= 6' } + dev: true + + /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.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.8: + resolution: + { + integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /object.fromentries@2.0.8: + resolution: + { + integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /object.groupby@1.0.3: + resolution: + { + integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: true + + /object.hasown@1.1.4: + resolution: + { + integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==, + } + engines: { node: '>= 0.4' } + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /object.values@1.2.0: + resolution: + { + integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /on-finished@2.3.0: + resolution: + { + integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, + } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + + /on-finished@2.4.1: + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + + /on-headers@1.0.2: + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, + } + engines: { node: '>= 0.8' } + + /once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: '>=6' } + dependencies: + mimic-fn: 2.1.0 + dev: true + + /openai@4.36.0: + resolution: + { + integrity: sha512-AtYrhhWY64LhB9P6f3H0nV8nTSaQJ89mWPnfNU5CnYg81zlYaV8nkyO+aTNfprdqP/9xv10woNNUgefXINT4Dg==, + } + hasBin: true + dependencies: + '@types/node': 18.19.31 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + 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 + + /ora@5.4.1: + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + } + engines: { node: '>=10' } + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: '>=0.10.0' } + dev: true + + /outdent@0.8.0: + resolution: + { + integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==, + } + dev: true + + /p-limit@2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.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@4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } + dependencies: + p-limit: 2.3.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 + + /p-map@4.0.0: + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: '>=10' } + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try@2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } + dev: true + + /pako@0.2.9: + resolution: + { + integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==, + } + dev: true + + /param-case@3.0.4: + resolution: + { + integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + 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 + + /parse-entities@4.0.1: + resolution: + { + integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, + } + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: true + + /parse-filepath@1.0.2: + resolution: + { + integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==, + } + engines: { node: '>=0.8' } + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } + dependencies: + '@babel/code-frame': 7.24.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-ms@2.1.0: + resolution: + { + integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==, + } + engines: { node: '>=6' } + dev: true + + /parseurl@1.3.3: + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: '>= 0.8' } + + /pascal-case@3.1.2: + resolution: + { + integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-case@3.0.4: + resolution: + { + integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /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-root-regex@0.1.2: + resolution: + { + integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /path-root@0.1.1: + resolution: + { + integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==, + } + engines: { node: '>=0.10.0' } + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-scurry@1.10.2: + resolution: + { + integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==, + } + engines: { node: '>=16 || 14 >=14.17' } + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + + /path-to-regexp@0.1.7: + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, + } + + /path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } + dev: true + + /pathe@1.1.2: + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } + dev: true + + /peek-stream@1.1.3: + resolution: + { + integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==, + } + dependencies: + buffer-from: 1.1.2 + duplexify: 3.7.1 + through2: 2.0.5 + dev: true + + /periscopic@3.1.0: + resolution: + { + integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==, + } + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: true + + /picocolors@1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: true + + /picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } + + /pidtree@0.6.0: + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: '>=0.10' } + hasBin: true + dev: true + + /pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: '>=0.10.0' } + dev: true + + /pirates@4.0.6: + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: '>= 6' } + dev: true + + /pkg-types@1.0.3: + resolution: + { + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, + } + dependencies: + jsonc-parser: 3.2.1 + mlly: 1.6.1 + pathe: 1.1.2 + dev: true + + /possible-typed-array-names@1.0.0: + resolution: + { + integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, + } + engines: { node: '>= 0.4' } + + /postcss-discard-duplicates@5.1.0(postcss@8.4.38): + resolution: + { + integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==, + } + engines: { node: ^10 || ^12 || >=14.0 } + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-import@15.1.0(postcss@8.4.38): + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.38): + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.38 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.38): + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: '>= 14' } + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.38 + yaml: 2.4.1 + dev: true + + /postcss-modules-extract-imports@3.1.0(postcss@8.4.38): + resolution: + { + integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.38 + dev: true + + /postcss-modules-local-by-default@4.0.5(postcss@8.4.38): + resolution: + { + integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.2.0(postcss@8.4.38): + resolution: + { + integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.38): + resolution: + { + integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + dev: true + + /postcss-modules@6.0.0(postcss@8.4.38): + resolution: + { + integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==, + } + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-utils: 5.1.0(postcss@8.4.38) + lodash.camelcase: 4.3.0 + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.38) + postcss-modules-scope: 3.2.0(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) + string-hash: 1.1.3 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: '>=12.0' } + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-selector-parser@6.0.16: + resolution: + { + integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==, + } + engines: { node: '>=4' } + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } + dev: true + + /postcss@8.4.38: + resolution: + { + integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + dev: true + + /prelude-ls@1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: '>= 0.8.0' } + dev: true + + /prettier@2.8.8: + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: '>=10.13.0' } + hasBin: true + dev: true + + /prettier@3.2.5: + resolution: + { + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, + } + engines: { node: '>=14' } + hasBin: true + dev: true + + /pretty-ms@7.0.1: + resolution: + { + integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==, + } + engines: { node: '>=10' } + dependencies: + parse-ms: 2.1.0 + dev: true + + /prismjs@1.29.0: + resolution: + { + integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, + } + engines: { node: '>=6' } + dev: false + + /proc-log@3.0.0: + resolution: + { + integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /process-nextick-args@2.0.1: + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } + dev: true + + /promise-inflight@1.0.1: + resolution: + { + integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, + } + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /promise-retry@2.0.1: + resolution: + { + integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, + } + engines: { node: '>=10' } + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /promise@7.3.1: + resolution: + { + integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, + } + dependencies: + asap: 2.0.6 + dev: true + + /prop-types@15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /property-information@6.5.0: + resolution: + { + integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, + } + 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 + + /pump@2.0.1: + resolution: + { + integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump@3.0.0: + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pumpify@1.5.1: + resolution: + { + integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, + } + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + + /punycode@1.4.1: + resolution: + { + integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, + } + dev: true + + /punycode@2.3.1: + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: '>=6' } + dev: true + + /pvtsutils@1.3.5: + resolution: + { + integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /pvutils@1.1.3: + resolution: + { + integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==, + } + engines: { node: '>=6.0.0' } + dev: true + + /qs@6.11.0: + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: '>=0.6' } + dependencies: + side-channel: 1.0.6 + + /queue-microtask@1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + dev: true + + /range-parser@1.2.1: + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: '>= 0.6' } + + /raw-body@2.5.2: + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + } + engines: { node: '>= 0.8' } + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /react-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-error-boundary@3.1.4(react@18.2.0): + resolution: + { + integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, + } + engines: { node: '>=10', npm: '>=6' } + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /react-is@16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: true + + /react-refresh@0.14.0: + resolution: + { + integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /react-remove-scroll-bar@2.3.6(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) + tslib: 2.6.2 + dev: false + + /react-remove-scroll@2.5.4(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + react-remove-scroll-bar: 2.3.6(@types/react@18.2.79)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.2(@types/react@18.2.79)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0) + dev: false + + /react-remove-scroll@2.5.5(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + react-remove-scroll-bar: 2.3.6(@types/react@18.2.79)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.2(@types/react@18.2.79)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0) + dev: false + + /react-router-dom@6.22.3(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.15.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.22.3(react@18.2.0) + dev: false + + /react-router@6.22.3(react@18.2.0): + resolution: + { + integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.15.3 + react: 18.2.0 + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-textarea-autosize@8.5.3(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==, + } + engines: { node: '>=10' } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + use-composed-ref: 1.3.0(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.79)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /react@18.2.0: + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, + } + engines: { node: '>=0.10.0' } + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-cache@1.0.0: + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } + dependencies: + pify: 2.3.0 + dev: true + + /readable-stream@2.3.8: + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /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: true + + /readdirp@3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + + /reflect.getprototypeof@1.0.6: + resolution: + { + integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /regenerator-runtime@0.14.1: + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } + + /regexp.prototype.flags@1.5.2: + resolution: + { + integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + + /relay-runtime@12.0.0: + resolution: + { + integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==, + } + dependencies: + '@babel/runtime': 7.24.4 + fbjs: 3.0.5 + invariant: 2.2.4 + transitivePeerDependencies: + - encoding + dev: true + + /remark-frontmatter@4.0.1: + resolution: + { + integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, + } + dependencies: + '@types/mdast': 3.0.15 + mdast-util-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.1 + unified: 10.1.2 + dev: true + + /remark-mdx-frontmatter@1.1.1: + resolution: + { + integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==, + } + engines: { node: '>=12.2.0' } + dependencies: + estree-util-is-identifier-name: 1.1.0 + estree-util-value-to-estree: 1.3.0 + js-yaml: 4.1.0 + toml: 3.0.0 + dev: true + + /remark-mdx@2.3.0: + resolution: + { + integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==, + } + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-parse@10.0.2: + resolution: + { + integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==, + } + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-rehype@10.1.0: + resolution: + { + integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, + } + dependencies: + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: true + + /remedial@1.0.8: + resolution: + { + integrity: sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==, + } + dev: true + + /remove-trailing-separator@1.1.0: + resolution: + { + integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==, + } + dev: true + + /remove-trailing-spaces@1.0.8: + resolution: + { + integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==, + } + dev: true + + /require-directory@2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: '>=0.10.0' } + dev: true + + /require-like@0.1.2: + resolution: + { + integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==, + } + dev: true + + /require-main-filename@2.0.0: + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, + } + dev: true + + /resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } + dev: true + + /resolve-from@5.0.0: + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } + dev: true + + /resolve.exports@2.0.2: + resolution: + { + integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, + } + engines: { node: '>=10' } + dev: true + + /resolve@1.22.8: + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.5: + resolution: + { + integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: '>=8' } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /retry@0.12.0: + resolution: + { + integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==, + } + engines: { node: '>= 4' } + dev: true + + /reusify@1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + dev: true + + /rfdc@1.3.1: + resolution: + { + integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==, + } + dev: true + + /rimraf@3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@4.14.3: + resolution: + { + integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.14.3 + '@rollup/rollup-android-arm64': 4.14.3 + '@rollup/rollup-darwin-arm64': 4.14.3 + '@rollup/rollup-darwin-x64': 4.14.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 + '@rollup/rollup-linux-arm-musleabihf': 4.14.3 + '@rollup/rollup-linux-arm64-gnu': 4.14.3 + '@rollup/rollup-linux-arm64-musl': 4.14.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 + '@rollup/rollup-linux-riscv64-gnu': 4.14.3 + '@rollup/rollup-linux-s390x-gnu': 4.14.3 + '@rollup/rollup-linux-x64-gnu': 4.14.3 + '@rollup/rollup-linux-x64-musl': 4.14.3 + '@rollup/rollup-win32-arm64-msvc': 4.14.3 + '@rollup/rollup-win32-ia32-msvc': 4.14.3 + '@rollup/rollup-win32-x64-msvc': 4.14.3 + fsevents: 2.3.3 + dev: true + + /run-async@2.4.1: + resolution: + { + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, + } + engines: { node: '>=0.12.0' } + dev: true + + /run-parallel@1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: + { + integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /sade@1.8.1: + resolution: + { + integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, + } + engines: { node: '>=6' } + dependencies: + mri: 1.2.0 + dev: true + + /safe-array-concat@1.1.2: + resolution: + { + integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, + } + engines: { node: '>=0.4' } + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } + + /safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + + /safe-regex-test@1.0.3: + resolution: + { + integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } + + /scheduler@0.23.0: + resolution: + { + integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==, + } + dependencies: + loose-envify: 1.4.0 + dev: false + + /scuid@1.1.0: + resolution: + { + integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==, + } + dev: true + + /semver@6.3.1: + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } + hasBin: true + dev: true + + /semver@7.6.0: + resolution: + { + integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==, + } + engines: { node: '>=10' } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /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 + + /sentence-case@3.0.4: + resolution: + { + integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /serve-static@1.15.0: + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, + } + engines: { node: '>= 0.8.0' } + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-blocking@2.0.0: + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } + dev: true + + /set-cookie-parser@2.6.0: + resolution: + { + integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==, + } + + /set-function-length@1.2.2: + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + /set-function-name@2.0.2: + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, + } + engines: { node: '>= 0.4' } + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + + /setimmediate@1.0.5: + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + } + dev: true + + /setprototypeof@1.2.0: + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } + + /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 + + /shell-quote@1.8.1: + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, + } + dev: true + + /side-channel@1.0.6: + resolution: + { + integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + + /signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + dev: true + + /signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } + dev: true + + /signedsource@1.0.0: + resolution: + { + integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==, + } + dev: true + + /slash@3.0.0: + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: '>=8' } + dev: true + + /slice-ansi@3.0.0: + resolution: + { + integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /snake-case@3.0.4: + resolution: + { + integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /sonner@0.6.2(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-bh4FWhYoNN481ZIW94W4e0kSLBTMGislYg2YXvDS1px1AJJz4erQe9jHV8s5pS1VMVDgfh3CslNSFLaU6Ldrnw==, + } + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /source-map-js@1.2.0: + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /source-map-support@0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } + + /source-map@0.7.4: + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: '>= 8' } + + /space-separated-tokens@2.0.2: + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } + dev: true + + /spdx-correct@3.2.0: + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.17 + dev: true + + /spdx-exceptions@2.5.0: + resolution: + { + integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, + } + dev: true + + /spdx-expression-parse@3.0.1: + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 + dev: true + + /spdx-license-ids@3.0.17: + resolution: + { + integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==, + } + dev: true + + /sponge-case@1.0.1: + resolution: + { + integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /ssri@10.0.5: + resolution: + { + integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + minipass: 7.0.4 + dev: true + + /statuses@2.0.1: + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: '>= 0.8' } + + /stream-shift@1.0.3: + resolution: + { + integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==, + } + dev: true + + /stream-slice@0.1.2: + resolution: + { + integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==, + } + + /streamsearch@1.1.0: + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: '>=10.0.0' } + dev: true + + /string-env-interpolation@1.0.1: + resolution: + { + integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==, + } + dev: true + + /string-hash@1.1.3: + resolution: + { + integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==, + } + dev: true + + /string-width@4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.11: + resolution: + { + integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: true + + /string.prototype.trim@1.2.9: + resolution: + { + integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimend@1.0.8: + resolution: + { + integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, + } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /string.prototype.trimstart@1.0.8: + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + + /string_decoder@1.1.1: + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@4.0.4: + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + } + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.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-ansi@7.1.0: + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: '>=4' } + dev: true + + /strip-final-newline@2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: '>=6' } + dev: true + + /strip-json-comments@3.1.1: + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: '>=8' } + dev: true + + /style-to-object@0.4.4: + resolution: + { + integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, + } + dependencies: + inline-style-parser: 0.1.1 + dev: true + + /sucrase@3.35.0: + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: '>=16 || 14 >=14.17' } + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.12 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + 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 + + /swap-case@2.0.2: + resolution: + { + integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /tailwindcss-radix@2.9.0: + resolution: + { + integrity: sha512-N49SnciSeRgLC+VK+Fu5VULNJIvJUvN7tUKF1kEHPXrS76WAlwrSVthCbJ9NUw0Cj/ptxs73pdVEdosomAN5Lg==, + } + dev: false + + /tailwindcss@3.4.3: + resolution: + { + integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==, + } + engines: { node: '>=14.0.0' } + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true + + /tapable@2.2.1: + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: '>=6' } + 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: true + + /tar-stream@2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: '>=6' } + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /tar@6.2.1: + resolution: + { + integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, + } + engines: { node: '>=10' } + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /text-table@0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } + dev: true + + /thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: '>=0.8' } + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } + dependencies: + any-promise: 1.3.0 + dev: true + + /through2@2.0.5: + resolution: + { + integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, + } + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through@2.3.8: + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } + dev: true + + /tiny-invariant@1.3.3: + resolution: + { + integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==, + } + dev: false + + /title-case@3.0.3: + resolution: + { + integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /tmp@0.0.33: + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: '>=0.6.0' } + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /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' } + + /toml@3.0.0: + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } + dev: true + + /tr46@0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + + /trim-lines@3.0.1: + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } + dev: true + + /trough@2.2.0: + resolution: + { + integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, + } + dev: true + + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: + { + integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==, + } + engines: { node: '>=16' } + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.5 + dev: true + + /ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + dev: true + + /ts-log@2.2.5: + resolution: + { + integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==, + } + dev: true + + /tsconfck@3.0.3(typescript@5.4.5): + resolution: + { + integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==, + } + engines: { node: ^18 || >=20 } + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.4.5 + dev: true + + /tsconfig-paths@3.15.0: + resolution: + { + integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, + } + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@4.2.0: + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + } + engines: { node: '>=6' } + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@2.6.2: + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } + + /type-check@0.4.0: + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: '>=10' } + dev: true + + /type-fest@0.21.3: + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: '>=10' } + dev: true + + /type-is@1.6.18: + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: '>= 0.6' } + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typed-array-buffer@1.0.2: + resolution: + { + integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: + { + integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: + { + integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, + } + engines: { node: '>= 0.4' } + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.6: + resolution: + { + integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + + /typescript@5.4.5: + resolution: + { + integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==, + } + engines: { node: '>=14.17' } + hasBin: true + + /ua-parser-js@1.0.37: + resolution: + { + integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==, + } + dev: true + + /ufo@1.5.3: + resolution: + { + integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==, + } + dev: true + + /unbox-primitive@1.0.2: + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unc-path-regex@0.1.2: + resolution: + { + integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /undici-types@5.26.5: + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } + + /unified@10.1.2: + resolution: + { + integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, + } + dependencies: + '@types/unist': 2.0.10 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 5.3.7 + dev: true + + /unique-filename@3.0.0: + resolution: + { + integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + unique-slug: 4.0.0 + dev: true + + /unique-slug@4.0.0: + resolution: + { + integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unist-util-generated@2.0.1: + resolution: + { + integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, + } + dev: true + + /unist-util-is@5.2.1: + resolution: + { + integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /unist-util-position-from-estree@1.1.2: + resolution: + { + integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /unist-util-position@4.0.4: + resolution: + { + integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /unist-util-remove-position@4.0.2: + resolution: + { + integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==, + } + dependencies: + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: true + + /unist-util-stringify-position@3.0.3: + resolution: + { + integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, + } + dependencies: + '@types/unist': 2.0.10 + dev: true + + /unist-util-visit-parents@5.1.3: + resolution: + { + integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, + } + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + dev: true + + /unist-util-visit@4.1.2: + resolution: + { + integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, + } + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: true + + /universalify@2.0.1: + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: '>= 10.0.0' } + dev: true + + /unixify@1.0.0: + resolution: + { + integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==, + } + engines: { node: '>=0.10.0' } + dependencies: + normalize-path: 2.1.1 + dev: true + + /unpipe@1.0.0: + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: '>= 0.8' } + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /upper-case-first@2.0.2: + resolution: + { + integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /upper-case@2.0.2: + resolution: + { + integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /uri-js@4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + dependencies: + punycode: 2.3.1 + dev: true + + /urlpattern-polyfill@10.0.0: + resolution: + { + integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==, + } + dev: true + + /urlpattern-polyfill@8.0.2: + resolution: + { + integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==, + } + dev: true + + /use-callback-ref@1.3.2(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /use-composed-ref@1.3.0(react@18.2.0): + resolution: + { + integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use-debounce@8.0.4(react@18.2.0): + resolution: + { + integrity: sha512-fGqsYQzl8kLHF2QpQSgIwgOgJmnh6j5L6SIzQiHdLfwp3q1egUL3btq5Bg2SJysH6A0ILLgT2IqXZKoNJr0nFw==, + } + engines: { node: '>= 10.0.0' } + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + dev: false + + /use-latest@1.2.1(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.79)(react@18.2.0) + dev: false + + /use-sidecar@1.1.2(@types/react@18.2.79)(react@18.2.0): + resolution: + { + integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.79 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } + dev: true + + /util@0.12.5: + resolution: + { + integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, + } + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + + /utils-merge@1.0.1: + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: '>= 0.4.0' } + + /uvu@0.5.6: + resolution: + { + integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, + } + engines: { node: '>=8' } + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.2.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: true + + /validate-npm-package-license@3.0.4: + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /validate-npm-package-name@5.0.0: + resolution: + { + integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + builtins: 5.1.0 + dev: true + + /value-or-promise@1.0.12: + resolution: + { + integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==, + } + engines: { node: '>=12' } + dev: true + + /vary@1.1.2: + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: '>= 0.8' } + + /vfile-message@3.1.4: + resolution: + { + integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, + } + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position: 3.0.3 + dev: true + + /vfile@5.3.7: + resolution: + { + integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, + } + dependencies: + '@types/unist': 2.0.10 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: true + + /vite-node@1.5.0: + resolution: + { + integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.9 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.9): + resolution: + { + integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==, + } + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + debug: 4.3.4 + globrex: 0.1.2 + tsconfck: 3.0.3(typescript@5.4.5) + vite: 5.2.9 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /vite@5.2.9: + resolution: + { + integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==, + } + engines: { node: ^18.0.0 || >=20.0.0 } + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.3 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /wcwidth@1.0.1: + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } + dependencies: + defaults: 1.0.4 + dev: true + + /web-encoding@1.1.5: + resolution: + { + integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==, + } + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + /web-streams-polyfill@3.3.3: + resolution: + { + integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==, + } + engines: { node: '>= 8' } + + /web-streams-polyfill@4.0.0-beta.3: + resolution: + { + integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==, + } + engines: { node: '>= 14' } + dev: false + + /webcrypto-core@1.7.9: + resolution: + { + integrity: sha512-FE+a4PPkOmBbgNDIyRmcHhgXn+2ClRl3JzJdDu/P4+B8y81LqKe6RAsI9b3lAOHe1T1BMkSjsRHTYRikImZnVA==, + } + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: true + + /webidl-conversions@3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + + /whatwg-url@5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /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-builtin-type@1.1.3: + resolution: + { + integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, + } + engines: { node: '>= 0.4' } + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /which-collection@1.0.2: + resolution: + { + integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, + } + engines: { node: '>= 0.4' } + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + dev: true + + /which-module@2.0.1: + resolution: + { + integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, + } + dev: true + + /which-typed-array@1.1.15: + resolution: + { + integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, + } + engines: { node: '>= 0.4' } + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + /which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@3.0.1: + resolution: + { + integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + dev: true + + /ws@7.5.9: + resolution: + { + integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, + } + engines: { node: '>=8.3.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.16.0: + resolution: + { + integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==, + } + engines: { node: '>=10.0.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xtend@4.0.2: + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: '>=0.4' } + dev: true + + /y18n@4.0.3: + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, + } + dev: true + + /y18n@5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: '>=10' } + dev: true + + /yallist@3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } + dev: true + + /yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + dev: true + + /yaml-ast-parser@0.0.43: + resolution: + { + integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==, + } + dev: true + + /yaml@2.4.1: + resolution: + { + integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==, + } + engines: { node: '>= 14' } + hasBin: true + dev: true + + /yargs-parser@18.1.3: + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, + } + engines: { node: '>=6' } + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@21.1.1: + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: '>=12' } + dev: true + + /yargs@15.4.1: + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, + } + engines: { node: '>=8' } + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@17.7.2: + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: '>=12' } + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yjs@13.6.14: + resolution: + { + integrity: sha512-D+7KcUr0j+vBCUSKXXEWfA+bG4UQBviAwP3gYBhkstkgwy5+8diOPMx0iqLIOxNo/HxaREUimZRxqHGAHCL2BQ==, + } + engines: { node: '>=16.0.0', npm: '>=8.0.0' } + dependencies: + lib0: 0.2.93 + dev: false + + /yocto-queue@0.1.0: + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: '>=10' } + dev: true + + /zod@3.22.4: + resolution: + { + integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==, + } + dev: false + + /zwitch@2.0.4: + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + } + dev: true diff --git a/components/generative-ai-app/postcss.config.cjs b/components/generative-ai-app/postcss.config.cjs new file mode 100644 index 0000000..f25794d --- /dev/null +++ b/components/generative-ai-app/postcss.config.cjs @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + 'postcss-import': {}, + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/components/generative-ai-app/public/favicon.ico b/components/generative-ai-app/public/favicon.ico new file mode 100644 index 0000000..eceb74d Binary files /dev/null and b/components/generative-ai-app/public/favicon.ico differ diff --git a/components/generative-ai-app/src/__generated__/types.ts b/components/generative-ai-app/src/__generated__/types.ts new file mode 100644 index 0000000..9f80ed8 --- /dev/null +++ b/components/generative-ai-app/src/__generated__/types.ts @@ -0,0 +1,5428 @@ +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + Date: { input: any; output: any }; + DateTime: { input: any; output: any }; + EmailAddress: { input: any; output: any }; + JSON: { input: any; output: any }; + NonNegativeFloat: { input: any; output: any }; + NonNegativeInt: { input: any; output: any }; + PhoneNumber: { input: any; output: any }; + PositiveInt: { input: any; output: any }; +}; + +export type AcceptedContentType = { + __typename?: 'AcceptedContentType'; + contentType: Scalars['String']['output']; + extensionLabel?: Maybe; +}; + +export type AcceptedContentTypeInput = { + contentType: Scalars['String']['input']; + extensionLabel?: InputMaybe; +}; + +export type AccessToken = { + __typename?: 'AccessToken'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['String']['output']; + lastUsed?: Maybe; + name?: Maybe; + secret?: Maybe; + userId: Scalars['ID']['output']; +}; + +export type AccessTokenMutations = { + __typename?: 'AccessTokenMutations'; + create: AccessToken; + delete: Scalars['Int']['output']; +}; + +export type AccessTokenMutationsCreateArgs = { + input: CreateAccessTokenInput; + userId: Scalars['ID']['input']; +}; + +export type AccessTokenMutationsDeleteArgs = { + id: Scalars['String']['input']; +}; + +export type AddLanguageInput = { + code: Scalars['String']['input']; + name: Scalars['String']['input']; +}; + +export type Address = { + __typename?: 'Address'; + city?: Maybe; + country?: Maybe; + email?: Maybe; + firstName?: Maybe; + id?: Maybe; + lastName?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; + middleName?: Maybe; + phone?: Maybe; + postalCode?: Maybe; + state?: Maybe; + street?: Maybe; + street2?: Maybe; + streetNumber?: Maybe; + type: AddressType; +}; + +export type AddressMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type AddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export enum AddressType { + Billing = 'billing', + Delivery = 'delivery', + Other = 'other', +} + +export type ApiCallMetrics = IObjectMetrics & { + __typename?: 'ApiCallMetrics'; + count: Scalars['Int']['output']; +}; + +export type ApiCallMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type App = { + __typename?: 'App'; + baseUrl: Scalars['String']['output']; + createdAt: Scalars['DateTime']['output']; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + sessionUrl: Scalars['String']['output']; + tenant?: Maybe; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type AppConnection = { + __typename?: 'AppConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type AppConnectionEdge = { + __typename?: 'AppConnectionEdge'; + cursor: Scalars['String']['output']; + node: App; +}; + +export type AppListFilter = { + tenantId: Scalars['ID']['input']; +}; + +export type AppListSortOptions = { + direction?: InputMaybe; + field?: InputMaybe; +}; + +export type AppMutations = { + __typename?: 'AppMutations'; + create: App; + delete: Scalars['Int']['output']; + update: App; +}; + +export type AppMutationsCreateArgs = { + input: CreateAppInput; +}; + +export type AppMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type AppMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateAppInput; + tenantId: Scalars['ID']['input']; +}; + +export type AppQueries = { + __typename?: 'AppQueries'; + get?: Maybe; + getMany: AppConnection; +}; + +export type AppQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type AppQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter: AppListFilter; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; +}; + +export type ArchiveQueries = { + __typename?: 'ArchiveQueries'; + get?: Maybe; + getByNumber?: Maybe; +}; + +export type ArchiveQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type ArchiveQueriesGetByNumberArgs = { + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; + number: Scalars['Int']['input']; + versionLabel?: VersionLabel; +}; + +export type ArchivedItemVersion = { + __typename?: 'ArchivedItemVersion'; + archivedAt: Scalars['DateTime']['output']; + archivedBy: Owner; + id: Scalars['ID']['output']; + item: Item; + name?: Maybe; + number: Scalars['Int']['output']; +}; + +export enum AuthenticationMethod { + AccessTokenPair = 'accessTokenPair', + None = 'none', + StaticToken = 'staticToken', +} + +export enum BandwidthUnit { + Bytes = 'Bytes', + GiB = 'GiB', + KiB = 'KiB', + MiB = 'MiB', +} + +export type BandwidthUsageMetrics = { + __typename?: 'BandwidthUsageMetrics'; + total: Scalars['Float']['output']; +}; + +export type BandwidthUsageMetricsTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; + type?: InputMaybe; + unit?: BandwidthUnit; +}; + +export enum BandwidthUsageType { + ApiCall = 'ApiCall', + Media = 'Media', +} + +export type BooleanComponentConfig = { + __typename?: 'BooleanComponentConfig'; + multilingual?: Maybe; +}; + +export type BooleanComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type BooleanContent = { + __typename?: 'BooleanContent'; + value?: Maybe; +}; + +export type BooleanContentInput = { + value: Scalars['Boolean']['input']; +}; + +export type BulkCreateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type BulkCreateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type BulkCreateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; + variants: Array; + vatTypeId: Scalars['ID']['input']; +}; + +export type BulkCreateShapeInput = { + components?: InputMaybe>; + identifier?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + type: ShapeType; + variantComponents?: InputMaybe>; +}; + +export type BulkCreateTenantInput = { + createdAt?: InputMaybe; + defaults?: InputMaybe; + identifier: Scalars['String']['input']; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + name: Scalars['String']['input']; + shapes?: InputMaybe>; + vatTypes?: InputMaybe>; +}; + +export type BulkCreateTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; +}; + +export type BulkCreateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + isAdmin?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + sub?: InputMaybe; + tocReadAt?: InputMaybe; +}; + +export type BulkCreateVatTypeInput = { + name: Scalars['String']['input']; + percent: Scalars['Float']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type BulkTaskTenantCopyInfo = { + __typename?: 'BulkTaskTenantCopyInfo'; + id: Scalars['ID']['output']; +}; + +export type CashPayment = PaymentType & { + __typename?: 'CashPayment'; + cash?: Maybe; + provider: PaymentProvider; +}; + +export type CashPaymentInput = { + cash?: InputMaybe; +}; + +export type Component = { + __typename?: 'Component'; + componentId: Scalars['String']['output']; + content?: Maybe; + name: Scalars['String']['output']; + type: ComponentType; +}; + +export type ComponentChoiceComponentConfig = { + __typename?: 'ComponentChoiceComponentConfig'; + choices: Array; + multilingual?: Maybe; +}; + +export type ComponentChoiceComponentConfigInput = { + choices: Array; + multilingual?: InputMaybe; +}; + +export type ComponentChoiceContent = { + __typename?: 'ComponentChoiceContent'; + selectedComponent: Component; +}; + +export type ComponentConfig = + | BooleanComponentConfig + | ComponentChoiceComponentConfig + | ComponentMultipleChoiceComponentConfig + | ContentChunkComponentConfig + | DatetimeComponentConfig + | FilesComponentConfig + | GridRelationsComponentConfig + | ImagesComponentConfig + | ItemRelationsComponentConfig + | LocationComponentConfig + | NumericComponentConfig + | ParagraphCollectionComponentConfig + | PieceComponentConfig + | PropertiesTableComponentConfig + | RichTextComponentConfig + | SelectionComponentConfig + | SingleLineComponentConfig + | VideosComponentConfig; + +export type ComponentConfigInput = { + boolean?: InputMaybe; + componentChoice?: InputMaybe; + componentMultipleChoice?: InputMaybe; + contentChunk?: InputMaybe; + datetime?: InputMaybe; + files?: InputMaybe; + gridRelations?: InputMaybe; + images?: InputMaybe; + itemRelations?: InputMaybe; + location?: InputMaybe; + numeric?: InputMaybe; + paragraphCollection?: InputMaybe; + propertiesTable?: InputMaybe; + richText?: InputMaybe; + selection?: InputMaybe; + singleLine?: InputMaybe; + videos?: InputMaybe; +}; + +export type ComponentContent = + | BooleanContent + | ComponentChoiceContent + | ComponentMultipleChoiceContent + | ContentChunkContent + | DatetimeContent + | FileContent + | GridRelationsContent + | ImageContent + | ItemRelationsContent + | LocationContent + | NumericContent + | ParagraphCollectionContent + | PieceContent + | PropertiesTableContent + | RichTextContent + | SelectionContent + | SingleLineContent + | VideoContent; + +export type ComponentInput = { + boolean?: InputMaybe; + componentChoice?: InputMaybe; + componentId: Scalars['String']['input']; + componentMultipleChoice?: InputMaybe>; + contentChunk?: InputMaybe; + datetime?: InputMaybe; + files?: InputMaybe>; + gridRelations?: InputMaybe; + images?: InputMaybe>; + itemRelations?: InputMaybe; + location?: InputMaybe; + numeric?: InputMaybe; + paragraphCollection?: InputMaybe; + piece?: InputMaybe; + propertiesTable?: InputMaybe; + richText?: InputMaybe; + selection?: InputMaybe; + singleLine?: InputMaybe; + videos?: InputMaybe>; +}; + +export type ComponentMultipleChoiceComponentConfig = { + __typename?: 'ComponentMultipleChoiceComponentConfig'; + choices: Array; + multilingual?: Maybe; +}; + +export type ComponentMultipleChoiceComponentConfigInput = { + choices: Array; + multilingual?: InputMaybe; +}; + +export type ComponentMultipleChoiceContent = { + __typename?: 'ComponentMultipleChoiceContent'; + selectedComponents: Array; +}; + +export enum ComponentType { + Boolean = 'boolean', + ComponentChoice = 'componentChoice', + ComponentMultipleChoice = 'componentMultipleChoice', + ContentChunk = 'contentChunk', + Datetime = 'datetime', + Files = 'files', + GridRelations = 'gridRelations', + Images = 'images', + ItemRelations = 'itemRelations', + Location = 'location', + Numeric = 'numeric', + ParagraphCollection = 'paragraphCollection', + Piece = 'piece', + PropertiesTable = 'propertiesTable', + RichText = 'richText', + Selection = 'selection', + SingleLine = 'singleLine', + Videos = 'videos', +} + +export type ContentChunkComponentConfig = { + __typename?: 'ContentChunkComponentConfig'; + components: Array; + multilingual?: Maybe; + repeatable: Scalars['Boolean']['output']; +}; + +export type ContentChunkComponentConfigInput = { + components: Array; + multilingual?: InputMaybe; + repeatable?: InputMaybe; +}; + +export type ContentChunkContent = { + __typename?: 'ContentChunkContent'; + chunks: Array>; +}; + +export type ContentChunkContentInput = { + chunks: Array>; +}; + +export type ContractSubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periodId: Scalars['ID']['input']; +}; + +export type CreateAccessTokenInput = { + name?: InputMaybe; +}; + +export type CreateAppInput = { + baseUrl: Scalars['String']['input']; + identifier?: InputMaybe; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreateChildTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + pathIdentifier?: InputMaybe; +}; + +export type CreateCustomerAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateCustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + email?: InputMaybe; + externalReferences?: InputMaybe>; + firstName: Scalars['String']['input']; + identifier?: InputMaybe; + lastName: Scalars['String']['input']; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + taxNumber?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +/** Creates a new document. Note that the shapeId input has been deprecated and will be removed in a future release. */ +export type CreateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeId?: InputMaybe; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type CreateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type CreateGridInput = { + meta?: InputMaybe>; + name: Scalars['String']['input']; + rows?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type CreateMarketInput = { + customerIdentifiers?: InputMaybe>; + identifier: Scalars['String']['input']; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePipelineInput = { + name: Scalars['String']['input']; + stages?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePipelineStageInput = { + name: Scalars['String']['input']; + placeNewOrders?: InputMaybe; +}; + +export type CreatePriceListInput = { + endDate?: InputMaybe; + identifier: Scalars['String']['input']; + modifierType: PriceListModifierType; + name: Scalars['String']['input']; + priceVariants?: InputMaybe>; + selectedProductVariants: CreatePriceListSelectedProductVariantsInput; + startDate?: InputMaybe; + targetAudience: CreatePriceListTargetAudienceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePriceListProductVariant = { + priceVariants?: InputMaybe>; + sku: Scalars['String']['input']; +}; + +export type CreatePriceListSelectedProductVariantsInput = { + type: PriceListProductSelectionType; + variants?: InputMaybe>; +}; + +export type CreatePriceListTargetAudienceInput = { + marketIdentifiers?: InputMaybe>>; + type: PriceListTargetAudienceType; +}; + +export type CreatePriceVariantInput = { + currency?: InputMaybe; + identifier: Scalars['String']['input']; + name?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; + variants: Array; + vatTypeId: Scalars['ID']['input']; +}; + +export type CreateProductSubscriptionAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateProductSubscriptionInput = { + addresses?: InputMaybe>; + customerIdentifier: Scalars['String']['input']; + initial?: InputMaybe; + item: CreateProductSubscriptionItemInput; + meteredVariables?: InputMaybe>; + payment?: InputMaybe; + recurring: CreateProductSubscriptionPhaseInput; + status: CreateProductSubscriptionStatusInput; + subscriptionPlan: ProductSubscriptionPlanReferenceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreateProductSubscriptionItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + sku: Scalars['String']['input']; +}; + +export type CreateProductSubscriptionMeteredVariableInput = { + id: Scalars['ID']['input']; + tierType: TierType; + tiers: Array; +}; + +export type CreateProductSubscriptionMeteredVariableTierInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + threshold: Scalars['Int']['input']; +}; + +export type CreateProductSubscriptionPhaseInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; +}; + +export type CreateProductSubscriptionStatusInput = { + activeUntil?: InputMaybe; + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + renewAt?: InputMaybe; +}; + +export type CreateProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + images?: InputMaybe>; + isDefault: Scalars['Boolean']['input']; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku: Scalars['String']['input']; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type CreateShapeInput = { + components?: InputMaybe>; + identifier?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + type: ShapeType; + variantComponents?: InputMaybe>; +}; + +export type CreateStockLocationInput = { + identifier: Scalars['String']['input']; + name: Scalars['String']['input']; + settings?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateSubscriptionContractAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateSubscriptionContractInput = { + addresses?: InputMaybe>; + customerIdentifier: Scalars['String']['input']; + initial?: InputMaybe; + item: CreateSubscriptionContractItemInput; + payment?: InputMaybe; + recurring: CreateSubscriptionContractPhaseInput; + status: CreateSubscriptionContractStatusInput; + subscriptionPlan: ContractSubscriptionPlanReferenceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreateSubscriptionContractItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + sku: Scalars['String']['input']; +}; + +export type CreateSubscriptionContractMeteredVariableReferenceInput = { + id: Scalars['ID']['input']; + tierType: TierType; + tiers: Array; +}; + +export type CreateSubscriptionContractMeteredVariableTierInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + threshold: Scalars['Int']['input']; +}; + +export type CreateSubscriptionContractPhaseInput = { + currency: Scalars['String']['input']; + meteredVariables?: InputMaybe>; + price: Scalars['Float']['input']; +}; + +export type CreateSubscriptionContractStatusInput = { + activeUntil?: InputMaybe; + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + renewAt?: InputMaybe; +}; + +export type CreateSubscriptionPlanInput = { + identifier: Scalars['String']['input']; + meteredVariables?: InputMaybe>; + name?: InputMaybe; + periods: Array; + tenantId: Scalars['ID']['input']; +}; + +export type CreateTenantInput = { + createdAt?: InputMaybe; + defaults?: InputMaybe; + identifier: Scalars['String']['input']; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + shapes?: InputMaybe>; + vatTypes?: InputMaybe>; +}; + +export type CreateTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + isAdmin?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + sub: Array; + tocReadAt?: InputMaybe; +}; + +export type CreateVatTypeInput = { + name: Scalars['String']['input']; + percent: Scalars['Float']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreateWebhookInput = { + concern: Scalars['String']['input']; + event: Scalars['String']['input']; + graphqlQuery?: InputMaybe; + graphqlQueryTarget?: InputMaybe; + headers?: InputMaybe>; + method: HttpMethod; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + url: Scalars['String']['input']; +}; + +export type CreateWebhookInvocationInput = { + end?: InputMaybe; + payload?: InputMaybe; + responseBody?: InputMaybe; + responseStatus?: InputMaybe; + start?: InputMaybe; +}; + +export type CurrencySummary = { + __typename?: 'CurrencySummary'; + currency?: Maybe; + value?: Maybe; +}; + +export type CurrencySummaryReport = { + __typename?: 'CurrencySummaryReport'; + orders: Array>; + sales: Array>; +}; + +export type CurrencySummaryReportOrdersArgs = { + direction?: InputMaybe; + end?: InputMaybe; + orderBy?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CurrencySummaryReportSalesArgs = { + direction?: InputMaybe; + end?: InputMaybe; + orderBy?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CustomPayment = PaymentType & { + __typename?: 'CustomPayment'; + properties?: Maybe>; + provider: PaymentProvider; +}; + +export type CustomPaymentInput = { + properties?: InputMaybe>; +}; + +export type CustomProperties = { + __typename?: 'CustomProperties'; + property: Scalars['String']['output']; + value?: Maybe; +}; + +export type CustomPropertiesInput = { + property: Scalars['String']['input']; + value?: InputMaybe; +}; + +export type Customer = { + __typename?: 'Customer'; + addresses?: Maybe>; + birthDate?: Maybe; + companyName?: Maybe; + email?: Maybe; + externalReference?: Maybe; + externalReferences?: Maybe>; + firstName?: Maybe; + identifier?: Maybe; + lastName?: Maybe; + markets?: Maybe>; + meta?: Maybe>; + metaProperty?: Maybe; + middleName?: Maybe; + phone?: Maybe; + taxNumber?: Maybe; + tenantId?: Maybe; +}; + +export type CustomerExternalReferenceArgs = { + key: Scalars['String']['input']; +}; + +export type CustomerMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type CustomerConnection = { + __typename?: 'CustomerConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type CustomerConnectionEdge = { + __typename?: 'CustomerConnectionEdge'; + cursor: Scalars['String']['output']; + node: Customer; +}; + +export type CustomerExternalReferenceInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type CustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + firstName?: InputMaybe; + identifier?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + taxNumber?: InputMaybe; +}; + +export type CustomerMutations = { + __typename?: 'CustomerMutations'; + create: Customer; + createAddress: Customer; + delete: Scalars['Int']['output']; + deleteAddress: Scalars['Int']['output']; + setMetadata: Customer; + update: Customer; + updateAddress: Customer; +}; + +export type CustomerMutationsCreateArgs = { + input: CreateCustomerInput; +}; + +export type CustomerMutationsCreateAddressArgs = { + identifier: Scalars['String']['input']; + input: CreateCustomerAddressInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsDeleteArgs = { + deleteSubscriptionContracts?: InputMaybe; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsDeleteAddressArgs = { + addressId: Scalars['String']['input']; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsSetMetadataArgs = { + identifier: Scalars['String']['input']; + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + value: Scalars['String']['input']; +}; + +export type CustomerMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateCustomerInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsUpdateAddressArgs = { + addressId: Scalars['String']['input']; + identifier: Scalars['String']['input']; + input: UpdateCustomerAddressInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerQueries = { + __typename?: 'CustomerQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type CustomerQueriesGetArgs = { + externalReference?: InputMaybe; + identifier?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + identifier?: InputMaybe; + last?: InputMaybe; + meta?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type DatetimeComponentConfig = { + __typename?: 'DatetimeComponentConfig'; + multilingual?: Maybe; +}; + +export type DatetimeComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type DatetimeContent = { + __typename?: 'DatetimeContent'; + datetime?: Maybe; +}; + +export type DatetimeContentInput = { + datetime?: InputMaybe; +}; + +export type DigitalAssetManagementPreferencesInput = { + enabled?: InputMaybe; +}; + +export type DigitalAssetPreferences = { + __typename?: 'DigitalAssetPreferences'; + enabled?: Maybe; +}; + +export type Discount = { + __typename?: 'Discount'; + percent?: Maybe; +}; + +export type DiscountInput = { + percent?: InputMaybe; +}; + +export type Document = Item & { + __typename?: 'Document'; + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type DocumentHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type DocumentMutations = { + __typename?: 'DocumentMutations'; + create: Document; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + update: Document; +}; + +export type DocumentMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateDocumentInput; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type DocumentMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateDocumentInput; + language: Scalars['String']['input']; +}; + +export type DocumentQueries = { + __typename?: 'DocumentQueries'; + get?: Maybe; +}; + +export type DocumentQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ExperimentalPreferenceEnabled = { + __typename?: 'ExperimentalPreferenceEnabled'; + enabled?: Maybe; +}; + +export type ExperimentalPreferenceEnabledInput = { + enabled?: InputMaybe; +}; + +export type ExperimentalPreferences = { + __typename?: 'ExperimentalPreferences'; + /** @deprecated Replaced by get with componentsOnVariants */ + componentsOnVariants?: Maybe; + /** @deprecated Replaced by get with dam */ + dam?: Maybe; + get?: Maybe; + /** @deprecated Replaced by get with nerdyView */ + nerdyView?: Maybe; +}; + +export type ExperimentalPreferencesGetArgs = { + name: Scalars['String']['input']; +}; + +export type ExperimentalPreferencesInput = { + componentsOnVariants?: InputMaybe; + dam?: InputMaybe; + nerdyView?: InputMaybe; +}; + +export type File = { + __typename?: 'File'; + contentType?: Maybe; + key: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + size?: Maybe; + title?: Maybe; + url: Scalars['String']['output']; +}; + +export type FileMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type FileContent = { + __typename?: 'FileContent'; + files?: Maybe>; +}; + +export type FileContentInput = { + files?: InputMaybe>; +}; + +export type FileInput = { + key: Scalars['String']['input']; + meta?: InputMaybe>; + title?: InputMaybe; +}; + +export type FileQueries = { + __typename?: 'FileQueries'; + get?: Maybe; +}; + +export type FileQueriesGetArgs = { + key: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type FileSize = { + __typename?: 'FileSize'; + size: Scalars['Float']['output']; + unit: FileSizeUnit; +}; + +export enum FileSizeUnit { + Bytes = 'Bytes', + GiB = 'GiB', + KiB = 'KiB', + MiB = 'MiB', +} + +export type FileUploadMutations = { + __typename?: 'FileUploadMutations'; + generatePresignedRequest: PresignedUploadRequest; +}; + +export type FileUploadMutationsGeneratePresignedRequestArgs = { + contentType: Scalars['String']['input']; + filename: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + type?: FileUploadType; +}; + +export enum FileUploadType { + Media = 'MEDIA', + Static = 'STATIC', +} + +export type FilesComponentConfig = { + __typename?: 'FilesComponentConfig'; + acceptedContentTypes?: Maybe>; + max?: Maybe; + maxFileSize?: Maybe; + min?: Maybe; + multilingual?: Maybe; +}; + +export type FilesComponentConfigInput = { + acceptedContentTypes?: InputMaybe>; + max?: InputMaybe; + maxFileSize?: InputMaybe; + min?: InputMaybe; + multilingual?: InputMaybe; +}; + +export type FocalPoint = { + __typename?: 'FocalPoint'; + x: Scalars['Float']['output']; + y: Scalars['Float']['output']; +}; + +export type FocalPointInput = { + x: Scalars['Float']['input']; + y: Scalars['Float']['input']; +}; + +export type Folder = Item & { + __typename?: 'Folder'; + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type FolderHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type FolderMutations = { + __typename?: 'FolderMutations'; + create: Folder; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + update: Folder; +}; + +export type FolderMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateFolderInput; + language: Scalars['String']['input']; +}; + +export type FolderMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type FolderMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type FolderMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type FolderMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateFolderInput; + language: Scalars['String']['input']; +}; + +export type FolderQueries = { + __typename?: 'FolderQueries'; + get?: Maybe; +}; + +export type FolderQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type FullTreeNodeInput = { + itemId: Scalars['ID']['input']; + parentId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type GenericPublishInput = { + id: Scalars['ID']['input']; + type: ShapeType; +}; + +export type GenericSuggestSearchResult = SuggestSearchResult & { + __typename?: 'GenericSuggestSearchResult'; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export type GetTopicByPathArguments = { + path: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type Grid = { + __typename?: 'Grid'; + createdAt: Scalars['DateTime']['output']; + hasVersion: Scalars['Boolean']['output']; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + name?: Maybe; + rows: Array; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type GridHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type GridMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridColumn = { + __typename?: 'GridColumn'; + item?: Maybe; + itemId?: Maybe; + itemType?: Maybe; + layout?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; +}; + +export type GridColumnMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridColumnInput = { + itemId?: InputMaybe; + layout?: InputMaybe; + meta?: InputMaybe>; +}; + +export type GridColumnLayout = { + __typename?: 'GridColumnLayout'; + colspan?: Maybe; + rowspan?: Maybe; +}; + +export type GridLayoutInput = { + colspan?: InputMaybe; + rowspan?: InputMaybe; +}; + +export type GridMutations = { + __typename?: 'GridMutations'; + create: Grid; + delete: Scalars['Int']['output']; + publish: GridPublishInfo; + unpublish?: Maybe; + update: Grid; +}; + +export type GridMutationsCreateArgs = { + input: CreateGridInput; + language: Scalars['String']['input']; +}; + +export type GridMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type GridMutationsPublishArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type GridMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type GridMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateGridInput; + language: Scalars['String']['input']; +}; + +export type GridPublishInfo = { + __typename?: 'GridPublishInfo'; + id: Scalars['ID']['output']; + versionId: Scalars['ID']['output']; +}; + +export type GridQueries = { + __typename?: 'GridQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type GridQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type GridQueriesGetManyArgs = { + language: Scalars['String']['input']; + tenantId?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type GridRelationsComponentConfig = { + __typename?: 'GridRelationsComponentConfig'; + multilingual?: Maybe; +}; + +export type GridRelationsComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type GridRelationsContent = { + __typename?: 'GridRelationsContent'; + grids?: Maybe>; +}; + +export type GridRelationsContentInput = { + gridIds?: InputMaybe>; +}; + +export type GridRow = { + __typename?: 'GridRow'; + columns: Array; + meta?: Maybe>; + metaProperty?: Maybe; +}; + +export type GridRowMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridRowInput = { + columns?: InputMaybe>; + meta?: InputMaybe>; +}; + +export type Hreflang = { + __typename?: 'Hreflang'; + language: Scalars['String']['output']; + path: Scalars['String']['output']; +}; + +export enum HttpMethod { + Delete = 'DELETE', + Get = 'GET', + Patch = 'PATCH', + Post = 'POST', + Put = 'PUT', +} + +export type IObjectMetrics = { + count: Scalars['Int']['output']; +}; + +export type IObjectMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReports = { + avg: Array>; + sum: Array>; + total: Scalars['Float']['output']; +}; + +export type IObjectReportsAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReportsSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReportsTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type IdentifierSuggestion = { + __typename?: 'IdentifierSuggestion'; + isAvailable: Scalars['Boolean']['output']; + suggestion: Scalars['String']['output']; +}; + +export type Image = { + __typename?: 'Image'; + altText?: Maybe; + caption?: Maybe; + focalPoint?: Maybe; + height?: Maybe; + itemCount: Scalars['Int']['output']; + key: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + mimeType?: Maybe; + showcase?: Maybe>; + url?: Maybe; + variants?: Maybe>; + width?: Maybe; +}; + +export type ImageItemCountArgs = { + versionLabel?: VersionLabel; +}; + +export type ImageMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type ImageConnection = { + __typename?: 'ImageConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ImageConnectionEdge = { + __typename?: 'ImageConnectionEdge'; + cursor: Scalars['String']['output']; + node: Image; +}; + +export type ImageContent = { + __typename?: 'ImageContent'; + images?: Maybe>; +}; + +export enum ImageFileNameFilterCondition { + Contains = 'contains', + EndsWith = 'endsWith', + StartsWith = 'startsWith', +} + +export type ImageFileNameFilterInput = { + condition?: ImageFileNameFilterCondition; + value: Scalars['String']['input']; +}; + +export type ImageFilterInput = { + filename?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type ImageHotspotInput = { + hotspot?: InputMaybe; + itemIds?: InputMaybe>; + meta?: InputMaybe>; + skus?: InputMaybe>; +}; + +export type ImageInput = { + altText?: InputMaybe; + caption?: InputMaybe; + focalPoint?: InputMaybe; + hotspots?: InputMaybe>; + key: Scalars['String']['input']; + meta?: InputMaybe>; + mimeType?: InputMaybe; +}; + +export type ImageMutations = { + __typename?: 'ImageMutations'; + delete: Scalars['Int']['output']; + registerImage?: Maybe; + registerVariants?: Maybe; + update: Image; +}; + +export type ImageMutationsDeleteArgs = { + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ImageMutationsRegisterImageArgs = { + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ImageMutationsRegisterVariantsArgs = { + key: Scalars['String']['input']; + upsert?: InputMaybe; + variants: Array; +}; + +export type ImageMutationsUpdateArgs = { + input: UpdateImageInput; + key: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type ImageQueries = { + __typename?: 'ImageQueries'; + get?: Maybe; + getItems?: Maybe; + getMany?: Maybe; + getTopics?: Maybe; +}; + +export type ImageQueriesGetArgs = { + key: Scalars['String']['input']; + language?: InputMaybe; +}; + +export type ImageQueriesGetItemsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + key: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type ImageQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + language: Scalars['String']['input']; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type ImageQueriesGetTopicsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + key: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type ImageShowcase = { + __typename?: 'ImageShowcase'; + hotspot?: Maybe; + itemIds?: Maybe>; + items?: Maybe>; + meta?: Maybe>; + productVariants?: Maybe>; + skus?: Maybe>; +}; + +export type ImageShowcaseItemsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ImageShowcaseProductVariantsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export enum ImageSortField { + CreatedAt = 'createdAt', +} + +export type ImageVariant = { + __typename?: 'ImageVariant'; + height: Scalars['Int']['output']; + key: Scalars['String']['output']; + size?: Maybe; + url: Scalars['String']['output']; + width: Scalars['Int']['output']; +}; + +export type ImageVariantInput = { + height: Scalars['Int']['input']; + key: Scalars['String']['input']; + size?: InputMaybe; + width: Scalars['Int']['input']; +}; + +export type ImagesComponentConfig = { + __typename?: 'ImagesComponentConfig'; + multilingual?: Maybe; +}; + +export type ImagesComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export enum Interval { + Annually = 'ANNUALLY', + Daily = 'DAILY', + Hourly = 'HOURLY', + Monthly = 'MONTHLY', +} + +export type InviteToken = { + __typename?: 'InviteToken'; + createdAt: Scalars['DateTime']['output']; + createdBy?: Maybe; + createdByUser?: Maybe; + expiresAt?: Maybe; + id: Scalars['ID']['output']; + redeemedAt?: Maybe; + redeemedBy: Scalars['ID']['output']; + redeemedByUser?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + token: Scalars['ID']['output']; +}; + +export type InviteTokenMutations = { + __typename?: 'InviteTokenMutations'; + create: InviteToken; + redeem: InviteToken; +}; + +export type InviteTokenMutationsCreateArgs = { + expiresAt?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type InviteTokenMutationsRedeemArgs = { + token: Scalars['ID']['input']; +}; + +export type Item = { + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type ItemHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type ItemComponentContentValidationError = { + __typename?: 'ItemComponentContentValidationError'; + componentId: Scalars['String']['output']; + error: ItemComponentContentValidationErrorDetails; +}; + +export type ItemComponentContentValidationErrorDetails = { + __typename?: 'ItemComponentContentValidationErrorDetails'; + errorName: Scalars['String']['output']; + message: Scalars['String']['output']; + properties?: Maybe>; +}; + +export type ItemConnection = { + __typename?: 'ItemConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ItemConnectionEdge = { + __typename?: 'ItemConnectionEdge'; + cursor: Scalars['String']['output']; + node: Item; +}; + +export type ItemMetrics = IObjectMetrics & { + __typename?: 'ItemMetrics'; + count: Scalars['Int']['output']; +}; + +export type ItemMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; + type?: InputMaybe; +}; + +export type ItemMutations = { + __typename?: 'ItemMutations'; + bulkPublish?: Maybe>; + bulkUnpublish?: Maybe>; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + updateComponent: Item; +}; + +export type ItemMutationsBulkPublishArgs = { + ids?: InputMaybe>; + language: Scalars['String']['input']; +}; + +export type ItemMutationsBulkUnpublishArgs = { + ids?: InputMaybe>; + language: Scalars['String']['input']; +}; + +export type ItemMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ItemMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ItemMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ItemMutationsUpdateComponentArgs = { + disableValidation?: InputMaybe; + input: ComponentInput; + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type ItemQueries = { + __typename?: 'ItemQueries'; + get?: Maybe; + getComponentContentValidationErrors?: Maybe>; + getMany?: Maybe>; +}; + +export type ItemQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ItemQueriesGetComponentContentValidationErrorsArgs = { + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type ItemQueriesGetManyArgs = { + externalReferences?: InputMaybe>; + language: Scalars['String']['input']; + tenantId?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type ItemRelationsComponentConfig = { + __typename?: 'ItemRelationsComponentConfig'; + acceptedShapeIdentifiers?: Maybe>; + /** @deprecated max has been deprecated in favor of maxItems */ + max?: Maybe; + maxItems?: Maybe; + maxSkus?: Maybe; + /** @deprecated min has been deprecated in favor of minItems */ + min?: Maybe; + minItems?: Maybe; + minSkus?: Maybe; + multilingual?: Maybe; + quickSelect?: Maybe; +}; + +export type ItemRelationsComponentConfigInput = { + acceptedShapeIdentifiers?: InputMaybe>; + max?: InputMaybe; + maxItems?: InputMaybe; + maxSkus?: InputMaybe; + min?: InputMaybe; + minItems?: InputMaybe; + minSkus?: InputMaybe; + multilingual?: InputMaybe; + quickSelect?: InputMaybe; +}; + +export type ItemRelationsComponentQuickSelectConfig = { + __typename?: 'ItemRelationsComponentQuickSelectConfig'; + folders?: Maybe>; +}; + +export type ItemRelationsComponentQuickSelectConfigInput = { + folders?: InputMaybe>; +}; + +export type ItemRelationsComponentQuickSelectFolderConfig = { + __typename?: 'ItemRelationsComponentQuickSelectFolderConfig'; + folderId: Scalars['ID']['output']; +}; + +export type ItemRelationsComponentQuickSelectFolderConfigInput = { + folderId: Scalars['ID']['input']; +}; + +export type ItemRelationsContent = { + __typename?: 'ItemRelationsContent'; + items?: Maybe>; + productVariants?: Maybe>; +}; + +export type ItemRelationsContentInput = { + itemIds?: InputMaybe>; + skus?: InputMaybe>; +}; + +export enum ItemSortField { + CreatedAt = 'createdAt', +} + +export type ItemSuggestSearchResult = SuggestSearchResult & { + __typename?: 'ItemSuggestSearchResult'; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + shapeIdentifier: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export enum ItemType { + Document = 'document', + Folder = 'folder', + Product = 'product', +} + +export type KeyValuePair = { + __typename?: 'KeyValuePair'; + key: Scalars['String']['output']; + value?: Maybe; +}; + +export type KeyValuePairInput = { + key: Scalars['String']['input']; + value?: InputMaybe; +}; + +export type KlarnaPayment = PaymentType & { + __typename?: 'KlarnaPayment'; + id?: Maybe; + merchantReference1?: Maybe; + merchantReference2?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + provider: PaymentProvider; + recurringToken?: Maybe; + status?: Maybe; +}; + +export type KlarnaPaymentInput = { + klarna?: InputMaybe; + merchantReference1?: InputMaybe; + merchantReference2?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + recurringToken?: InputMaybe; + status?: InputMaybe; +}; + +export type Language = { + __typename?: 'Language'; + code: Scalars['String']['output']; + name: Scalars['String']['output']; + system: Scalars['Boolean']['output']; +}; + +export type LanguageMutations = { + __typename?: 'LanguageMutations'; + add?: Maybe>; + remove?: Maybe>; + update?: Maybe>; +}; + +export type LanguageMutationsAddArgs = { + input: AddLanguageInput; + tenantId: Scalars['ID']['input']; +}; + +export type LanguageMutationsRemoveArgs = { + code: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type LanguageMutationsUpdateArgs = { + code: Scalars['String']['input']; + input: UpdateLanguageInput; + tenantId: Scalars['ID']['input']; +}; + +export type LocationComponentConfig = { + __typename?: 'LocationComponentConfig'; + multilingual?: Maybe; +}; + +export type LocationComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type LocationContent = { + __typename?: 'LocationContent'; + lat?: Maybe; + long?: Maybe; +}; + +export type LocationContentInput = { + lat?: InputMaybe; + long?: InputMaybe; +}; + +export type Market = { + __typename?: 'Market'; + createdAt: Scalars['DateTime']['output']; + customerIdentifiers?: Maybe>; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type MarketConnection = { + __typename?: 'MarketConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type MarketConnectionEdge = { + __typename?: 'MarketConnectionEdge'; + cursor: Scalars['String']['output']; + node: Market; +}; + +export type MarketMutations = { + __typename?: 'MarketMutations'; + create: Market; + delete: Scalars['Int']['output']; + update: Market; +}; + +export type MarketMutationsCreateArgs = { + input: CreateMarketInput; +}; + +export type MarketMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type MarketMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateMarketInput; + tenantId: Scalars['ID']['input']; +}; + +export type MarketQueries = { + __typename?: 'MarketQueries'; + get?: Maybe; + getMany: MarketConnection; +}; + +export type MarketQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type MarketQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type MaxFileSizeInput = { + size: Scalars['Float']['input']; + unit: FileSizeUnit; +}; + +export type MeMutations = { + __typename?: 'MeMutations'; + generateAccessToken?: Maybe; + setPreference?: Maybe; + /** @deprecated replaced by setPreference */ + setPreferences?: Maybe; + update?: Maybe; +}; + +export type MeMutationsGenerateAccessTokenArgs = { + input: CreateAccessTokenInput; +}; + +export type MeMutationsSetPreferenceArgs = { + input: PreferenceInput; + tenantId?: InputMaybe; +}; + +export type MeMutationsSetPreferencesArgs = { + input: PreferencesInput; + tenantId?: InputMaybe; +}; + +export type MeMutationsUpdateArgs = { + input?: InputMaybe; +}; + +export type Mutation = { + __typename?: 'Mutation'; + accessToken?: Maybe; + app?: Maybe; + customer?: Maybe; + document?: Maybe; + fileUpload?: Maybe; + folder?: Maybe; + grid?: Maybe; + image?: Maybe; + inviteToken?: Maybe; + item?: Maybe; + language?: Maybe; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + market: MarketMutations; + me?: Maybe; + order?: Maybe; + pipeline?: Maybe; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + priceList: PriceListMutations; + priceVariant: PriceVariantMutations; + product?: Maybe; + /** @deprecated productSubscription has been deprecated in favor of subscriptionContract */ + productSubscription: ProductSubscriptionMutations; + shape?: Maybe; + stockLocation: StockLocationMutations; + subscriptionContract: SubscriptionContractMutations; + subscriptionPlan: SubscriptionPlanMutations; + tenant?: Maybe; + topic?: Maybe; + tree?: Maybe; + user?: Maybe; + vatType?: Maybe; + video?: Maybe; + webhook?: Maybe; +}; + +export type NerdyViewPreferences = { + __typename?: 'NerdyViewPreferences'; + enabled?: Maybe; +}; + +export type NerdyViewPreferencesInput = { + enabled?: InputMaybe; +}; + +export type NumericComponentConfig = { + __typename?: 'NumericComponentConfig'; + decimalPlaces?: Maybe; + multilingual?: Maybe; + units?: Maybe>; +}; + +export type NumericComponentConfigInput = { + decimalPlaces?: InputMaybe; + multilingual?: InputMaybe; + units?: InputMaybe>; +}; + +export type NumericComponentContentInput = { + number: Scalars['Float']['input']; + unit?: InputMaybe; +}; + +export type NumericContent = { + __typename?: 'NumericContent'; + number: Scalars['Float']['output']; + unit?: Maybe; +}; + +export enum Operation { + Avg = 'AVG', + Sum = 'SUM', +} + +export type Order = { + __typename?: 'Order'; + additionalInformation?: Maybe; + cart: Array; + createdAt: Scalars['DateTime']['output']; + customer?: Maybe; + id: Scalars['ID']['output']; + meta?: Maybe>; + payment?: Maybe>; + pipelines?: Maybe>; + reference?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + total?: Maybe; + updatedAt?: Maybe; +}; + +export type OrderConnection = { + __typename?: 'OrderConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type OrderConnectionEdge = { + __typename?: 'OrderConnectionEdge'; + cursor: Scalars['String']['output']; + node: Order; +}; + +export type OrderItem = { + __typename?: 'OrderItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + orderId: Scalars['ID']['output']; + price?: Maybe; + productId?: Maybe; + /** @deprecated Product Subscription IDs have been deprecated in favor of Subscription Contract IDs. Querying for them will be removed in a future release. */ + productSubscriptionId?: Maybe; + /** @deprecated Product variant IDs have been deprecated and replaced by SKUs. */ + productVariantId?: Maybe; + quantity: Scalars['NonNegativeInt']['output']; + sku?: Maybe; + subTotal?: Maybe; + subscription?: Maybe; + subscriptionContractId?: Maybe; +}; + +export type OrderItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + price?: InputMaybe; + productId?: InputMaybe; + productSubscriptionId?: InputMaybe; + quantity: Scalars['NonNegativeInt']['input']; + sku?: InputMaybe; + subTotal?: InputMaybe; + subscriptionContractId?: InputMaybe; +}; + +export type OrderItemMeteredVariable = { + __typename?: 'OrderItemMeteredVariable'; + id: Scalars['ID']['output']; + price: Scalars['Float']['output']; + usage: Scalars['Float']['output']; +}; + +export type OrderItemSubscription = { + __typename?: 'OrderItemSubscription'; + end?: Maybe; + meteredVariables?: Maybe>; + name?: Maybe; + period: Scalars['PositiveInt']['output']; + start?: Maybe; + unit: OrderItemSubscriptionPeriodUnit; +}; + +export enum OrderItemSubscriptionPeriodUnit { + Day = 'day', + Hour = 'hour', + Minute = 'minute', + Month = 'month', + Week = 'week', + Year = 'year', +} + +export type OrderMetrics = IObjectMetrics & { + __typename?: 'OrderMetrics'; + count: Scalars['Int']['output']; +}; + +export type OrderMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type OrderMutations = { + __typename?: 'OrderMutations'; + delete: Scalars['Int']['output']; + removePipeline: Order; + setPipelineStage: Order; + update: Order; +}; + +export type OrderMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type OrderMutationsRemovePipelineArgs = { + orderId: Scalars['ID']['input']; + pipelineId: Scalars['ID']['input']; +}; + +export type OrderMutationsSetPipelineStageArgs = { + orderId: Scalars['ID']['input']; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type OrderMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateOrderInput; +}; + +export type OrderPipeline = { + __typename?: 'OrderPipeline'; + pipeline: Pipeline; + pipelineId: Scalars['ID']['output']; + stageId: Scalars['ID']['output']; +}; + +export type OrderQueries = { + __typename?: 'OrderQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type OrderQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type OrderQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + pipelineId?: InputMaybe; + pipelineStageId?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId?: InputMaybe; +}; + +export enum OrderSortField { + CreatedAt = 'createdAt', + UpdatedAt = 'updatedAt', +} + +export type OrdersReport = { + __typename?: 'OrdersReport'; + avg: Array>; + sum: Array>; + total: Scalars['Int']['output']; +}; + +export type OrdersReportAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type OrdersReportSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type OrdersReportTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type Owner = { + __typename?: 'Owner'; + companyName?: Maybe; + email?: Maybe; + firstName?: Maybe; + id: Scalars['ID']['output']; + lastName?: Maybe; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + endCursor: Scalars['String']['output']; + hasNextPage: Scalars['Boolean']['output']; + hasPreviousPage: Scalars['Boolean']['output']; + startCursor: Scalars['String']['output']; + totalNodes: Scalars['Int']['output']; +}; + +export type ParagraphCollectionComponentConfig = { + __typename?: 'ParagraphCollectionComponentConfig'; + multilingual?: Maybe>; +}; + +export type ParagraphCollectionComponentConfigInput = { + multilingual?: InputMaybe>; +}; + +export enum ParagraphCollectionComponentmultilingualProperties { + Body = 'body', + Images = 'images', + Title = 'title', + Videos = 'videos', +} + +export type ParagraphCollectionContent = { + __typename?: 'ParagraphCollectionContent'; + paragraphs?: Maybe>; +}; + +export type ParagraphCollectionContentInput = { + paragraphs: Array; +}; + +export type ParagraphContent = { + __typename?: 'ParagraphContent'; + body?: Maybe; + images?: Maybe>; + title?: Maybe; + videos?: Maybe>; +}; + +export type ParagraphContentInput = { + body?: InputMaybe; + images?: InputMaybe>; + title?: InputMaybe; + videos?: InputMaybe>; +}; + +export enum Parameter { + Currency = 'CURRENCY', + Date = 'DATE', + Product = 'PRODUCT', + Value = 'VALUE', +} + +export enum PathResolutionMethod { + Alias = 'alias', + Canonical = 'canonical', + History = 'history', + Shortcut = 'shortcut', +} + +export enum PathResolutionMethodArgs { + Alias = 'alias', + Any = 'any', + Canonical = 'canonical', + History = 'history', + Shortcut = 'shortcut', +} + +export type Paths = { + __typename?: 'Paths'; + aliases?: Maybe>; + canonical?: Maybe; + history?: Maybe>; + hreflangs?: Maybe>; + shortcuts?: Maybe>; +}; + +export type Payment = CashPayment | CustomPayment | KlarnaPayment | PaypalPayment | StripePayment; + +export type PaymentInput = { + cash?: InputMaybe; + custom?: InputMaybe; + klarna?: InputMaybe; + paypal?: InputMaybe; + provider: PaymentProvider; + stripe?: InputMaybe; +}; + +export enum PaymentProvider { + Cash = 'cash', + Custom = 'custom', + Klarna = 'klarna', + Paypal = 'paypal', + Stripe = 'stripe', +} + +export type PaymentType = { + provider: PaymentProvider; +}; + +export type PaypalPayment = PaymentType & { + __typename?: 'PaypalPayment'; + id?: Maybe; + invoiceId?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + provider: PaymentProvider; + subscriptionId?: Maybe; +}; + +export type PaypalPaymentInput = { + invoiceId?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + paypal?: InputMaybe; + subscriptionId?: InputMaybe; +}; + +export type PieceComponentConfig = { + __typename?: 'PieceComponentConfig'; + identifier: Scalars['String']['output']; + multilingual?: Maybe; +}; + +export type PieceContent = { + __typename?: 'PieceContent'; + components?: Maybe>; + identifier: Scalars['String']['output']; +}; + +export type PieceContentInput = { + components: Array; + identifier: Scalars['String']['input']; +}; + +export type Pipeline = { + __typename?: 'Pipeline'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + orders: OrderConnection; + stages?: Maybe>; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PipelineOrdersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; +}; + +export type PipelineConnection = { + __typename?: 'PipelineConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type PipelineConnectionEdge = { + __typename?: 'PipelineConnectionEdge'; + cursor: Scalars['String']['output']; + node: Pipeline; +}; + +export type PipelineMutations = { + __typename?: 'PipelineMutations'; + addStage: Pipeline; + create: Pipeline; + delete?: Maybe; + moveStage: Pipeline; + removeStage: Pipeline; + update: Pipeline; + updateStage: Pipeline; +}; + +export type PipelineMutationsAddStageArgs = { + input: CreatePipelineStageInput; + pipelineId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type PipelineMutationsCreateArgs = { + input: CreatePipelineInput; +}; + +export type PipelineMutationsDeleteArgs = { + force?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type PipelineMutationsMoveStageArgs = { + newPosition: Scalars['Int']['input']; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineMutationsRemoveStageArgs = { + force?: InputMaybe; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input?: InputMaybe; +}; + +export type PipelineMutationsUpdateStageArgs = { + input: UpdatePipelineStageInput; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineQueries = { + __typename?: 'PipelineQueries'; + get?: Maybe; + getMany: PipelineConnection; +}; + +export type PipelineQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type PipelineQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export enum PipelineSortField { + CreatedAt = 'createdAt', +} + +export type PipelineStage = { + __typename?: 'PipelineStage'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + orders: OrderConnection; + placeNewOrders: Scalars['Boolean']['output']; +}; + +export type PipelineStageOrdersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; +}; + +export type Preference = { + __typename?: 'Preference'; + enabled: Scalars['Boolean']['output']; + name: Scalars['String']['output']; +}; + +export type PreferenceInput = { + enabled?: InputMaybe; + experimental?: InputMaybe; + name: Scalars['String']['input']; +}; + +export type Preferences = { + __typename?: 'Preferences'; + experimental?: Maybe; +}; + +export type PreferencesInput = { + experimental?: InputMaybe; +}; + +export type PresignedUploadRequest = { + __typename?: 'PresignedUploadRequest'; + fields: Array; + lifetime: Scalars['Int']['output']; + maxSize: Scalars['Int']['output']; + url?: Maybe; +}; + +export type Price = { + __typename?: 'Price'; + currency: Scalars['String']['output']; + discounts?: Maybe>; + gross?: Maybe; + net?: Maybe; + tax?: Maybe; +}; + +export type PriceInput = { + currency: Scalars['String']['input']; + discounts?: InputMaybe>; + gross?: InputMaybe; + net?: InputMaybe; + tax?: InputMaybe; +}; + +export type PriceList = { + __typename?: 'PriceList'; + createdAt: Scalars['DateTime']['output']; + endDate?: Maybe; + identifier: Scalars['String']['output']; + modifierType: PriceListModifierType; + name: Scalars['String']['output']; + price?: Maybe; + priceVariants?: Maybe>; + selectedProductVariants: PriceListSelectedProductVariants; + startDate?: Maybe; + targetAudience: PriceListTargetAudience; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PriceListPriceArgs = { + identifier?: Scalars['String']['input']; +}; + +export type PriceListConnection = { + __typename?: 'PriceListConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type PriceListConnectionEdge = { + __typename?: 'PriceListConnectionEdge'; + cursor: Scalars['String']['output']; + node: PriceList; +}; + +export enum PriceListModifierType { + Absolute = 'ABSOLUTE', + Percentage = 'PERCENTAGE', + Relative = 'RELATIVE', +} + +export type PriceListMutations = { + __typename?: 'PriceListMutations'; + create: PriceList; + delete: Scalars['Int']['output']; + removeSelectedProductVariants: PriceList; + update: PriceList; + upsertSelectedProductVariants: PriceList; +}; + +export type PriceListMutationsCreateArgs = { + input: CreatePriceListInput; +}; + +export type PriceListMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListMutationsRemoveSelectedProductVariantsArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + variants: Array; +}; + +export type PriceListMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdatePriceListInput; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListMutationsUpsertSelectedProductVariantsArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + variants: Array; +}; + +export type PriceListPriceVariant = { + __typename?: 'PriceListPriceVariant'; + decimalPlaces?: Maybe; + identifier: Scalars['String']['output']; + modifier: Scalars['Float']['output']; +}; + +export type PriceListPriceVariantReferenceInput = { + decimalPlaces?: InputMaybe; + identifier: Scalars['String']['input']; + modifier: Scalars['Float']['input']; +}; + +export type PriceListProduct = { + __typename?: 'PriceListProduct'; + priceVariants?: Maybe>; + sku: Scalars['String']['output']; +}; + +export type PriceListProductPriceVariantReference = { + identifier: Scalars['String']['input']; + modifier?: InputMaybe; +}; + +export enum PriceListProductSelectionType { + AllSkus = 'ALL_SKUS', + SomeSkus = 'SOME_SKUS', +} + +export type PriceListQueries = { + __typename?: 'PriceListQueries'; + get?: Maybe; + getMany?: Maybe; + getProductVariants?: Maybe; +}; + +export type PriceListQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListQueriesGetProductVariantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + identifier: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type PriceListSelectedProductVariants = { + __typename?: 'PriceListSelectedProductVariants'; + type?: Maybe; +}; + +export type PriceListTargetAudience = { + __typename?: 'PriceListTargetAudience'; + marketIdentifiers?: Maybe>; + type: PriceListTargetAudienceType; +}; + +export enum PriceListTargetAudienceType { + Everyone = 'EVERYONE', + Some = 'SOME', +} + +export type PriceVariant = { + __typename?: 'PriceVariant'; + createdAt: Scalars['DateTime']['output']; + currency: Scalars['String']['output']; + identifier: Scalars['String']['output']; + name?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PriceVariantMutations = { + __typename?: 'PriceVariantMutations'; + create: PriceVariant; + delete: Scalars['Int']['output']; + update: PriceVariant; +}; + +export type PriceVariantMutationsCreateArgs = { + input: CreatePriceVariantInput; +}; + +export type PriceVariantMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdatePriceVariantInput; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantQueries = { + __typename?: 'PriceVariantQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type PriceVariantQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantReferenceInput = { + identifier: Scalars['String']['input']; + price?: InputMaybe; +}; + +export type Product = Item & { + __typename?: 'Product'; + components?: Maybe>; + createdAt?: Maybe; + defaultVariant: ProductVariant; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + /** @deprecated option removed */ + isSubscriptionOnly?: Maybe; + /** @deprecated option removed */ + isVirtual?: Maybe; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + variant?: Maybe; + variants: Array; + vatType?: Maybe; + vatTypeId?: Maybe; + version?: Maybe; +}; + +export type ProductHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type ProductVariantArgs = { + sku: Scalars['String']['input']; +}; + +export type ProductMutations = { + __typename?: 'ProductMutations'; + addVariant: Product; + create: Product; + delete: Scalars['Int']['output']; + deleteVariant: Scalars['Int']['output']; + publish: PublishInfo; + setDefaultVariant: Product; + unpublish?: Maybe; + update: Product; + updateStock: ProductStockLocation; + updateVariant: Product; + updateVariantComponent: Product; +}; + +export type ProductMutationsAddVariantArgs = { + disableComponentValidation?: InputMaybe; + input: CreateProductVariantInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; +}; + +export type ProductMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateProductInput; + language: Scalars['String']['input']; +}; + +export type ProductMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductMutationsDeleteVariantArgs = { + sku: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ProductMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ProductMutationsSetDefaultVariantArgs = { + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku?: InputMaybe; +}; + +export type ProductMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateProductInput; + language: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateStockArgs = { + productId: Scalars['ID']['input']; + sku: Scalars['String']['input']; + stock: Scalars['Int']['input']; + stockLocationIdentifier?: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateVariantArgs = { + disableComponentValidation?: InputMaybe; + input: UpdateSingleProductVariantInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku?: InputMaybe; +}; + +export type ProductMutationsUpdateVariantComponentArgs = { + disableValidation?: InputMaybe; + input: ComponentInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku: Scalars['String']['input']; +}; + +export type ProductPriceVariant = { + __typename?: 'ProductPriceVariant'; + currency?: Maybe; + identifier: Scalars['String']['output']; + name?: Maybe; + price?: Maybe; + priceList?: Maybe; + priceLists?: Maybe>; +}; + +export type ProductPriceVariantPriceListArgs = { + identifier: Scalars['String']['input']; +}; + +export type ProductQueries = { + __typename?: 'ProductQueries'; + get?: Maybe; + getVariants?: Maybe>; +}; + +export type ProductQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ProductQueriesGetVariantsArgs = { + externalReferences?: InputMaybe>; + language: Scalars['String']['input']; + skus?: InputMaybe>; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type ProductStockLocation = { + __typename?: 'ProductStockLocation'; + identifier: Scalars['String']['output']; + meta?: Maybe>; + name: Scalars['String']['output']; + settings?: Maybe; + stock?: Maybe; +}; + +export type ProductSubscription = { + __typename?: 'ProductSubscription'; + createdAt: Scalars['DateTime']['output']; + customer?: Maybe; + customerIdentifier: Scalars['String']['output']; + id: Scalars['ID']['output']; + initial?: Maybe; + item: ProductSubscriptionItem; + payment?: Maybe; + recurring?: Maybe; + status: ProductSubscriptionStatus; + subscriptionPlan?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt: Scalars['DateTime']['output']; + usage?: Maybe>; +}; + +export type ProductSubscriptionUsageArgs = { + end: Scalars['DateTime']['input']; + start: Scalars['DateTime']['input']; +}; + +export type ProductSubscriptionConnection = { + __typename?: 'ProductSubscriptionConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ProductSubscriptionConnectionEdge = { + __typename?: 'ProductSubscriptionConnectionEdge'; + cursor: Scalars['String']['output']; + node: ProductSubscription; +}; + +export type ProductSubscriptionHistoryEvent = { + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventCancellation = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventCancellation'; + activeUntil?: Maybe; + cancelledAt: Scalars['DateTime']['output']; + deactivated: Scalars['Boolean']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventRenewal = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventRenewal'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewedAt: Scalars['DateTime']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventRenewalDueBroadcast = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventRenewalDueBroadcast'; + broadcastAt: Scalars['DateTime']['output']; + renewAt: Scalars['DateTime']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export enum ProductSubscriptionHistoryEventType { + Cancellation = 'CANCELLATION', + Renewal = 'RENEWAL', + RenewalDueBroadcast = 'RENEWAL_DUE_BROADCAST', +} + +export type ProductSubscriptionItem = { + __typename?: 'ProductSubscriptionItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + quantity: Scalars['NonNegativeInt']['output']; + sku: Scalars['String']['output']; +}; + +export type ProductSubscriptionMutations = { + __typename?: 'ProductSubscriptionMutations'; + cancel: ProductSubscription; + create: ProductSubscription; + delete?: Maybe; + renew: ProductSubscription; + trackUsage: SubscriptionContractUsageTrackedEvent; + update: ProductSubscription; +}; + +export type ProductSubscriptionMutationsCancelArgs = { + deactivate?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsCreateArgs = { + input: CreateProductSubscriptionInput; +}; + +export type ProductSubscriptionMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsRenewArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsTrackUsageArgs = { + id: Scalars['ID']['input']; + input: TrackUsageInput; +}; + +export type ProductSubscriptionMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateProductSubscriptionInput; +}; + +export type ProductSubscriptionPhase = { + __typename?: 'ProductSubscriptionPhase'; + currency: Scalars['String']['output']; + period: Scalars['Int']['output']; + price: Scalars['Float']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type ProductSubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periodId: Scalars['ID']['input']; +}; + +export type ProductSubscriptionQueries = { + __typename?: 'ProductSubscriptionQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type ProductSubscriptionQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export enum ProductSubscriptionSortField { + UpdatedAt = 'updatedAt', +} + +export type ProductSubscriptionStatus = { + __typename?: 'ProductSubscriptionStatus'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewAt?: Maybe; +}; + +export type ProductSubscriptionUsage = { + __typename?: 'ProductSubscriptionUsage'; + meteredVariableId: Scalars['ID']['output']; + quantity?: Maybe; +}; + +export type ProductVariant = { + __typename?: 'ProductVariant'; + attributes?: Maybe>; + components?: Maybe>; + externalReference?: Maybe; + /** @deprecated Product variant IDs have been deprecated and replaced by SKUs. */ + id: Scalars['ID']['output']; + images?: Maybe>; + isDefault: Scalars['Boolean']['output']; + name?: Maybe; + price?: Maybe; + priceVariants?: Maybe>; + product: Product; + productId: Scalars['ID']['output']; + sku: Scalars['String']['output']; + stock?: Maybe; + stockLocations?: Maybe>; + subscriptionPlans?: Maybe>; + videos?: Maybe>; +}; + +export type ProductVariantPriceArgs = { + identifier?: Scalars['String']['input']; +}; + +export type ProductVariantStockArgs = { + identifier?: Scalars['String']['input']; +}; + +export type ProductVariantAttribute = { + __typename?: 'ProductVariantAttribute'; + attribute: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type ProductVariantAttributeInput = { + attribute: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type ProductVariantConnection = { + __typename?: 'ProductVariantConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ProductVariantConnectionEdge = { + __typename?: 'ProductVariantConnectionEdge'; + cursor: Scalars['String']['output']; + node: ProductVariant; +}; + +export type ProductVariantPriceList = { + __typename?: 'ProductVariantPriceList'; + endDate?: Maybe; + identifier: Scalars['String']['output']; + modifier: Scalars['Float']['output']; + modifierType: PriceListModifierType; + price: Scalars['Float']['output']; + startDate?: Maybe; +}; + +export type ProductVariantSubscriptionMeteredVariable = { + __typename?: 'ProductVariantSubscriptionMeteredVariable'; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + tierType: TierType; + tiers: Array; +}; + +export type ProductVariantSubscriptionPlan = { + __typename?: 'ProductVariantSubscriptionPlan'; + identifier: Scalars['String']['output']; + name?: Maybe; + periods: Array; + tenantId: Scalars['ID']['output']; +}; + +export type ProductVariantSubscriptionPlanPeriod = { + __typename?: 'ProductVariantSubscriptionPlanPeriod'; + id: Scalars['ID']['output']; + initial?: Maybe; + name: Scalars['String']['output']; + recurring?: Maybe; +}; + +export type ProductVariantSubscriptionPlanPricing = { + __typename?: 'ProductVariantSubscriptionPlanPricing'; + meteredVariables?: Maybe>; + period: Scalars['Int']['output']; + price?: Maybe; + priceVariants?: Maybe>; + unit: SubscriptionPeriodUnit; +}; + +export type ProductVariantSubscriptionPlanPricingPriceArgs = { + identifier?: InputMaybe; +}; + +export type ProductVariantSubscriptionPlanTier = { + __typename?: 'ProductVariantSubscriptionPlanTier'; + price?: Maybe; + priceVariants?: Maybe>; + threshold: Scalars['Int']['output']; +}; + +export type ProductVariantSubscriptionPlanTierPriceArgs = { + identifier?: InputMaybe; +}; + +export type PropertiesTableComponentConfig = { + __typename?: 'PropertiesTableComponentConfig'; + multilingual?: Maybe; + sections: Array; +}; + +export type PropertiesTableComponentConfigInput = { + multilingual?: InputMaybe; + sections: Array; +}; + +export type PropertiesTableComponentConfigSection = { + __typename?: 'PropertiesTableComponentConfigSection'; + keys: Array; + title?: Maybe; +}; + +export type PropertiesTableComponentConfigSectionInput = { + keys: Array; + title?: InputMaybe; +}; + +export type PropertiesTableComponentSection = { + __typename?: 'PropertiesTableComponentSection'; + properties?: Maybe>; + title?: Maybe; +}; + +export type PropertiesTableComponentSectionInput = { + properties?: InputMaybe>; + title?: InputMaybe; +}; + +export type PropertiesTableContent = { + __typename?: 'PropertiesTableContent'; + sections?: Maybe>; +}; + +export type PropertiesTableContentInput = { + sections?: InputMaybe>; +}; + +export type PublishInfo = { + __typename?: 'PublishInfo'; + id: Scalars['ID']['output']; + language?: Maybe; + versionId?: Maybe; +}; + +export type Query = { + __typename?: 'Query'; + app: AppQueries; + archive: ArchiveQueries; + currencySummary?: Maybe; + customer: CustomerQueries; + document: DocumentQueries; + file: FileQueries; + folder: FolderQueries; + grid: GridQueries; + image: ImageQueries; + item: ItemQueries; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + market: MarketQueries; + me?: Maybe; + order: OrderQueries; + pipeline: PipelineQueries; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + priceList: PriceListQueries; + priceVariant: PriceVariantQueries; + product: ProductQueries; + /** @deprecated productSubscription has been deprecated in favor of subscriptionContract */ + productSubscription: ProductSubscriptionQueries; + report?: Maybe; + search?: Maybe; + shape: ShapeQueries; + stockLocation: StockLocationQueries; + subscriptionContract: SubscriptionContractQueries; + subscriptionContractEvent?: Maybe; + subscriptionPlan: SubscriptionPlanQueries; + tenant: TenantQueries; + topic: TopicQueries; + tree: TreeQueries; + user: UserQueries; + version?: Maybe; + webhook: WebhookQueries; +}; + +export type RegenerateSecretsInput = { + signatureSecret?: InputMaybe; + staticAuthToken?: InputMaybe; +}; + +export type ReportMetric = { + __typename?: 'ReportMetric'; + currency?: Maybe; + date?: Maybe; + name?: Maybe; + product?: Maybe; + sku?: Maybe; + value: Scalars['Float']['output']; +}; + +export type ReportMetricProductArgs = { + language: Scalars['String']['input']; +}; + +export type RichTextComponentConfig = { + __typename?: 'RichTextComponentConfig'; + multilingual?: Maybe; +}; + +export type RichTextComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type RichTextContent = { + __typename?: 'RichTextContent'; + html?: Maybe>; + json?: Maybe>>; + plainText?: Maybe>; +}; + +export type RichTextContentInput = { + html?: InputMaybe>; + json?: InputMaybe>; +}; + +export type SalesReport = IObjectReports & { + __typename?: 'SalesReport'; + avg: Array>; + sum: Array>; + total: Scalars['Float']['output']; +}; + +export type SalesReportAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type SalesReportSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type SalesReportTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type SearchQueries = { + __typename?: 'SearchQueries'; + suggest?: Maybe; + topics?: Maybe; +}; + +export type SearchQueriesSuggestArgs = { + after?: InputMaybe; + first?: InputMaybe; + language: Scalars['String']['input']; + searchTerm?: InputMaybe; + tenantId: Scalars['ID']['input']; + types?: InputMaybe>; +}; + +export type SearchQueriesTopicsArgs = { + language: Scalars['String']['input']; + searchTerm?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type SelectionComponentConfig = { + __typename?: 'SelectionComponentConfig'; + max?: Maybe; + min?: Maybe; + multilingual?: Maybe; + options: Array; +}; + +export type SelectionComponentConfigInput = { + max?: InputMaybe; + min?: InputMaybe; + multilingual?: InputMaybe; + options: Array; +}; + +export type SelectionComponentContentInput = { + keys: Array; +}; + +export type SelectionComponentOptionConfig = { + __typename?: 'SelectionComponentOptionConfig'; + isPreselected?: Maybe; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type SelectionComponentOptionConfigInput = { + isPreselected?: InputMaybe; + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type SelectionContent = { + __typename?: 'SelectionContent'; + options: Array; +}; + +export type Shape = { + __typename?: 'Shape'; + components?: Maybe>; + createdAt: Scalars['DateTime']['output']; + /** @deprecated Shape IDs have been deprecated in favor of human readable identifiers. Querying for them will be removed in a future release. */ + id?: Maybe; + identifier: Scalars['String']['output']; + itemCount: Scalars['Int']['output']; + items?: Maybe>; + meta?: Maybe>; + metaProperty?: Maybe; + name: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: ShapeType; + updatedAt?: Maybe; + variantComponents?: Maybe>; +}; + +export type ShapeItemsArgs = { + language: Scalars['String']['input']; +}; + +export type ShapeMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type ShapeComponent = { + __typename?: 'ShapeComponent'; + config?: Maybe; + description?: Maybe; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + type: ComponentType; +}; + +export type ShapeComponentInput = { + config?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + name: Scalars['String']['input']; + type: ComponentType; +}; + +export type ShapeMetrics = IObjectMetrics & { + __typename?: 'ShapeMetrics'; + count: Scalars['Int']['output']; +}; + +export type ShapeMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type ShapeMutations = { + __typename?: 'ShapeMutations'; + create: Shape; + delete: Scalars['Int']['output']; + /** @deprecated Migrating legacy shape ids will be removed in a future release. */ + migrateLegacyId: Shape; + update: Shape; +}; + +export type ShapeMutationsCreateArgs = { + input: CreateShapeInput; +}; + +export type ShapeMutationsDeleteArgs = { + identifier?: InputMaybe; + tenantId?: InputMaybe; +}; + +export type ShapeMutationsMigrateLegacyIdArgs = { + id: Scalars['String']['input']; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ShapeMutationsUpdateArgs = { + identifier?: InputMaybe; + input: UpdateShapeInput; + tenantId?: InputMaybe; +}; + +export type ShapeQueries = { + __typename?: 'ShapeQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type ShapeQueriesGetArgs = { + identifier?: InputMaybe; + tenantId?: InputMaybe; +}; + +export type ShapeQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export enum ShapeType { + Document = 'document', + Folder = 'folder', + Product = 'product', +} + +export type Shortcut = { + __typename?: 'Shortcut'; + parent?: Maybe; + parentId?: Maybe; + path: Scalars['String']['output']; + position?: Maybe; +}; + +export type SingleLineComponentConfig = { + __typename?: 'SingleLineComponentConfig'; + multilingual?: Maybe; +}; + +export type SingleLineComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type SingleLineContent = { + __typename?: 'SingleLineContent'; + text?: Maybe; +}; + +export type SingleLineContentInput = { + text?: InputMaybe; +}; + +export enum SortDirection { + Asc = 'asc', + Desc = 'desc', +} + +export type StockLocation = { + __typename?: 'StockLocation'; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + settings: StockLocationSettings; + tenant: Tenant; + tenantId: Scalars['ID']['output']; +}; + +export type StockLocationMutations = { + __typename?: 'StockLocationMutations'; + create: StockLocation; + delete: Scalars['Int']['output']; + update: StockLocation; +}; + +export type StockLocationMutationsCreateArgs = { + input: CreateStockLocationInput; +}; + +export type StockLocationMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateStockLocationInput; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationQueries = { + __typename?: 'StockLocationQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type StockLocationQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationReferenceInput = { + identifier: Scalars['String']['input']; + meta?: InputMaybe>; + stock?: InputMaybe; +}; + +export type StockLocationSettings = { + __typename?: 'StockLocationSettings'; + minimum?: Maybe; + unlimited: Scalars['Boolean']['output']; +}; + +export type StockLocationSettingsInput = { + minimum?: InputMaybe; +}; + +export type StripePayment = PaymentType & { + __typename?: 'StripePayment'; + customerId?: Maybe; + id?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + paymentIntentId?: Maybe; + paymentMethod?: Maybe; + paymentMethodId?: Maybe; + provider: PaymentProvider; + subscriptionId?: Maybe; +}; + +export type StripePaymentInput = { + customerId?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + paymentIntentId?: InputMaybe; + paymentMethod?: InputMaybe; + paymentMethodId?: InputMaybe; + stripe?: InputMaybe; + subscriptionId?: InputMaybe; +}; + +export type SubscriptionContract = { + __typename?: 'SubscriptionContract'; + addresses?: Maybe>; + createdAt: Scalars['DateTime']['output']; + customer?: Maybe; + customerIdentifier: Scalars['String']['output']; + id: Scalars['ID']['output']; + initial?: Maybe; + item: SubscriptionContractItem; + payment?: Maybe; + recurring?: Maybe; + status: SubscriptionContractStatus; + subscriptionPlan?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt: Scalars['DateTime']['output']; + usage?: Maybe>; +}; + +export type SubscriptionContractUsageArgs = { + end: Scalars['DateTime']['input']; + start: Scalars['DateTime']['input']; +}; + +export type SubscriptionContractAddress = { + __typename?: 'SubscriptionContractAddress'; + city?: Maybe; + country?: Maybe; + email?: Maybe; + firstName?: Maybe; + id?: Maybe; + lastName?: Maybe; + middleName?: Maybe; + phone?: Maybe; + postalCode?: Maybe; + state?: Maybe; + street?: Maybe; + street2?: Maybe; + streetNumber?: Maybe; + type: AddressType; +}; + +export type SubscriptionContractCancelledEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractCancelledEvent'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractConnection = { + __typename?: 'SubscriptionContractConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SubscriptionContractConnectionEdge = { + __typename?: 'SubscriptionContractConnectionEdge'; + cursor: Scalars['String']['output']; + node: SubscriptionContract; +}; + +export type SubscriptionContractEvent = { + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractEventConnection = { + __typename?: 'SubscriptionContractEventConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SubscriptionContractEventConnectionEdge = { + __typename?: 'SubscriptionContractEventConnectionEdge'; + cursor: Scalars['String']['output']; + node: SubscriptionContractEvent; +}; + +export type SubscriptionContractEventQueries = { + __typename?: 'SubscriptionContractEventQueries'; + getMany?: Maybe; +}; + +export type SubscriptionContractEventQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + eventTypes?: InputMaybe>; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + subscriptionContractId: Scalars['ID']['input']; + tenantId: Scalars['ID']['input']; +}; + +export enum SubscriptionContractEventSortField { + Id = '_id', +} + +export enum SubscriptionContractEventType { + Cancelled = 'cancelled', + RenewalDueBroadcast = 'renewalDueBroadcast', + Renewed = 'renewed', + UsageTracked = 'usageTracked', +} + +export type SubscriptionContractItem = { + __typename?: 'SubscriptionContractItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + sku: Scalars['String']['output']; +}; + +export type SubscriptionContractMeteredVariableReference = { + __typename?: 'SubscriptionContractMeteredVariableReference'; + id: Scalars['ID']['output']; + tierType?: Maybe; + tiers: Array; +}; + +export type SubscriptionContractMeteredVariableTierReference = { + __typename?: 'SubscriptionContractMeteredVariableTierReference'; + currency: Scalars['String']['output']; + price?: Maybe; + threshold: Scalars['Int']['output']; +}; + +export type SubscriptionContractMutations = { + __typename?: 'SubscriptionContractMutations'; + cancel: SubscriptionContract; + create: SubscriptionContract; + delete?: Maybe; + renew: SubscriptionContract; + trackUsage: SubscriptionContractUsageTrackedEvent; + update: SubscriptionContract; +}; + +export type SubscriptionContractMutationsCancelArgs = { + deactivate?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsCreateArgs = { + input: CreateSubscriptionContractInput; +}; + +export type SubscriptionContractMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsRenewArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsTrackUsageArgs = { + id: Scalars['ID']['input']; + input: TrackUsageInput; +}; + +export type SubscriptionContractMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateSubscriptionContractInput; +}; + +export type SubscriptionContractPhase = { + __typename?: 'SubscriptionContractPhase'; + currency: Scalars['String']['output']; + meteredVariables?: Maybe>; + period: Scalars['Int']['output']; + price: Scalars['Float']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionContractQueries = { + __typename?: 'SubscriptionContractQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type SubscriptionContractQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionContractRenewalDueBroadcastEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractRenewalDueBroadcastEvent'; + createdAt: Scalars['DateTime']['output']; + data: SubscriptionContractRenewalDueBroadcastEventData; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractRenewalDueBroadcastEventData = { + __typename?: 'SubscriptionContractRenewalDueBroadcastEventData'; + broadcastAt: Scalars['DateTime']['output']; + renewAt: Scalars['DateTime']['output']; +}; + +export type SubscriptionContractRenewedEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractRenewedEvent'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export enum SubscriptionContractSortField { + Id = '_id', + UpdatedAt = 'updatedAt', +} + +export type SubscriptionContractStatus = { + __typename?: 'SubscriptionContractStatus'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewAt?: Maybe; +}; + +export type SubscriptionContractUsage = { + __typename?: 'SubscriptionContractUsage'; + meteredVariableId: Scalars['ID']['output']; + quantity?: Maybe; +}; + +export type SubscriptionContractUsageTrackedData = { + __typename?: 'SubscriptionContractUsageTrackedData'; + description?: Maybe; + idempotencyKey?: Maybe; + meteredVariableId: Scalars['ID']['output']; + quantity: Scalars['Float']['output']; +}; + +export type SubscriptionContractUsageTrackedEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractUsageTrackedEvent'; + createdAt: Scalars['DateTime']['output']; + data?: Maybe; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export enum SubscriptionPeriodUnit { + Day = 'day', + Month = 'month', + Week = 'week', + Year = 'year', +} + +export type SubscriptionPlan = { + __typename?: 'SubscriptionPlan'; + createdAt: Scalars['DateTime']['output']; + identifier: Scalars['String']['output']; + meteredVariables?: Maybe>; + name?: Maybe; + periods?: Maybe>; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type SubscriptionPlanMeteredVariable = { + __typename?: 'SubscriptionPlanMeteredVariable'; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + name?: Maybe; + unit: Scalars['String']['output']; +}; + +export type SubscriptionPlanMeteredVariableInput = { + id?: InputMaybe; + identifier: Scalars['String']['input']; + name?: InputMaybe; + unit: Scalars['String']['input']; +}; + +export type SubscriptionPlanMeteredVariableReferenceInput = { + id: Scalars['ID']['input']; + tierType?: InputMaybe; + tiers?: InputMaybe>; +}; + +export type SubscriptionPlanMeteredVariableTierReferenceInput = { + price?: InputMaybe; + priceVariants?: InputMaybe>; + threshold: Scalars['Int']['input']; +}; + +export type SubscriptionPlanMutations = { + __typename?: 'SubscriptionPlanMutations'; + create: SubscriptionPlan; + delete: Scalars['Int']['output']; + update: SubscriptionPlan; +}; + +export type SubscriptionPlanMutationsCreateArgs = { + input: CreateSubscriptionPlanInput; +}; + +export type SubscriptionPlanMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateSubscriptionPlanInput; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanPeriod = { + __typename?: 'SubscriptionPlanPeriod'; + id: Scalars['ID']['output']; + initial?: Maybe; + name: Scalars['String']['output']; + recurring: SubscriptionPlanPhase; +}; + +export type SubscriptionPlanPeriodInput = { + id?: InputMaybe; + initial?: InputMaybe; + name: Scalars['String']['input']; + recurring: SubscriptionPlanPhaseInput; +}; + +export type SubscriptionPlanPeriodReferenceInput = { + id: Scalars['ID']['input']; + initial?: InputMaybe; + recurring: SubscriptionPlanPriceInput; +}; + +export type SubscriptionPlanPhase = { + __typename?: 'SubscriptionPlanPhase'; + period: Scalars['Int']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionPlanPhaseInput = { + period: Scalars['Int']['input']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionPlanPriceInput = { + meteredVariables?: InputMaybe>; + price?: InputMaybe; + priceVariants?: InputMaybe>; +}; + +export type SubscriptionPlanQueries = { + __typename?: 'SubscriptionPlanQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type SubscriptionPlanQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periods: Array; +}; + +export type SuggestSearchAggregations = { + __typename?: 'SuggestSearchAggregations'; + totalResults: Scalars['Int']['output']; + typesAggregation: Array; +}; + +export type SuggestSearchConnection = { + __typename?: 'SuggestSearchConnection'; + aggregations: SuggestSearchAggregations; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SuggestSearchConnectionEdge = { + __typename?: 'SuggestSearchConnectionEdge'; + cursor: Scalars['String']['output']; + node: SuggestSearchResult; +}; + +export enum SuggestSearchItemType { + Document = 'DOCUMENT', + Folder = 'FOLDER', + Grid = 'GRID', + Pipeline = 'PIPELINE', + Product = 'PRODUCT', + Shape = 'SHAPE', + Topic = 'TOPIC', + Webhook = 'WEBHOOK', +} + +export type SuggestSearchResult = { + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export type SuggestSearchTypesAggregation = { + __typename?: 'SuggestSearchTypesAggregation'; + count: Scalars['Int']['output']; + type: Scalars['String']['output']; +}; + +export type Tax = { + __typename?: 'Tax'; + name?: Maybe; + percent?: Maybe; +}; + +export type TaxInput = { + name?: InputMaybe; + percent?: InputMaybe; +}; + +export type Tenant = { + __typename?: 'Tenant'; + authenticationMethod?: Maybe; + availableLanguages?: Maybe>; + copiedFrom?: Maybe; + createdAt: Scalars['DateTime']['output']; + defaults: TenantDefaults; + grids?: Maybe>; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + isActive: Scalars['Boolean']['output']; + isTrial: Scalars['Boolean']['output']; + logo?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; + metrics?: Maybe; + name: Scalars['String']['output']; + preferences?: Maybe; + rootItemId: Scalars['ID']['output']; + shapes?: Maybe>; + /** Empty string for non-admin users. */ + signatureSecret: Scalars['String']['output']; + /** Empty string for non-admin users. */ + staticAuthToken?: Maybe; + topics?: Maybe>; + tree?: Maybe>; + updatedAt?: Maybe; + users?: Maybe>; + vatTypes?: Maybe>; + webhooks?: Maybe>; +}; + +export type TenantGridsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type TenantMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type TenantTopicsArgs = { + language: Scalars['String']['input']; +}; + +export type TenantTreeArgs = { + versionLabel?: InputMaybe; +}; + +export type TenantWebhooksArgs = { + concern?: InputMaybe; + event?: InputMaybe; +}; + +export type TenantAuthenticationMethod = { + __typename?: 'TenantAuthenticationMethod'; + catalogue?: Maybe; + search?: Maybe; +}; + +export type TenantAuthenticationMethodInput = { + catalogue?: InputMaybe; + search?: InputMaybe; +}; + +export enum TenantCopyExcludeableTypes { + Assets = 'assets', + Customers = 'customers', + Orders = 'orders', + SubscriptionContracts = 'subscriptionContracts', + Users = 'users', + Webhooks = 'webhooks', +} + +export type TenantCopySource = { + __typename?: 'TenantCopySource'; + date: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; +}; + +export type TenantDefaults = { + __typename?: 'TenantDefaults'; + currency: Scalars['String']['output']; + language: Scalars['String']['output']; +}; + +export type TenantDefaultsInput = { + currency?: InputMaybe; + language?: InputMaybe; +}; + +export type TenantFrontend = { + __typename?: 'TenantFrontend'; + /** @deprecated authentication property has been deprecated */ + authentication?: Maybe; + name: Scalars['String']['output']; + /** @deprecated responsive property has been deprecated */ + responsive?: Maybe; + url: Scalars['String']['output']; +}; + +export type TenantFrontendAuthentication = { + __typename?: 'TenantFrontendAuthentication'; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type TenantFrontendAuthenticationInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type TenantFrontendInput = { + name: Scalars['String']['input']; + url: Scalars['String']['input']; +}; + +export type TenantMetrics = { + __typename?: 'TenantMetrics'; + apiCalls: ApiCallMetrics; + bandwidth: BandwidthUsageMetrics; + items: ItemMetrics; + orders: OrderMetrics; + shapes: ShapeMetrics; + users: UserMetrics; + webhooks: WebhookMetrics; +}; + +export type TenantMutations = { + __typename?: 'TenantMutations'; + addUsers: Array; + create: Tenant; + createCopyTask: BulkTaskTenantCopyInfo; + delete: Scalars['Int']['output']; + regenerateSecrets: Tenant; + /** @deprecated Replaced by regenerateSecrets */ + regenerateStaticAuthToken: Tenant; + removeUsers?: Maybe>; + setAuthenticationMethod: Tenant; + setPreferences: TenantPreferences; + update: Tenant; +}; + +export type TenantMutationsAddUsersArgs = { + roles: Array; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsCreateArgs = { + input: CreateTenantInput; +}; + +export type TenantMutationsCreateCopyTaskArgs = { + desiredIdentifier: Scalars['String']['input']; + desiredName?: InputMaybe; + exclude?: InputMaybe>; + overwrite?: InputMaybe; + regenerateSecrets?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type TenantMutationsRegenerateSecretsArgs = { + input?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsRegenerateStaticAuthTokenArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsRemoveUsersArgs = { + tenantId: Scalars['ID']['input']; + userIds: Array; +}; + +export type TenantMutationsSetAuthenticationMethodArgs = { + input?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsSetPreferencesArgs = { + input: TenantPreferencesInput; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateTenantInput; +}; + +export type TenantPreferences = { + __typename?: 'TenantPreferences'; + frontends?: Maybe>>; +}; + +export type TenantPreferencesInput = { + frontends?: InputMaybe>; +}; + +export type TenantQueries = { + __typename?: 'TenantQueries'; + get?: Maybe; + getMany?: Maybe>; + getRootTopics?: Maybe>>; + suggestIdentifier: IdentifierSuggestion; +}; + +export type TenantQueriesGetArgs = { + id?: InputMaybe; + identifier?: InputMaybe; +}; + +export type TenantQueriesGetManyArgs = { + identifier?: InputMaybe; +}; + +export type TenantQueriesGetRootTopicsArgs = { + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TenantQueriesSuggestIdentifierArgs = { + desired: Scalars['String']['input']; +}; + +export type TenantReports = { + __typename?: 'TenantReports'; + orders: OrdersReport; + sales: SalesReport; +}; + +export type TenantReportsOrdersArgs = { + currency: Scalars['String']['input']; + end?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantReportsSalesArgs = { + currency: Scalars['String']['input']; + end?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantRoleInput = { + role: UserRole; + tenantId: Scalars['ID']['input']; +}; + +export enum TierType { + Graduated = 'graduated', + Volume = 'volume', +} + +export type Topic = { + __typename?: 'Topic'; + ancestors?: Maybe>; + childCount: Scalars['Int']['output']; + children?: Maybe>; + createdAt: Scalars['DateTime']['output']; + descendants?: Maybe>; + id: Scalars['ID']['output']; + items?: Maybe>; + language?: Maybe; + name?: Maybe; + parent?: Maybe; + parentId?: Maybe; + path: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type TopicConnection = { + __typename?: 'TopicConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type TopicConnectionEdge = { + __typename?: 'TopicConnectionEdge'; + cursor: Scalars['String']['output']; + node: Topic; +}; + +export type TopicImagesModified = { + __typename?: 'TopicImagesModified'; + modified?: Maybe; +}; + +export type TopicItemsModified = { + __typename?: 'TopicItemsModified'; + modified?: Maybe; +}; + +export type TopicMutations = { + __typename?: 'TopicMutations'; + addImages: TopicImagesModified; + addItems: TopicItemsModified; + bulkCreate: Array; + create: Topic; + delete: Scalars['Int']['output']; + removeImages: TopicImagesModified; + removeItems: TopicItemsModified; + update: Topic; +}; + +export type TopicMutationsAddImagesArgs = { + imageKeys: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsAddItemsArgs = { + itemIds: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsBulkCreateArgs = { + input: Array; + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TopicMutationsCreateArgs = { + input: CreateTopicInput; + language: Scalars['String']['input']; +}; + +export type TopicMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type TopicMutationsRemoveImagesArgs = { + imageKeys: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsRemoveItemsArgs = { + itemIds: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateTopicInput; + language: Scalars['String']['input']; +}; + +export type TopicQueries = { + __typename?: 'TopicQueries'; + /** Returns a specific topic. Topics can be queried either by ID or by path. */ + get?: Maybe; + getRootTopics?: Maybe>>; +}; + +export type TopicQueriesGetArgs = { + id?: InputMaybe; + language: Scalars['String']['input']; + path?: InputMaybe; +}; + +export type TopicQueriesGetRootTopicsArgs = { + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TopicSearchAggregations = { + __typename?: 'TopicSearchAggregations'; + totalResults: Scalars['Int']['output']; +}; + +export type TopicSearchConnection = { + __typename?: 'TopicSearchConnection'; + aggregations: TopicSearchAggregations; + edges?: Maybe>; +}; + +export type TopicSearchConnectionEdge = { + __typename?: 'TopicSearchConnectionEdge'; + node: TopicSearchResult; +}; + +export type TopicSearchResult = { + __typename?: 'TopicSearchResult'; + display: Scalars['String']['output']; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; +}; + +export type TrackUsageInput = { + description?: InputMaybe; + idempotencyKey?: InputMaybe; + meteredVariableId: Scalars['ID']['input']; + quantity: Scalars['Float']['input']; +}; + +export type TreeMutations = { + __typename?: 'TreeMutations'; + createNode: TreeNode; + deleteNode: Scalars['Int']['output']; + moveNode: TreeNode; +}; + +export type TreeMutationsCreateNodeArgs = { + input: FullTreeNodeInput; +}; + +export type TreeMutationsDeleteNodeArgs = { + itemId: Scalars['ID']['input']; +}; + +export type TreeMutationsMoveNodeArgs = { + input: TreeNodeInput; + itemId: Scalars['ID']['input']; +}; + +export type TreeNode = { + __typename?: 'TreeNode'; + aliases?: Maybe>; + ancestors?: Maybe>; + childCount?: Maybe; + children?: Maybe>; + history?: Maybe>; + identifiers?: Maybe>; + item?: Maybe; + itemId: Scalars['ID']['output']; + language?: Maybe; + parent?: Maybe; + parentId?: Maybe; + path?: Maybe; + pathResolutionMethod?: Maybe; + position?: Maybe; + shortcuts?: Maybe>; + siblings?: Maybe>; + versionLabel: VersionLabel; +}; + +export type TreeNodeItemArgs = { + language?: InputMaybe; +}; + +export type TreeNodePathArgs = { + language?: InputMaybe; +}; + +export type TreeNodeIdentifier = { + __typename?: 'TreeNodeIdentifier'; + identifier: Scalars['String']['output']; + language: Scalars['String']['output']; +}; + +export type TreeNodeIdentifierInput = { + identifier: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type TreeNodeInput = { + parentId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type TreeQueries = { + __typename?: 'TreeQueries'; + getNode?: Maybe; +}; + +export type TreeQueriesGetNodeArgs = { + itemId: Scalars['ID']['input']; + language?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type UpdateAppInput = { + baseUrl?: InputMaybe; + name?: InputMaybe; +}; + +export type UpdateCustomerAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type?: InputMaybe; +}; + +export type UpdateCustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + email?: InputMaybe; + externalReferences?: InputMaybe>; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + taxNumber?: InputMaybe; +}; + +export type UpdateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type UpdateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type UpdateGridInput = { + meta?: InputMaybe>; + name?: InputMaybe; + rows?: InputMaybe>; +}; + +export type UpdateImageInput = { + altText?: InputMaybe; + caption?: InputMaybe; + focalPoint?: InputMaybe; + meta?: InputMaybe>; + showcase?: InputMaybe>; +}; + +export type UpdateLanguageInput = { + name: Scalars['String']['input']; +}; + +export type UpdateMarketInput = { + customerIdentifiers?: InputMaybe>; + name?: InputMaybe; +}; + +export type UpdateOrderInput = { + additionalInformation?: InputMaybe; + cart?: InputMaybe>; + customer?: InputMaybe; + meta?: InputMaybe>; + payment?: InputMaybe>; + total?: InputMaybe; +}; + +export type UpdatePipelineInput = { + name: Scalars['String']['input']; +}; + +export type UpdatePipelineStageInput = { + name?: InputMaybe; + placeNewOrders?: InputMaybe; +}; + +export type UpdatePriceListInput = { + endDate?: InputMaybe; + modifierType?: InputMaybe; + name?: InputMaybe; + priceVariants?: InputMaybe>; + selectedProductVariants?: InputMaybe; + startDate?: InputMaybe; + targetAudience?: InputMaybe; +}; + +export type UpdatePriceVariantInput = { + currency?: InputMaybe; + name?: InputMaybe; +}; + +export type UpdateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; + variants?: InputMaybe>; + vatTypeId?: InputMaybe; +}; + +export type UpdateProductSubscriptionInput = { + addresses?: InputMaybe>; + initial?: InputMaybe; + item?: InputMaybe; + payment?: InputMaybe; + recurring?: InputMaybe; + status?: InputMaybe; +}; + +export type UpdateProductSubscriptionItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; + quantity?: InputMaybe; + sku?: InputMaybe; +}; + +export type UpdateProductSubscriptionPhaseInput = { + currency?: InputMaybe; + price?: InputMaybe; +}; + +export type UpdateProductSubscriptionStatusInput = { + activeUntil?: InputMaybe; + currency?: InputMaybe; + price?: InputMaybe; + renewAt?: InputMaybe; +}; + +export type UpdateProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + id?: InputMaybe; + images?: InputMaybe>; + isDefault?: InputMaybe; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku?: InputMaybe; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type UpdateShapeInput = { + components?: InputMaybe>; + meta?: InputMaybe>; + name?: InputMaybe; + variantComponents?: InputMaybe>; +}; + +export type UpdateSingleProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + images?: InputMaybe>; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku?: InputMaybe; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type UpdateStockLocationInput = { + name?: InputMaybe; + settings?: InputMaybe; +}; + +export type UpdateSubscriptionContractInput = { + addresses?: InputMaybe>; + initial?: InputMaybe; + item?: InputMaybe; + payment?: InputMaybe; + recurring?: InputMaybe; + status?: InputMaybe; +}; + +export type UpdateSubscriptionContractItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; + quantity?: InputMaybe; + sku?: InputMaybe; +}; + +export type UpdateSubscriptionContractPhaseInput = { + currency?: InputMaybe; + meteredVariables?: InputMaybe>; + price?: InputMaybe; +}; + +export type UpdateSubscriptionContractStatusInput = { + activeUntil?: InputMaybe; + currency?: InputMaybe; + price?: InputMaybe; + renewAt?: InputMaybe; +}; + +export type UpdateSubscriptionPlanInput = { + meteredVariables?: InputMaybe>; + name?: InputMaybe; + periods?: InputMaybe>; +}; + +export type UpdateTenantInput = { + defaults?: InputMaybe; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; +}; + +export type UpdateTopicInput = { + name?: InputMaybe; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; +}; + +export type UpdateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + tocReadAt?: InputMaybe; +}; + +export type UpdateVatTypeInput = { + name?: InputMaybe; + percent?: InputMaybe; +}; + +export type UpdateWebhookInput = { + concern?: InputMaybe; + event?: InputMaybe; + graphqlQuery?: InputMaybe; + graphqlQueryTarget?: InputMaybe; + headers?: InputMaybe>; + method?: InputMaybe; + name?: InputMaybe; + url?: InputMaybe; +}; + +export type UploadField = { + __typename?: 'UploadField'; + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type User = { + __typename?: 'User'; + accessTokens?: Maybe>; + companyName?: Maybe; + createdAt?: Maybe; + email?: Maybe; + firstName?: Maybe; + id: Scalars['ID']['output']; + isAdmin: Scalars['Boolean']['output']; + lastName?: Maybe; + lastSeenAt?: Maybe; + marketingEmailConsentedAt?: Maybe; + preferences?: Maybe; + role?: Maybe; + sub: Array; + tenants?: Maybe>; + tocReadAt?: Maybe; +}; + +export type UserPreferencesArgs = { + tenantId?: InputMaybe; +}; + +export type UserRoleArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type UserMetrics = { + __typename?: 'UserMetrics'; + count: Scalars['Int']['output']; +}; + +export type UserMetricsCountArgs = { + role?: InputMaybe; +}; + +export type UserMutations = { + __typename?: 'UserMutations'; + addTenants: Array; + create: User; + delete: Scalars['Int']['output']; + generateAccessToken: AccessToken; + grantAdminRights: User; + removeTenants?: Maybe>; + revokeAdminRights: User; + update: User; +}; + +export type UserMutationsAddTenantsArgs = { + roles: Array; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsCreateArgs = { + input: CreateUserInput; +}; + +export type UserMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type UserMutationsGenerateAccessTokenArgs = { + input: CreateAccessTokenInput; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsGrantAdminRightsArgs = { + userId: Scalars['ID']['input']; +}; + +export type UserMutationsRemoveTenantsArgs = { + tenantIds: Array; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsRevokeAdminRightsArgs = { + userId: Scalars['ID']['input']; +}; + +export type UserMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input?: InputMaybe; +}; + +export type UserQueries = { + __typename?: 'UserQueries'; + dev_search?: Maybe>; + get?: Maybe; + getMany: Array; + me?: Maybe; +}; + +export type UserQueriesDev_SearchArgs = { + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; +}; + +export type UserQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export enum UserRole { + Custom = 'custom', + TenantAdmin = 'tenantAdmin', + User = 'user', +} + +export type UserRoleInput = { + role: UserRole; + userId: Scalars['ID']['input']; +}; + +export enum UserRoles { + TenantAdmin = 'TenantAdmin', + User = 'User', +} + +export type UserTenantRole = { + __typename?: 'UserTenantRole'; + role: Scalars['String']['output']; + roleName: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + user: User; + userId: Scalars['ID']['output']; +}; + +export type VatType = { + __typename?: 'VatType'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + percent: Scalars['Float']['output']; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type VatTypeMutations = { + __typename?: 'VatTypeMutations'; + create: VatType; + delete: Scalars['Int']['output']; + update: VatType; +}; + +export type VatTypeMutationsCreateArgs = { + input: CreateVatTypeInput; +}; + +export type VatTypeMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type VatTypeMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateVatTypeInput; +}; + +export type VersionInfo = { + __typename?: 'VersionInfo'; + apiVersion: Scalars['String']['output']; + commitSha: Scalars['String']['output']; +}; + +export enum VersionLabel { + Current = 'current', + Draft = 'draft', + Published = 'published', +} + +export type VersionedRecordInfo = { + __typename?: 'VersionedRecordInfo'; + createdAt: Scalars['DateTime']['output']; + id?: Maybe; + label: VersionLabel; + owner?: Maybe; +}; + +export type VersionedServices = { + __typename?: 'VersionedServices'; + core: VersionInfo; + federated: Scalars['Boolean']['output']; + metrics?: Maybe; + reporting?: Maybe; + search?: Maybe; + subscriptions?: Maybe; +}; + +export type Video = { + __typename?: 'Video'; + id: Scalars['String']['output']; + playlist?: Maybe; + playlists?: Maybe>; + thumbnails?: Maybe>; + title?: Maybe; +}; + +export type VideoPlaylistArgs = { + type: Scalars['String']['input']; +}; + +export type VideoContent = { + __typename?: 'VideoContent'; + videos?: Maybe>; +}; + +export type VideoInput = { + key: Scalars['String']['input']; + thumbnails?: InputMaybe>; + title?: InputMaybe; +}; + +export type VideoMutations = { + __typename?: 'VideoMutations'; + addPlaylists: Video; +}; + +export type VideoMutationsAddPlaylistsArgs = { + keys: Array; + videoId: Scalars['String']['input']; +}; + +export type VideosComponentConfig = { + __typename?: 'VideosComponentConfig'; + multilingual?: Maybe; +}; + +export type VideosComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type Webhook = { + __typename?: 'Webhook'; + concern: Scalars['String']['output']; + createdAt?: Maybe; + event: Scalars['String']['output']; + graphqlQuery?: Maybe; + graphqlQueryTarget?: Maybe; + headers?: Maybe>; + id: Scalars['ID']['output']; + lastInvocation?: Maybe; + method: HttpMethod; + name: Scalars['String']['output']; + pastInvocations?: Maybe>; + tenant?: Maybe; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; + url: Scalars['String']['output']; +}; + +export type WebhookPastInvocationsArgs = { + limit?: InputMaybe; +}; + +export type WebhookHeader = { + __typename?: 'WebhookHeader'; + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type WebhookHeaderInput = { + name: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type WebhookInvocation = { + __typename?: 'WebhookInvocation'; + end?: Maybe; + payload?: Maybe; + response?: Maybe; + start?: Maybe; +}; + +export type WebhookInvocationResponse = { + __typename?: 'WebhookInvocationResponse'; + body?: Maybe; + status?: Maybe; +}; + +export type WebhookMetrics = IObjectMetrics & { + __typename?: 'WebhookMetrics'; + count: Scalars['Int']['output']; +}; + +export type WebhookMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type WebhookMutations = { + __typename?: 'WebhookMutations'; + create: Webhook; + /** @deprecated This internal use only mutation has been deprecated and will can no longer be used to register webhook invocations. */ + delete: Scalars['Int']['output']; + registerInvocation: WebhookInvocation; + update: Webhook; +}; + +export type WebhookMutationsCreateArgs = { + input: CreateWebhookInput; +}; + +export type WebhookMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type WebhookMutationsRegisterInvocationArgs = { + input?: InputMaybe; + webhookId: Scalars['ID']['input']; +}; + +export type WebhookMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateWebhookInput; +}; + +export enum WebhookPayloadQueryApi { + Current = 'current', + Next = 'next', +} + +export type WebhookQueries = { + __typename?: 'WebhookQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type WebhookQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type WebhookQueriesGetManyArgs = { + concern?: InputMaybe; + event?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; diff --git a/components/generative-ai-app/src/contracts/allowed-components.ts b/components/generative-ai-app/src/contracts/allowed-components.ts new file mode 100644 index 0000000..5dbe4b4 --- /dev/null +++ b/components/generative-ai-app/src/contracts/allowed-components.ts @@ -0,0 +1 @@ +export const allowedTypes = ['singleLine', 'richText', 'paragraphCollection']; diff --git a/components/generative-ai-app/src/core/authentication.server.ts b/components/generative-ai-app/src/core/authentication.server.ts new file mode 100644 index 0000000..64c7ffa --- /dev/null +++ b/components/generative-ai-app/src/core/authentication.server.ts @@ -0,0 +1,66 @@ +import type { CrystallizeSignature } from '@crystallize/js-api-client'; +import { type JWTPayload, SignJWT, jwtVerify } from 'jose'; + +interface JWTOptions { + expiresIn: string; + audience: string; + subject: string; + issuer: string; +} + +type Deps = { + jwtSecret: string; + crystallizeSignatureSecret: string; +}; + +type Auth = { + userId: string; + tenantId: string; + tenantIdentifier: string; +}; + +export const createAuthGuard = ({ jwtSecret, crystallizeSignatureSecret }: Deps) => { + const decodeCrystallizeSignature = async (signature: string): Promise => { + const payload = (await jwtVerify(signature, new TextEncoder().encode(crystallizeSignatureSecret))) + .payload as CrystallizeSignature; + // we don't need to check the HMAC here, as there is no body in URL requests + return payload; + }; + const createCookieToken = async ( + payload: Pick, + { expiresIn, audience, issuer, subject }: JWTOptions, + ): Promise => { + const token = await new SignJWT({ + ...payload, + iss: issuer, + sub: subject, + aud: audience, + }) + .setProtectedHeader({ alg: 'HS256' }) + .setIssuedAt() + .setExpirationTime(expiresIn) + .sign(new TextEncoder().encode(jwtSecret)); + return token; + }; + + const getAuthFromCookieToken = async (token: string): Promise => { + const decoded = await decodeToken(token); + return { + userId: decoded.userId, + tenantId: decoded.tenantId, + tenantIdentifier: decoded.tenantIdentifier, + } as Auth; + }; + + const decodeToken = async (token: string): Promise & { aud: string }> => { + return (await jwtVerify(token, new TextEncoder().encode(jwtSecret))).payload as Omit & { + aud: string; + }; + }; + + return { + decodeCrystallizeSignature, + createCookieToken, + getAuthFromCookieToken, + }; +}; diff --git a/components/generative-ai-app/src/core/generator.server.ts b/components/generative-ai-app/src/core/generator.server.ts new file mode 100644 index 0000000..c7056c9 --- /dev/null +++ b/components/generative-ai-app/src/core/generator.server.ts @@ -0,0 +1,39 @@ +import OpenAI from 'openai'; +import { ChatCompletionMessageParam } from 'openai/src/resources/chat/completions.js'; + +export type TranslatorArgs = { + text: string; + language: string; +}; +type Deps = { + apiKey: string; +}; +export const createGenerator = async ({ apiKey }: Deps) => { + const openai = new OpenAI({ apiKey }); + + const sendMessages = async (messages: ChatCompletionMessageParam[]) => { + const completion = await openai.chat.completions.create({ + messages: messages, + model: 'gpt-3.5-turbo', + }); + return completion; + }; + + const generate = async ({ text, language }: TranslatorArgs) => { + const messages: ChatCompletionMessageParam[] = [ + { + role: 'user', + content: `You are now a content generator in a Product Information Management system focus on story telling. Generate a content in ${language} based on the provided prompt. Do not generate more than 10 lines. Here is the prompt: \n ${text}"`, + }, + ]; + const completion = await sendMessages(messages); + const result = completion.choices[0].message.content ?? ''; + return result.replace(/^"(.*)"$/, '$1').replaceAll(/<[^>]*>/g, ''); + }; + + return { + generate, + }; +}; + +export type Generator = Awaited>; diff --git a/components/generative-ai-app/src/core/graphql/fragments.ts b/components/generative-ai-app/src/core/graphql/fragments.ts new file mode 100644 index 0000000..aea254a --- /dev/null +++ b/components/generative-ai-app/src/core/graphql/fragments.ts @@ -0,0 +1,362 @@ +export const Item = `#graphql + fragment Item on Item { + id + name + shape { + identifier + name + } + type + + ... on Product { + defaultVariant { + images { + url + variants { + width + url + } + } + } + } + + ... on Folder { + components { + content { + ... on ImageContent { + images { + url + variants { + width + url + } + } + } + } + } + } + + ... on Document { + components { + content { + ... on ImageContent { + images { + url + variants { + width + url + } + } + } + } + } + } + } +`; + +const Image = `#graphql + fragment Image on Image { + altText + caption { + json + } + key + meta { + key + value + } + url + variants { + key + width + height + url + } + } +`; + +const Video = `#graphql + fragment Video on Video { + id + title + thumbnails { + ...Image + } + playlists + } +`; + +const BooleanContent = `#graphql + fragment BooleanContent on BooleanContent { + value + } +`; + +const ComponentChoiceContent = `#graphql + fragment ComponentChoiceContent on ComponentChoiceContent { + selectedComponent { + componentId + content { + ... on BooleanContent { + ...BooleanContent + } + ... on DatetimeContent { + ...DatetimeContent + } + ... on FileContent { + ...FileContent + } + ... on GridRelationsContent { + ...GridRelationsContent + } + ... on ImageContent { + ...ImageContent + } + ... on ItemRelationsContent { + ...ItemRelationsContent + } + ... on LocationContent { + ...LocationContent + } + ... on NumericContent { + ...NumericContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on PropertiesTableContent { + ...PropertiesTableContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SelectionContent { + ...SelectionContent + } + ... on SingleLineContent { + ...SingleLineContent + } + ... on VideoContent { + ...VideoContent + } + } + name + type + } + } +`; + +const ContentChunkContent = `#graphql + fragment ContentChunkContent on ContentChunkContent { + chunks { + componentId + content { + ... on BooleanContent { + ...BooleanContent + } + ... on DatetimeContent { + ...DatetimeContent + } + ... on FileContent { + ...FileContent + } + ... on GridRelationsContent { + ...GridRelationsContent + } + ... on ImageContent { + ...ImageContent + } + ... on ItemRelationsContent { + ...ItemRelationsContent + } + ... on LocationContent { + ...LocationContent + } + ... on NumericContent { + ...NumericContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on PropertiesTableContent { + ...PropertiesTableContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SelectionContent { + ...SelectionContent + } + ... on SingleLineContent { + ...SingleLineContent + } + ... on VideoContent { + ...VideoContent + } + } + name + type + } + } +`; + +const DatetimeContent = `#graphql + fragment DatetimeContent on DatetimeContent { + datetime + } +`; + +const FileContent = `#graphql + fragment FileContent on FileContent { + files { + contentType + key + size + title + url + } + } +`; + +const GridRelationsContent = `#graphql + fragment GridRelationsContent on GridRelationsContent { + grids { + id + name + } + } +`; + +const ImageContent = `#graphql + fragment ImageContent on ImageContent { + images { + ...Image + } + } + ${Image} +`; + +const ItemRelationsContent = `#graphql + fragment ItemRelationsContent on ItemRelationsContent { + items { + ...Item + } + } + ${Item} +`; + +const LocationContent = `#graphql + fragment LocationContent on LocationContent { + lat + long + } +`; + +const NumericContent = `#graphql + fragment NumericContent on NumericContent { + number + unit + } +`; + +const ParagraphCollectionContent = `#graphql + fragment ParagraphCollectionContent on ParagraphCollectionContent { + paragraphs { + title { + text + } + body { + plainText + } + images { + ...Image + } + videos { + ...Video + } + } + } +`; + +const PropertiesTableContent = ` + fragment PropertiesTableContent on PropertiesTableContent { + sections { + title + properties { + key + value + } + } + } +`; + +const RichTextContent = `#graphql + fragment RichTextContent on RichTextContent { + plainText + } +`; + +const SelectionContent = `#graphql + fragment SelectionContent on SelectionContent { + options { + key + value + } + } +`; + +const SingleLineContent = `#graphql + fragment SingleLineContent on SingleLineContent { + text + } +`; + +const VideoContent = `#graphql + fragment VideoContent on VideoContent { + videos { + ...Video + } + } + ${Video} +`; + +export const Component = `#graphql + fragment Component on Component { + componentId + content { + ... on ComponentChoiceContent { + ...ComponentChoiceContent + } + ... on ContentChunkContent { + ...ContentChunkContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SingleLineContent { + ...SingleLineContent + } + } + name + type + } + ${BooleanContent} + ${ComponentChoiceContent} + ${ContentChunkContent} + ${DatetimeContent} + ${FileContent} + ${GridRelationsContent} + ${ImageContent} + ${ItemRelationsContent} + ${LocationContent} + ${NumericContent} + ${ParagraphCollectionContent} + ${PropertiesTableContent} + ${RichTextContent} + ${SelectionContent} + ${SingleLineContent} + ${VideoContent} +`; diff --git a/components/generative-ai-app/src/core/services.server.ts b/components/generative-ai-app/src/core/services.server.ts new file mode 100644 index 0000000..09021e3 --- /dev/null +++ b/components/generative-ai-app/src/core/services.server.ts @@ -0,0 +1,87 @@ +import { createClient } from '@crystallize/js-api-client'; +import { createAuthGuard } from './authentication.server'; +import { createCookieSessionStorage, redirect } from '@remix-run/node'; +import { createGenerator } from './generator.server'; + +const AUTH_SESSION_NAME = 'crystallize-gen-ai-app-auth-token'; +const COOKIE_EXPIRES_IN = 5; + +const { getSession, commitSession } = createCookieSessionStorage({ + cookie: { + name: '__session', + httpOnly: true, + path: '/', + sameSite: 'none', + secrets: [`s233c${process.env.CRYSTALLIZE_SIGNATURE_SECRET}ret21`], + secure: true, + }, +}); + +export const buildServices = async (request: Request) => { + const guard = createAuthGuard({ + jwtSecret: `${process.env.JWT_SECRET}`, + crystallizeSignatureSecret: `${process.env.CRYSTALLIZE_SIGNATURE_SECRET}`, + }); + + const session = await getSession(request.headers.get('Cookie')); + if (!session.has(AUTH_SESSION_NAME)) { + const url = new URL(request.url); + const signature = url.searchParams.get('crystallizeSignature') || ''; + if (!signature) { + throw redirect('/invalid'); + } + const payload = await guard.decodeCrystallizeSignature(signature); + const host = request.headers.get('host') || url.host; + const token = await guard.createCookieToken( + { + tenantId: payload.tenantId, + tenantIdentifier: payload.tenantIdentifier, + userId: payload.userId, + }, + { + expiresIn: COOKIE_EXPIRES_IN + 'd', + audience: host, + issuer: 'crystallize-gen-ai-app', + subject: 'crystallize-app', + }, + ); + session.set(AUTH_SESSION_NAME, token); + throw redirect(`/?${url.searchParams.toString()}`, { + headers: { + 'Set-Cookie': await commitSession(session), + }, + }); + } + + const auth = await guard.getAuthFromCookieToken(session.get(AUTH_SESSION_NAME)); + const debugOptions = { + profiling: { + onRequestResolved: (timings: unknown, query: unknown, variables: unknown) => { + console.log('profiling', { + timings, + query, + variables, + }); + }, + }, + }; + const profilingOptions = process.env.DEBUG_LEVEL ? debugOptions : {}; + const crystallizeClient = createClient( + { + tenantId: auth.tenantId, + tenantIdentifier: auth.tenantIdentifier, + accessTokenId: `${process.env.CRYSTALLIZE_ACCESS_TOKEN_ID}`, + accessTokenSecret: `${process.env.CRYSTALLIZE_ACCESS_TOKEN_SECRET}`, + }, + profilingOptions, + ); + const generator = await createGenerator({ + apiKey: `${process.env.OPENAI_API_KEY}`, + }); + + return { + auth, + generator, + apiClient: crystallizeClient, + }; +}; diff --git a/components/generative-ai-app/src/core/utils.server.ts b/components/generative-ai-app/src/core/utils.server.ts new file mode 100644 index 0000000..185f5cf --- /dev/null +++ b/components/generative-ai-app/src/core/utils.server.ts @@ -0,0 +1,5 @@ +import { inspect } from 'util'; + +export const dump = (obj: unknown, depth = 100) => { + console.log(inspect(obj, false, depth, true)); +}; diff --git a/components/generative-ai-app/src/root.tsx b/components/generative-ai-app/src/root.tsx new file mode 100644 index 0000000..9877779 --- /dev/null +++ b/components/generative-ai-app/src/root.tsx @@ -0,0 +1,26 @@ +import { Links, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react'; + +import '~/styles/app.css'; +import '@crystallize/design-system/styles.css'; + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + + + + + + + {children} + + + + + ); +} + +export default function App() { + return ; +} diff --git a/components/generative-ai-app/src/routes/_index.tsx b/components/generative-ai-app/src/routes/_index.tsx new file mode 100644 index 0000000..efba742 --- /dev/null +++ b/components/generative-ai-app/src/routes/_index.tsx @@ -0,0 +1,69 @@ +import { ActionFunctionArgs, LoaderFunctionArgs, json, redirect } from '@remix-run/node'; +import { useLoaderData } from '@remix-run/react'; +import { buildServices } from '~/core/services.server'; +import { getComponentList } from '~/use-cases/get-component-list.server'; +import { GenComponentForm } from '~/ui/components/gen-component-form'; +import { generateContentForComponent } from '~/use-cases/generate-content-for-component.server'; +import { useEffect } from 'react'; +import { signal } from '@crystallize/app-signal'; + +export const action = async ({ request }: ActionFunctionArgs) => { + const { generator, apiClient } = await buildServices(request); + const url = new URL(request.url); + const itemId = url.searchParams.get('itemId'); + const variantId = url.searchParams.get('variantId') || undefined; + const language = url.searchParams.get('language') || 'en'; + const formData = await request.formData(); + const prompt = formData.get('prompt') as string; + const componentId = formData.get('componentId') as string; + if (!itemId) { + return redirect('/missing-item'); + } + const result = await generateContentForComponent( + { componentId, prompt, itemId, variantId, language }, + { generator, apiClient }, + ); + return json(result); +}; + +export const loader = async ({ request }: LoaderFunctionArgs) => { + const { apiClient } = await buildServices(request); + const url = new URL(request.url); + const itemId = url.searchParams.get('itemId'); + const language = url.searchParams.get('language') || 'en'; + const variantId = url.searchParams.get('variantId') || undefined; + if (!itemId) { + return redirect('/missing-item'); + } + const { components } = await getComponentList( + { + itemId, + language, + variantId, + sku: undefined, + }, + { apiClient }, + ); + + return json({ + itemId, + language, + components, + }); +}; + +export default function Index() { + const { components } = useLoaderData(); + useEffect(() => { + signal.send('ready'); + }, []); + return ( +
+
+ {components.map((component) => ( + + ))} +
+
+ ); +} diff --git a/components/generative-ai-app/src/routes/invalid.tsx b/components/generative-ai-app/src/routes/invalid.tsx new file mode 100644 index 0000000..5a706c6 --- /dev/null +++ b/components/generative-ai-app/src/routes/invalid.tsx @@ -0,0 +1,9 @@ +export default function InvalidAuth() { + return ( +
+
+ Sorry but the signature is invalid. Please try again. +
+
+ ); +} diff --git a/components/generative-ai-app/src/routes/missing-item.tsx b/components/generative-ai-app/src/routes/missing-item.tsx new file mode 100644 index 0000000..507cee3 --- /dev/null +++ b/components/generative-ai-app/src/routes/missing-item.tsx @@ -0,0 +1,9 @@ +export default function MissingItem() { + return ( +
+
+ It seems item information is missing. Please make sure you render the app in custom view. +
+
+ ); +} diff --git a/components/generative-ai-app/src/styles/app.css b/components/generative-ai-app/src/styles/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/components/generative-ai-app/src/styles/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/components/generative-ai-app/src/ui/components/gen-component-form.tsx b/components/generative-ai-app/src/ui/components/gen-component-form.tsx new file mode 100644 index 0000000..da6f5d1 --- /dev/null +++ b/components/generative-ai-app/src/ui/components/gen-component-form.tsx @@ -0,0 +1,153 @@ +import { useFetcher, useLoaderData } from '@remix-run/react'; +import type { Component, ContentChunkContent, ComponentChoiceContent } from '~/__generated__/types'; +import TextareaAutosize from 'react-textarea-autosize'; +import { allowedTypes } from '~/contracts/allowed-components'; +import { SerializeFrom } from '@remix-run/node'; +import { signal } from '@crystallize/app-signal'; +import { useEffect } from 'react'; +import { action } from '~/routes/_index'; + +export const colorMap = [ + { bg: 'bg-s-purple-100', text: 'text-s-purple-500' }, + { bg: 'bg-s-green-100', text: 'text-s-green-600' }, + { bg: 'bg-s-blue-100', text: 'text-s-blue-500' }, + { bg: 'bg-green-100', text: 'text-green-500' }, + { bg: 'bg-s-orange-100', text: 'text-s-orange-500' }, + { bg: 'bg-s-pink-100', text: 'text-s-pink-500' }, + { bg: 'bg-cyan-100', text: 'text-cyan-600' }, +]; + +export const GenComponentForm: React.FC<{ + component: SerializeFrom; +}> = ({ component }) => { + const { type } = component; + + if (type === 'contentChunk') { + const suffledColorMap = colorMap.sort(() => Math.random() - 0.5); + return ( +
+ {(component.content as ContentChunkContent)?.chunks.map((chunk, index) => { + const color = suffledColorMap[index % colorMap.length]; + return ( +
+
+
{type}
+ + {component?.componentId} {`#${index + 1}`} + +
+ +
+ {chunk.map((chunkComponent) => { + if (!allowedTypes.includes(chunkComponent.type)) { + return null; + } + + return ( + + ); + })} +
+
+ ); + })} +
+ ); + } + + if ( + type === 'componentChoice' && + allowedTypes.includes((component?.content as ComponentChoiceContent)?.selectedComponent.type) + ) { + return ( +
+
+
{type}
+ {component?.componentId} +
+
+ +
+
+ ); + } + if (!allowedTypes.includes(component.type)) { + return null; + } + return ( +
+ +
+ ); +}; + +type SignalEvents = 'refetchItemComponents' | 'refetchItemVariantComponents'; +export const InnerForm: React.FC<{ + component: SerializeFrom; + isStructuralComponent?: boolean; + idPrefix?: string; + structuralColor?: { bg: string; text: string }; +}> = ({ component, idPrefix }) => { + const fetcher = useFetcher(); + const { itemId, language } = useLoaderData<{ itemId: string; language: string }>(); + + useEffect(() => { + const actionData = fetcher.data as typeof action; + if (actionData && 'success' in actionData && actionData.success === true && 'event' in actionData) { + signal.send(actionData.event as SignalEvents, { + itemId, + itemLanguage: language, + }); + } + }, [fetcher.data]); + + return ( + +
+ {component.name} +
+ + + +
+
+
+ ); +}; diff --git a/components/generative-ai-app/src/use-cases/generate-content-for-component.server.ts b/components/generative-ai-app/src/use-cases/generate-content-for-component.server.ts new file mode 100644 index 0000000..7b7fb6f --- /dev/null +++ b/components/generative-ai-app/src/use-cases/generate-content-for-component.server.ts @@ -0,0 +1,80 @@ +import { ClientInterface } from '@crystallize/js-api-client'; +import { Generator } from '~/core/generator.server'; +import { getComponentList } from './get-component-list.server'; +import { toComponentInput } from './to-component-input.server'; +import { updateVariantComponent } from './update-variant-component'; +import { updateItemComponent } from './update-item-component'; +import { json } from '@remix-run/node'; + +type Deps = { + apiClient: ClientInterface; + generator: Generator; +}; + +type Args = { + componentId: string; + prompt: string; + itemId: string; + variantId?: string; + sku?: string; + language: string; +}; + +export const generateContentForComponent = async ( + { componentId, prompt, itemId, variantId, sku: optionalSKU, language }: Args, + { apiClient, generator }: Deps, +) => { + const { components: existingComponentList, sku } = await getComponentList( + { language, itemId, sku: optionalSKU, variantId }, + { apiClient }, + ); + let generatedText: string | null = null; + try { + generatedText = await generator.generate({ + text: prompt, + language, + }); + // here we just have to replace the text of the component with the generated text + // for paragraphs, we don't handle title + const splitId = componentId.split('.'); + const component = existingComponentList.find((c) => c.componentId === splitId[0]); + splitId.shift(); + if (component) { + const input = toComponentInput(component, splitId.join('.'), generatedText); + if (sku) { + await updateVariantComponent( + { + input, + language, + sku, + productId: itemId, + }, + { apiClient }, + ); + return { + success: true, + generatedText, + event: 'refetchItemVariantComponents', + }; + } + await updateItemComponent({ itemId, language, input }, { apiClient }); + return { + success: true, + generatedText, + event: 'refetchItemComponents', + }; + } + return json({ + success: false, + generatedText, + error: 'Nothing to do.', + }); + } catch (error) { + console.error(error); + return { + success: false, + generatedText, + error: error instanceof Error ? error.message : 'Unknown error.', + }; + } +}; diff --git a/components/generative-ai-app/src/use-cases/get-component-list.server.ts b/components/generative-ai-app/src/use-cases/get-component-list.server.ts new file mode 100644 index 0000000..9d6e1fb --- /dev/null +++ b/components/generative-ai-app/src/use-cases/get-component-list.server.ts @@ -0,0 +1,43 @@ +import { ClientInterface } from '@crystallize/js-api-client'; +import { getVariants } from './get-variants'; +import { getVariantComponents } from './get-variant-components.server'; +import { getItemComponents } from './get-item-components.server'; + +type Deps = { + apiClient: ClientInterface; +}; + +type Args = { + language: string; + itemId: string; + variantId?: string; + sku?: string; +}; +export const getComponentList = async ( + { language, itemId, sku: optionalSKU, variantId }: Args, + { apiClient }: Deps, +) => { + const isVariant = Boolean(variantId || optionalSKU); + + const getSku = async (args: Args) => { + if (args.sku) { + return args.sku; + } + const item = await getVariants(itemId, language, { apiClient }); + return item?.variants.find((variant) => variant.id === variantId)?.sku || ''; + }; + if (isVariant) { + const sku = await getSku({ language, itemId, sku: optionalSKU, variantId }); + const data = await getVariantComponents(itemId, language, sku, { apiClient }); + return { + components: data?.variant?.components || [], + sku, + }; + } + + const item = await getItemComponents(itemId, language, { apiClient }); + return { + components: item?.components || [], + sku: undefined, + }; +}; diff --git a/components/generative-ai-app/src/use-cases/get-item-components.server.ts b/components/generative-ai-app/src/use-cases/get-item-components.server.ts new file mode 100644 index 0000000..18b4c2b --- /dev/null +++ b/components/generative-ai-app/src/use-cases/get-item-components.server.ts @@ -0,0 +1,32 @@ +import type { Item, Maybe } from '~/__generated__/types'; +import type { ClientInterface } from '@crystallize/js-api-client'; +import { Component } from '~/core/graphql/fragments'; + +type Deps = { + apiClient: ClientInterface; +}; +export const getItemComponents = async (id: string, language: string, { apiClient }: Deps) => { + const data = await apiClient.pimApi( + `#graphql + query GET_ITEM_COMPONENTS($id: ID!, $language: String!, $versionLabel: VersionLabel) { + item { + get(id: $id, language: $language, versionLabel: $versionLabel) { + name + type + components { + ...Component + } + } + } + } + ${Component} + `, + { + id, + language, + version: 'draft', + }, + ); + + return data?.item?.get as Maybe; +}; diff --git a/components/generative-ai-app/src/use-cases/get-variant-components.server.ts b/components/generative-ai-app/src/use-cases/get-variant-components.server.ts new file mode 100644 index 0000000..b10c1a4 --- /dev/null +++ b/components/generative-ai-app/src/use-cases/get-variant-components.server.ts @@ -0,0 +1,33 @@ +import type { Maybe, Product } from '~/__generated__/types'; +import type { ClientInterface } from '@crystallize/js-api-client'; +import { Component } from '~/core/graphql/fragments'; + +type Deps = { + apiClient: ClientInterface; +}; +export const getVariantComponents = async (id: string, language: string, sku: string, { apiClient }: Deps) => { + const data = await apiClient.pimApi( + `#graphql + query GET_VARIANT_COMPONENTS($id: ID!, $language: String!, $sku: String!, $versionLabel: VersionLabel) { + product{ + get(id: $id, language: $language, versionLabel: $versionLabel) { + variant(sku: $sku) { + name + components { + ...Component + } + } + } + } + } + ${Component} + `, + { + id, + sku, + language, + version: 'draft', + }, + ); + return data?.product?.get as Maybe; +}; diff --git a/components/generative-ai-app/src/use-cases/get-variants.ts b/components/generative-ai-app/src/use-cases/get-variants.ts new file mode 100644 index 0000000..720bfb1 --- /dev/null +++ b/components/generative-ai-app/src/use-cases/get-variants.ts @@ -0,0 +1,30 @@ +import type { Maybe, Product } from '~/__generated__/types'; +import type { ClientInterface } from '@crystallize/js-api-client'; + +type Deps = { + apiClient: ClientInterface; +}; + +export const getVariants = async (id: string, language: string, { apiClient }: Deps) => { + const data = await apiClient.pimApi( + `#graphql + query GET_VARIANTS($id: ID!, $language: String!, $versionLabel: VersionLabel) { + product { + get(id: $id, language: $language, versionLabel: $versionLabel) { + variants { + id + sku + } + } + } + } + `, + { + id, + language, + version: 'draft', + }, + ); + + return data?.product?.get as Maybe; +}; diff --git a/components/generative-ai-app/src/use-cases/to-component-input.server.ts b/components/generative-ai-app/src/use-cases/to-component-input.server.ts new file mode 100644 index 0000000..449781d --- /dev/null +++ b/components/generative-ai-app/src/use-cases/to-component-input.server.ts @@ -0,0 +1,287 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-unused-vars */ + +import type { + Component, + ComponentChoiceContent, + ComponentInput, + ContentChunkContent, + FileContent, + GridRelationsContent, + Image, + ImageContent, + ItemRelationsContent, + NumericContent, + ParagraphCollectionContent, + ParagraphContent, + RichTextContent, + SelectionContent, + SingleLineContent, + Video, + VideoContent, +} from '~/__generated__/types'; +import { ComponentType } from '~/__generated__/types'; + +export const EMPTY_TABLE = { title: '', properties: [{ key: '', value: '' }] }; + +export function updateArrayItem(array: any[], item: any, index: number) { + return [...array.slice(0, index), item, ...array.slice(index + 1)]; +} + +export function handleImage(image: Image) { + if (!image) { + return image; + } + const { + // @ts-expect-error + id, + url, + // @ts-expect-error + tempId, + // @ts-expect-error + preview, + // @ts-expect-error + file, + // @ts-expect-error + upload, + key, + variants, + // @ts-expect-error + isUploading, + // @ts-expect-error + uploadProgress, + // @ts-expect-error + fileType, + // @ts-expect-error + sizes, + ...content + } = image; + + const result = { + key, + ...content, + }; + + /** + * if the object property is null, we can actually delete it + */ + for (const key in result) { + // @ts-expect-error + if (result[key] === null || result[key] === undefined) { + // @ts-expect-error + delete result[key]; + } + } + + return result; +} + +export function handleVideo(video: Video) { + return { + key: video.id, + title: video.title, + ...(video.thumbnails && { + thumbnails: video.thumbnails.map(handleImage), + }), + }; +} + +// Do not send null as of now, workaround for backend issue. #10186 +export function handleSingleLine(singleLine?: SingleLineContent | null) { + if (!singleLine || !singleLine.text) { + return { text: '' }; + } + + return singleLine; +} + +function componentHandler(component: Component, subComponentId?: string, generatedText?: string) { + switch (component.type) { + case ComponentType.Boolean: { + if (!component || !component.content) { + return { value: false }; + } + + return component.content; + } + case ComponentType.ComponentChoice: { + //* reset the selected component + if (!component.content || !(component.content as ComponentChoiceContent).selectedComponent) { + return null; + } + + const selected = (component.content as ComponentChoiceContent).selectedComponent; + return toComponentInput( + selected, + subComponentId, + subComponentId === selected.componentId ? generatedText : undefined, + ); + } + case ComponentType.ContentChunk: { + if (!component.content || !(component.content as ContentChunkContent).chunks?.length) { + return null; + } + + const transformedChunks = (component.content as ContentChunkContent).chunks.map((chunk, chunkIndex) => + chunk.map((c) => + toComponentInput( + c, + subComponentId, + chunkIndex === 0 && subComponentId === c.componentId ? generatedText : undefined, + ), + ), + ); + + return { chunks: transformedChunks }; + } + case ComponentType.Datetime: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.Files: { + if (!component.content) { + return null; + } + + return (component.content as FileContent).files?.map(({ key, title }) => ({ key, title })); + } + case ComponentType.GridRelations: { + const ids = (component?.content as GridRelationsContent)?.grids?.map((item) => item.id) || []; + + return { gridIds: ids }; + } + case ComponentType.Images: { + if ( + !component.content || + !(component.content as ImageContent).images || + (component.content as ImageContent).images?.length === 0 + ) { + return null; + } + + return (component.content as ImageContent).images?.filter((image) => !!image.key).map(handleImage); + } + case ComponentType.ItemRelations: { + const ids = (component?.content as ItemRelationsContent)?.items?.map((item) => item.id) || []; + const skus = (component?.content as ItemRelationsContent)?.productVariants?.map((item) => item.sku) || []; + return { itemIds: ids, skus }; + } + case ComponentType.Location: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.Numeric: { + if (!component.content) { + return null; + } + + const { number, unit } = component.content as NumericContent; + + return { + number: number ?? 0, + unit, + }; + } + case ComponentType.ParagraphCollection: { + const { content } = component; + + const paragraphs = + (content as ParagraphCollectionContent)?.paragraphs?.map((paragraph: ParagraphContent, pIndex) => { + const { images, videos, title, body } = paragraph; + + return { + body: { html: pIndex === 0 ? generatedText ?? body?.plainText : body?.plainText }, + title: handleSingleLine(title), + images: + images && images?.length ? images?.filter((image) => !!image.key).map(handleImage) : null, + videos: + videos && videos?.length + ? videos + .filter(Boolean) + // @ts-expect-error + ?.filter((video: Video) => !!video?.id || !!video?.tempId) + .map(handleVideo) + : null, + }; + }) ?? []; + + return { paragraphs }; + } + case ComponentType.PropertiesTable: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.RichText: { + if (!component) { + return null; + } + + if (generatedText) { + return { html: generatedText }; + } + + const { content } = component; + + if (content && 'plainText' in content && !content.plainText) { + return null; + } + + if (!content) { + return null; + } + + return { html: (content as RichTextContent).plainText }; + } + case ComponentType.Selection: { + if (!component.content || !(component.content as SelectionContent).options) { + return null; + } + + return { + keys: (component.content as SelectionContent).options?.map(({ key }) => key), + }; + } + case ComponentType.SingleLine: { + if (generatedText) { + return handleSingleLine({ + text: generatedText, + } as SingleLineContent); + } + return handleSingleLine(component.content as SingleLineContent); + } + case ComponentType.Videos: { + if ( + !component.content || + !(component.content as VideoContent).videos || + (component.content as VideoContent)?.videos?.length === 0 + ) { + return null; + } + + return (component.content as VideoContent)?.videos?.map(handleVideo).filter((v) => v.key); + } + + default: + break; + } +} + +export function toComponentInput( + component: Component, + subComponentId?: string, + generatedText?: string, +): ComponentInput { + return { + componentId: component.componentId, + [component.type]: componentHandler(component, subComponentId, generatedText), + }; +} diff --git a/components/generative-ai-app/src/use-cases/update-item-component.ts b/components/generative-ai-app/src/use-cases/update-item-component.ts new file mode 100644 index 0000000..ed44966 --- /dev/null +++ b/components/generative-ai-app/src/use-cases/update-item-component.ts @@ -0,0 +1,29 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; +import { ComponentInput } from '~/__generated__/types'; + +type Deps = { + apiClient: ClientInterface; +}; +type Args = { + itemId: string; + language: string; + input: ComponentInput; +}; +export const updateItemComponent = async ({ itemId, language, input }: Args, { apiClient }: Deps) => { + const data = await apiClient.pimApi( + `#graphql + mutation($itemId: ID!, $language: String!, $input: ComponentInput!) { + item { + updateComponent(itemId: $itemId, language: $language, input: $input){ + id + } + } + }`, + { + itemId, + language, + input, + }, + ); + return data.item.updateComponent; +}; diff --git a/components/generative-ai-app/src/use-cases/update-variant-component.ts b/components/generative-ai-app/src/use-cases/update-variant-component.ts new file mode 100644 index 0000000..19c8daf --- /dev/null +++ b/components/generative-ai-app/src/use-cases/update-variant-component.ts @@ -0,0 +1,33 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; +import { ComponentInput } from '~/__generated__/types'; + +type Deps = { + apiClient: ClientInterface; +}; + +type Args = { + productId: string; + language: string; + sku: string; + input: ComponentInput; +}; + +export const updateVariantComponent = async ({ productId, language, sku, input }: Args, { apiClient }: Deps) => { + const data = await apiClient.pimApi( + `#graphql + mutation($productId: ID!, $language: String!, $sku: String!, $input: ComponentInput!) { + product { + updateVariantComponent(productId: $productId, language: $language, sku: $sku, input: $input){ + id + } + } + }`, + { + productId, + language, + sku, + input, + }, + ); + return data.product?.updateComponent; +}; diff --git a/components/generative-ai-app/tailwind.config.ts b/components/generative-ai-app/tailwind.config.ts new file mode 100644 index 0000000..8609c0b --- /dev/null +++ b/components/generative-ai-app/tailwind.config.ts @@ -0,0 +1,170 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/**/*.{ts,tsx}'], + theme: { + extend: { + animation: { + 'spin-slow': 'spin 3s linear infinite', + }, + }, + colors: { + cyan: { + 50: '#eefdfc', + 100: '#bff6f8', + 200: '#acf1f5', + 300: '#73e5ed', + 400: '#33d0dd', + 500: '#17b3c3', + 600: '#1690a4', + 700: '#197385', + 800: '#1d5e6d', + 900: '#1c4e5d', + }, + pink: { + 50: '#fef1f9', + 100: '#fee5f4', + 200: '#ffccec', + 300: '#ffa1db', + 400: '#ff66c0', + 500: '#fb39a4', + 600: '#eb1782', + 700: '#cd0966', + 800: '#a90b54', + 900: '#8d0e49', + }, + gray: { + 50: '#f5f5f6', + 100: '#e4e5e9', + 200: '#cccfd5', + 300: '#a9aeb7', + 400: '#7e8592', + 500: '#626778', + 600: '#545866', + 700: '#4c4f5a', + 800: '#40424a', + 900: '#393a40', + }, + purple: { + 50: '#f7f6f9', + 100: '#eeecf2', + 200: '#d8d5e2', + 300: '#b6b0c9', + 400: '#8e85ab', + 500: '#706691', + 600: '#5b5178', + 700: '#4b4262', + 800: '#403953', + 900: '#393347', + }, + green: { + 50: '#f3f8f8', + 100: '#dfebee', + 200: '#c3dade', + 300: '#9abfc6', + 400: '#699ca7', + 500: '#528693', + 600: '#436a77', + 700: '#3b5863', + 800: '#374b53', + 900: '#314148', + }, + orange: { + 50: '#fff9eb', + 100: '#ffedc6', + 200: '#ffde99', + 300: '#ffbf4a', + 400: '#ffa520', + 500: '#f98107', + 600: '#dd5c02', + 700: '#b73d06', + 800: '#942e0c', + 900: '#7a270d', + }, + 's-red': { + 50: '#fef2f2', + 100: '#ffe1e1', + 200: '#ffc8c8', + 300: '#ffadad', + 400: '#fd6c6c', + 500: '#f53e3e', + 600: '#e22020', + 700: '#be1717', + 800: '#9d1717', + 900: '#821a1a', + }, + 's-orange': { + 50: '#fff7ed', + 100: '#ffedd5', + 200: '#ffd6a5', + 300: '#ffbb72', + 400: '#fd943a', + 500: '#fc7513', + 600: '#ed5909', + 700: '#c4420a', + 800: '#9c3410', + 900: '#7d2d11', + }, + 's-yellow': { + 50: '#fefee8', + 100: '#fdffb6', + 200: '#fffe88', + 300: '#fff744', + 400: '#fee911', + 500: '#eecf04', + 600: '#cda201', + 700: '#a47404', + 800: '#875b0c', + 900: '#734a10', + }, + 's-green': { + 50: '#f2ffee', + 100: '#deffd8', + 200: '#caffbf', + 300: '#8dfd78', + 400: '#53f236', + 500: '#2cdb0c', + 600: '#1eb603', + 700: '#1b8e07', + 800: '#1a700b', + 900: '#165b0c', + }, + 's-blue': { + 50: '#eff5ff', + 100: '#dae7ff', + 200: '#bed5ff', + 300: '#a0c4ff', + 400: '#5d96fd', + 500: '#376ffa', + 600: '#214fef', + 700: '#193adc', + 800: '#1b31b2', + 900: '#1c2f8c', + }, + 's-purple': { + 50: '#f4f3ff', + 100: '#ebe8ff', + 200: '#d9d5ff', + 300: '#bdb2ff', + 400: '#9d88fd', + 500: '#7e58fa', + 600: '#6f35f2', + 700: '#6023de', + 800: '#501dba', + 900: '#431a98', + }, + 's-pink': { + 50: '#fff4ff', + 100: '#ffe7ff', + 200: '#ffc6ff', + 300: '#fea9fa', + 400: '#fc76f4', + 500: '#f342e7', + 600: '#d722c8', + 700: '#b219a1', + 800: '#921684', + 900: '#771869', + }, + }, + }, + plugins: [require('@tailwindcss/container-queries')], +}; diff --git a/components/generative-ai-app/tsconfig.json b/components/generative-ai-app/tsconfig.json new file mode 100644 index 0000000..696b611 --- /dev/null +++ b/components/generative-ai-app/tsconfig.json @@ -0,0 +1,32 @@ +{ + "include": [ + "**/*.ts", + "**/*.tsx", + "**/.server/**/*.ts", + "**/.server/**/*.tsx", + "**/.client/**/*.ts", + "**/.client/**/*.tsx" + ], + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "types": ["@remix-run/node", "vite/client"], + "isolatedModules": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "target": "ES2022", + "strict": true, + "allowJs": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": ".", + "paths": { + "~/*": ["src/*"] + }, + + // Vite takes care of building everything, not tsc. + "noEmit": true + } +} diff --git a/components/generative-ai-app/vite.config.ts b/components/generative-ai-app/vite.config.ts new file mode 100644 index 0000000..20a592d --- /dev/null +++ b/components/generative-ai-app/vite.config.ts @@ -0,0 +1,18 @@ +import { vitePlugin as remix } from '@remix-run/dev'; +import { installGlobals } from '@remix-run/node'; +import { defineConfig } from 'vite'; +import tsconfigPaths from 'vite-tsconfig-paths'; + +installGlobals(); + +export default defineConfig({ + server: { + port: 3000, + }, + plugins: [ + remix({ + appDirectory: 'src', + }), + tsconfigPaths(), + ], +}); diff --git a/components/manifest.json b/components/manifest.json index 98883ce..16ee5c0 100644 --- a/components/manifest.json +++ b/components/manifest.json @@ -16,6 +16,14 @@ "hello-world-comics": { "name": "Hello World Comics", "git": "git@github.com:CrystallizeAPI/hello-world-comics-app.git" + }, + "generative-ai-app": { + "name": "Generative AI App", + "git": "git@github.com:CrystallizeAPI/generative-ai-app.git" + }, + "translation-app": { + "name": "Crystallize Translation App", + "git": "git@github.com:CrystallizeAPI/translation-app.git" } } } diff --git a/components/translation-app/.env.dist b/components/translation-app/.env.dist new file mode 100644 index 0000000..d0f0764 --- /dev/null +++ b/components/translation-app/.env.dist @@ -0,0 +1,7 @@ +CRYSTALLIZE_TENANT_IDENTIFIER=xxx +CRYSTALLIZE_TENANT_ID=xxx +CRYSTALLIZE_ACCESS_TOKEN_ID=xxx +CRYSTALLIZE_ACCESS_TOKEN_SECRET=xxx +CRYSTALLIZE_SIGNATURE_SECRET=xxx +OPENAI_API_KEY=sk-xxx # This is the API key for OpenAI, you can get it from https://platform.openai.com/account/api-keys +JWT_SECRET=xxx # This is a secret key for JWT token generation of you app, put any random string here diff --git a/components/translation-app/.gitignore b/components/translation-app/.gitignore new file mode 100644 index 0000000..3f7bf98 --- /dev/null +++ b/components/translation-app/.gitignore @@ -0,0 +1,6 @@ +node_modules + +/.cache +/build +/public/build +.env diff --git a/components/translation-app/Caddyfile b/components/translation-app/Caddyfile new file mode 100644 index 0000000..686a105 --- /dev/null +++ b/components/translation-app/Caddyfile @@ -0,0 +1,3 @@ +translation-app.crystallize.app.local { + reverse_proxy 127.0.0.1:3000 +} diff --git a/components/translation-app/Makefile b/components/translation-app/Makefile new file mode 100644 index 0000000..0fb0ad3 --- /dev/null +++ b/components/translation-app/Makefile @@ -0,0 +1,46 @@ +# Styles +YELLOW=$(shell echo "\033[00;33m") +RED=$(shell echo "\033[00;31m") +RESTORE=$(shell echo "\033[0m") + +# Variables +NPM := pnpm +CADDY := caddy +CADDY_PID_FILE := caddy.dev.pid +CADDYFILE := Caddyfile + +.DEFAULT_GOAL := list + +.PHONY: list +list: + @echo "******************************" + @echo "${YELLOW}Available targets${RESTORE}:" + @grep -E '^[a-zA-Z-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " ${YELLOW}%-15s${RESTORE} > %s\n", $$1, $$2}' + @echo "${RED}==============================${RESTORE}" + +.PHONY: clean +clean: stop ## Clean non-essential files + @rm -rf node_modules + +.PHONY: install +install: ## Install dependencies + @$(NPM) install + +.PHONY: serve-https +serve-https: ## Start the HTTPS proxy + @$(CADDY) start --config $(CADDYFILE) --pidfile $(CADDY_PID_FILE) + +.PHONY: serve-front +serve-front: ## Serve the Frontend + @$(NPM) run dev + +.PHONY: stop +stop: ## Stop all the local services you need + -@$(CADDY) stop > /dev/null 2>&1 & + -@if [ -f $(CADDY_PID_FILE) ]; then \ + kill -9 `cat $(CADDY_PID_FILE)`; \ + rm -f $(CADDY_PID_FILE); \ + fi + +.PHONY: serve +serve: stop serve-https serve-front ## Run all the local services you need diff --git a/components/translation-app/README.md b/components/translation-app/README.md new file mode 100644 index 0000000..9664d3e --- /dev/null +++ b/components/translation-app/README.md @@ -0,0 +1,56 @@ +# Crystallize Translation App + +This is the Crystallize Translation App to be injected like a Custom View + +## Requirements + +A Crystallize App injects a signature to notify the current tenant and it requires HTTPS. +Therefore, even locally, you need HTTPS. + +You need: + +- Caddy Server +- Node 20 +- PNPM + +Also you need `translation-app.crystallize.app.local` to point to `127.0.0.1` + +When you are all set you can install the app for development. + +## Install + +Create the `.env` file from the `.env.dist` file. + +```bash +cp .env.dist .env +``` + +> `.env` is in the `.gitignore` on purpose, you don't want to commit that secret file. + +Then open the `.env` and update the values. + +Then you can + +```bash +make install +``` + +This will install the dependencies. + +## Run the project + +```bash +make serve +``` + +Please not that won't following URL won't work directly in your browser like an usual project. It expects a signature from Crystallize to set up the Cookie and other parameters to setup the context. + +So you can go ahead in your Crystallize Tenant Settings > Build > Custom Views + +Add a Custom View and input this string: + +`https://translation-app.crystallize.app.local/?itemId={{itemId}}&fromLanguage={{language}}&variantId={{variantId}}` + +## Hosting + +This project is running with Remix Run 2.1 and there you can host it almost anywhere diff --git a/components/translation-app/app/components/shape-components/choice/index.tsx b/components/translation-app/app/components/shape-components/choice/index.tsx new file mode 100644 index 0000000..94d7ac1 --- /dev/null +++ b/components/translation-app/app/components/shape-components/choice/index.tsx @@ -0,0 +1,114 @@ +import { componentType } from '../helpers'; +import { CopyButton } from '~/components/copy-button'; +import { IconButton, Icon, Tooltip } from '@crystallize/design-system'; +import TextareaAutosize from 'react-textarea-autosize'; + +const ComponentChoice = ({ + data, + item, + setEditedTranslation, + isOnVariant, +}: { + data: any; + item: { + id: string; + language: string; + sku?: string; + productId?: string; + }; + setEditedTranslation: React.Dispatch>; + isOnVariant?: boolean; +}) => { + const handleClick = async (e: any) => { + e.preventDefault(); + e.stopPropagation(); + try { + await fetch('/api/update', { + method: 'POST', + body: JSON.stringify({ + id: item.id, + language: item.language, + componentId: data.id, + content: data?.selectedComponent, + type: isOnVariant ? 'variantComponentChoice' : 'componentChoice', + sku: item?.sku, + productId: item?.productId, + }), + }); + } catch (error) { + console.log(error); + } + }; + + const selectedComponent = data?.selectedComponent; + + const handleChange = (e: any) => { + setEditedTranslation((prev: any) => { + return prev.map((i: any) => (i.id === data.id ? { ...i, translation: e.target.value } : i)); + }); + }; + + const onVariantChange = (e: any) => { + setEditedTranslation((prev: any) => { + return prev.map((i: any) => { + const newItem = { ...i }; + if (i?.id === item?.id) { + newItem.components = newItem.components.map((component: any) => { + if (component?.id === data?.id) { + component.selectedComponent.translation = e.target.value; + } + return component; + }); + } + return newItem; + }); + }); + }; + + return ( +
+
+
+ {componentType['componentChoice']} + {data?.id} +
+
+ + + + + +
+
+
+
+ {selectedComponent?.type === 'singleLine' && ( + + )} +
+ +
+
+ + {selectedComponent?.type === 'richText' && ( +
+ +
+ +
+
+ )} +
+
+ ); +}; + +export default ComponentChoice; diff --git a/components/translation-app/app/routes/api/update/index.ts b/components/translation-app/app/routes/api/update/index.ts new file mode 100644 index 0000000..87b3b10 --- /dev/null +++ b/components/translation-app/app/routes/api/update/index.ts @@ -0,0 +1,78 @@ +import { ActionFunction, json } from '@remix-run/node'; +import { updateVariantComponentChoice } from '~/use-cases/write/update-component-choice-variant'; +import { updateContentChunk } from '~/use-cases/write/update-content-chunk'; +import { updateVariantChunk } from '~/use-cases/write/update-content-chunk-variant'; +import { updateParagraphCollection } from '~/use-cases/write/update-paragraph-collection'; +import { updateVariantParagraph } from '~/use-cases/write/update-paragraph-variant'; +import { updateRichTextComponent } from '~/use-cases/write/update-rich-text-component'; +import { updateVariantRichText } from '~/use-cases/write/update-rich-text-variant'; +import { updateSingleLineComponent } from '~/use-cases/write/update-single-line-component'; +import { updateVariantSingleLine } from '~/use-cases/write/update-single-line-variant'; + +export const action: ActionFunction = async ({ request }) => { + const body = await request.json(); + console.log('body', body); + try { + switch (body.type) { + case 'singleLine': + await updateSingleLineComponent(body.id, body.language, body.componentId, body.content || ''); + break; + case 'richText': + await updateRichTextComponent(body.id, body.language, body.componentId, body.content || ''); + break; + case 'paragraphCollection': + await updateParagraphCollection(body.id, body.language, body.componentId, body.content || []); + break; + case 'contentChunk': + await updateContentChunk(body.id, body.language, body.componentId, body.content || []); + break; + case 'variantSingleLine': + await updateVariantSingleLine( + body.productId, + body.sku, + body.language, + body.componentId, + body.content || '', + ); + break; + case 'variantRichText': + await updateVariantRichText( + body.productId, + body.sku, + body.language, + body.componentId, + body.content || '', + ); + break; + case 'variantComponentChoice': + await updateVariantComponentChoice( + body.productId, + body.sku, + body.language, + body.componentId, + body.content || '', + ); + break; + case 'variantParagraphCollection': + await updateVariantParagraph( + body.productId, + body.sku, + body.language, + body.componentId, + body.content || [], + ); + break; + case 'variantContentChunk': + await updateVariantChunk(body.productId, body.sku, body.language, body.componentId, body.content || []); + break; + default: + break; + } + } catch (e) { + console.log('error', e); + } + + return json({ + success: true, + }); +}; diff --git a/components/translation-app/app/routes/api/update/publish-variant.ts b/components/translation-app/app/routes/api/update/publish-variant.ts new file mode 100644 index 0000000..9d7c230 --- /dev/null +++ b/components/translation-app/app/routes/api/update/publish-variant.ts @@ -0,0 +1,50 @@ +import { ActionFunction, json } from '@remix-run/node'; +import { updateVariantChunk } from '~/use-cases/write/update-content-chunk-variant'; +import { updateVariantParagraph } from '~/use-cases/write/update-paragraph-variant'; +import { updateVariantRichText } from '~/use-cases/write/update-rich-text-variant'; +import { updateVariantSingleLine } from '~/use-cases/write/update-single-line-variant'; + +export const action: ActionFunction = async ({ request }) => { + const body = await request.json(); + const { productId, sku, language, data } = body; + + try { + data?.forEach(async (component: any) => { + switch (component.type) { + case 'singleLine': + await updateVariantSingleLine(productId, sku, language, component.id, component.translation); + break; + case 'richText': + await updateVariantRichText(productId, sku, language, component.id, component.translation); + break; + case 'paragraphCollection': + component?.paragraphs && + component.paragraphs?.forEach(async (paragraph: any) => { + let content = { + title: { text: paragraph.title || '' }, + body: { html: paragraph.body || '' }, + images: + paragraph?.images?.map((image: any) => { + return { key: image.key }; + }) || [], + }; + await updateVariantParagraph(productId, sku, language, component.id, content); + }); + break; + case 'contentChunk': + await updateVariantChunk(productId, sku, language, component.id, component.chunks); + break; + default: + break; + } + }); + return json({ + success: true, + }); + } catch (e) { + return json({ + success: false, + error: e, + }); + } +}; diff --git a/components/translation-app/codegen.ts b/components/translation-app/codegen.ts new file mode 100644 index 0000000..649ffe8 --- /dev/null +++ b/components/translation-app/codegen.ts @@ -0,0 +1,32 @@ +import type { CodegenConfig } from '@graphql-codegen/cli'; + +const tokenId = process.env.CRYSTALLIZE_ACCESS_TOKEN_ID; +const tokenSecret = process.env.CRYSTALLIZE_ACCESS_TOKEN_SECRET; + +if (!tokenId || !tokenSecret) { + throw new Error('Missing env variable(s) when generating api legacy schemas'); +} + +const config: CodegenConfig = { + overwrite: true, + schema: [ + { + [`https://pim.crystallize.com/graphql`]: { + headers: { + 'X-Crystallize-Access-Token-Id': tokenId, + 'X-Crystallize-Access-Token-Secret': tokenSecret, + }, + }, + }, + ], + generates: { + './src/__generated__/types.ts': { + plugins: ['typescript'], + config: { + preResolveTypes: false, + }, + }, + }, +}; + +export default config; diff --git a/components/translation-app/package.json b/components/translation-app/package.json new file mode 100644 index 0000000..5ad7e56 --- /dev/null +++ b/components/translation-app/package.json @@ -0,0 +1,46 @@ +{ + "name": "crystallize-translation-app", + "private": true, + "sideEffects": false, + "scripts": { + "build": "pnpm codegen && remix build", + "dev": "remix dev --manual", + "start": "remix-serve ./build/index.js", + "typecheck": "tsc", + "codegen": "graphql-codegen --require dotenv/config --config codegen.ts" + }, + "dependencies": { + "@crystallize/app-signal": "^1.1.1", + "@crystallize/design-system": "^1.19.1", + "@crystallize/js-api-client": "^1.12.2", + "@remix-run/css-bundle": "^2.1.0", + "@remix-run/node": "^2.1.0", + "@remix-run/react": "^2.1.0", + "@remix-run/serve": "^2.1.0", + "isbot": "^3.7.0", + "jose": "^4.15.4", + "openai": "^4.12.4", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-textarea-autosize": "^8.5.3" + }, + "devDependencies": { + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@remix-run/dev": "^2.1.0", + "@remix-run/eslint-config": "^2.1.0", + "@tailwindcss/container-queries": "^0.1.1", + "@types/react": "^18.2.31", + "@types/react-dom": "^18.2.14", + "eslint": "^8.52.0", + "tailwindcss": "^3.3.3", + "typescript": "^5.2.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "@packageManager": "pnpm@8.9.2", + "volta": { + "node": "18.18.2" + } +} diff --git a/components/translation-app/pnpm-lock.yaml b/components/translation-app/pnpm-lock.yaml new file mode 100644 index 0000000..9eb1cec --- /dev/null +++ b/components/translation-app/pnpm-lock.yaml @@ -0,0 +1,13454 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@crystallize/app-signal': + specifier: ^1.1.1 + version: 1.1.1 + '@crystallize/design-system': + specifier: ^1.19.1 + version: 1.19.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(yjs@13.6.8) + '@crystallize/js-api-client': + specifier: ^1.12.2 + version: 1.12.2 + '@remix-run/css-bundle': + specifier: ^2.1.0 + version: 2.1.0 + '@remix-run/node': + specifier: ^2.1.0 + version: 2.1.0(typescript@5.2.2) + '@remix-run/react': + specifier: ^2.1.0 + version: 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + '@remix-run/serve': + specifier: ^2.1.0 + version: 2.1.0(typescript@5.2.2) + isbot: + specifier: ^3.7.0 + version: 3.7.0 + jose: + specifier: ^4.15.4 + version: 4.15.4 + openai: + specifier: ^4.12.4 + version: 4.12.4 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-textarea-autosize: + specifier: ^8.5.3 + version: 8.5.3(@types/react@18.2.31)(react@18.2.0) + +devDependencies: + '@graphql-codegen/cli': + specifier: ^5.0.0 + version: 5.0.0(graphql@16.8.1)(typescript@5.2.2) + '@graphql-codegen/typescript': + specifier: ^4.0.1 + version: 4.0.1(graphql@16.8.1) + '@remix-run/dev': + specifier: ^2.1.0 + version: 2.1.0(@remix-run/serve@2.1.0)(typescript@5.2.2) + '@remix-run/eslint-config': + specifier: ^2.1.0 + version: 2.1.0(eslint@8.52.0)(react@18.2.0)(typescript@5.2.2) + '@tailwindcss/container-queries': + specifier: ^0.1.1 + version: 0.1.1(tailwindcss@3.3.3) + '@types/react': + specifier: ^18.2.31 + version: 18.2.31 + '@types/react-dom': + specifier: ^18.2.14 + version: 18.2.14 + eslint: + specifier: ^8.52.0 + version: 8.52.0 + tailwindcss: + specifier: ^3.3.3 + version: 3.3.3 + typescript: + specifier: ^5.2.2 + version: 5.2.2 + +packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: '>=10' } + 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 + + /@ardatan/relay-compiler@12.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==, + } + hasBin: true + peerDependencies: + graphql: '*' + dependencies: + '@babel/core': 7.23.2 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/runtime': 7.23.2 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.23.2) + chalk: 4.1.2 + fb-watchman: 2.0.2 + fbjs: 3.0.5 + glob: 7.2.3 + graphql: 16.8.1 + immutable: 3.7.6 + invariant: 2.2.4 + nullthrows: 1.1.1 + relay-runtime: 12.0.0 + signedsource: 1.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@ardatan/sync-fetch@0.0.1: + resolution: + { + integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==, + } + engines: { node: '>=14' } + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /@babel/code-frame@7.22.13: + resolution: + { + integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.2: + resolution: + { + integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/core@7.23.2: + resolution: + { + integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0): + resolution: + { + integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==, + } + engines: { node: ^10.13.0 || ^12.13.0 || >=14.0.0 } + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': 7.23.2 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 8.52.0 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true + + /@babel/generator@7.23.0: + resolution: + { + integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.0 + '@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.0 + dev: true + + /@babel/helper-compilation-targets@7.22.15: + resolution: + { + integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@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.2) + '@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-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.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.23.0 + 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.0 + 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.0 + dev: true + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@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.0 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: + { + integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2): + resolution: + { + integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@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.0 + 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.0 + 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.0 + dev: true + + /@babel/helper-string-parser@7.22.5: + resolution: + { + integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==, + } + 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.22.15: + resolution: + { + integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helpers@7.23.2: + resolution: + { + integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.22.20: + resolution: + { + integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==, + } + 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.0: + resolution: + { + integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==, + } + engines: { node: '>=6.0.0' } + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.2): + resolution: + { + integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, + } + engines: { node: '>=6.9.0' } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.2): + resolution: + { + integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, + } + engines: { node: '>=6.9.0' } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.2): + resolution: + { + integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.15 + '@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.2) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + dev: true + + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/types': 7.23.0 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): + resolution: + { + integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) + dev: true + + /@babel/preset-react@7.22.15(@babel/core@7.23.2): + resolution: + { + integrity: sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.23.2) + dev: true + + /@babel/preset-typescript@7.23.2(@babel/core@7.23.2): + resolution: + { + integrity: sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.2) + dev: true + + /@babel/runtime@7.23.2: + resolution: + { + integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, + } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.14.0 + + /@babel/template@7.22.15: + resolution: + { + integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/traverse@7.23.2: + resolution: + { + integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@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.0 + '@babel/types': 7.23.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.0: + resolution: + { + integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@crystallize/app-signal@1.1.1: + resolution: + { + integrity: sha512-9XdC3wUNBUctVGMrqmlnLCN4JMkWvRwHFa54LJTfiBSQ1rgx7YP1SddpbC3Z/wOeG3hsXCbGHbtmR4LLJNxw+w==, + } + dev: false + + /@crystallize/design-system@1.19.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(yjs@13.6.8): + resolution: + { + integrity: sha512-YI1tW4cL86KKYDw49qIQrUvkXwRXnvuwW5F/ILYdzGcs6rqVlmWItQmz0Dhr85edVZuEaOyEeOyeLP8QWyQF3g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/code': 0.10.0(lexical@0.10.0) + '@lexical/file': 0.10.0(lexical@0.10.0) + '@lexical/hashtag': 0.10.0(lexical@0.10.0) + '@lexical/html': 0.10.0(lexical@0.10.0) + '@lexical/link': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/mark': 0.10.0(lexical@0.10.0) + '@lexical/markdown': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0) + '@lexical/overflow': 0.10.0(lexical@0.10.0) + '@lexical/react': 0.10.0(lexical@0.10.0)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.8) + '@lexical/rich-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/table': 0.10.0(lexical@0.10.0) + '@lexical/text': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + '@lexical/yjs': 0.10.0(lexical@0.10.0)(yjs@13.6.8) + '@radix-ui/react-checkbox': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': 1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-progress': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-radio-group': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.1.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + class-variance-authority: 0.4.0(typescript@5.2.2) + lexical: 0.10.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + sonner: 0.6.2(react-dom@18.2.0)(react@18.2.0) + use-debounce: 8.0.4(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - typescript + - yjs + dev: false + + /@crystallize/js-api-client@1.12.2: + resolution: + { + integrity: sha512-6PfW0yn5RnawE3u59nogyVEHb157+vut81m8G6+LSfuRapQelRj8h0Ycm8LgDzxq/vA0IAG0nYtt4ngfEGDfwA==, + } + dependencies: + dotenv: 16.3.1 + json-to-graphql-query: 2.2.5 + node-fetch: 2.7.0 + tiny-invariant: 1.3.1 + typescript: 4.9.5 + zod: 3.22.4 + transitivePeerDependencies: + - encoding + dev: false + + /@emotion/hash@0.9.1: + resolution: + { + integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, + } + dev: true + + /@esbuild/android-arm64@0.17.6: + resolution: + { + integrity: sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: + { + integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.6: + resolution: + { + integrity: sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [android] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/android-x64@0.17.6: + resolution: + { + integrity: sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.6: + resolution: + { + integrity: sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: + { + integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.6: + resolution: + { + integrity: sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: + { + integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.6: + resolution: + { + integrity: sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.6: + resolution: + { + integrity: sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: + { + integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.6: + resolution: + { + integrity: sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/linux-arm@0.17.6: + resolution: + { + integrity: sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.6: + resolution: + { + integrity: sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: + { + integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.6: + resolution: + { + integrity: sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.18.20: + resolution: + { + integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, + } + engines: { node: '>=12' } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.6: + resolution: + { + integrity: sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.18.20: + resolution: + { + integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.6: + resolution: + { + integrity: sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.18.20: + resolution: + { + integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.6: + resolution: + { + integrity: sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.18.20: + resolution: + { + integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.6: + resolution: + { + integrity: sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.18.20: + resolution: + { + integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.6: + resolution: + { + integrity: sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.18.20: + resolution: + { + integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.6: + resolution: + { + integrity: sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: + { + integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.6: + resolution: + { + integrity: sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.6: + resolution: + { + integrity: sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.6: + resolution: + { + integrity: sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: + { + integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.6: + resolution: + { + integrity: sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: + { + integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.6: + resolution: + { + integrity: sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: 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 + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.52.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.52.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.9.1: + resolution: + { + integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + dev: true + + /@eslint/eslintrc@2.1.2: + resolution: + { + integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==, + } + 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.23.0 + ignore: 5.2.4 + 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.52.0: + resolution: + { + integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@floating-ui/core@0.7.3: + resolution: + { + integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==, + } + dev: false + + /@floating-ui/dom@0.5.4: + resolution: + { + integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==, + } + dependencies: + '@floating-ui/core': 0.7.3 + dev: false + + /@floating-ui/react-dom@0.7.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==, + } + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 0.5.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@graphql-codegen/cli@5.0.0(graphql@16.8.1)(typescript@5.2.2): + resolution: + { + integrity: sha512-A7J7+be/a6e+/ul2KI5sfJlpoqeqwX8EzktaKCeduyVKgOLA6W5t+NUGf6QumBDXU8PEOqXk3o3F+RAwCWOiqA==, + } + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + dependencies: + '@babel/generator': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + '@graphql-codegen/core': 4.0.0(graphql@16.8.1) + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/apollo-engine-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/code-file-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/git-loader': 8.0.2(graphql@16.8.1) + '@graphql-tools/github-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/load': 8.0.0(graphql@16.8.1) + '@graphql-tools/prisma-loader': 8.0.1(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@whatwg-node/fetch': 0.8.8 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.2.2) + debounce: 1.2.1 + detect-indent: 6.1.0 + graphql: 16.8.1 + graphql-config: 5.0.3(graphql@16.8.1)(typescript@5.2.2) + inquirer: 8.2.6 + is-glob: 4.0.3 + jiti: 1.20.0 + json-to-pretty-yaml: 1.2.2 + listr2: 4.0.5 + log-symbols: 4.1.0 + micromatch: 4.0.5 + shell-quote: 1.8.1 + string-env-interpolation: 1.0.1 + ts-log: 2.2.5 + tslib: 2.6.2 + yaml: 2.3.3 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - cosmiconfig-toml-loader + - encoding + - enquirer + - supports-color + - typescript + - utf-8-validate + dev: true + + /@graphql-codegen/core@4.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-JAGRn49lEtSsZVxeIlFVIRxts2lWObR+OQo7V2LHDJ7ohYYw3ilv7nJ8pf8P4GTg/w6ptcYdSdVVdkI8kUHB/Q==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.5.3 + dev: true + + /@graphql-codegen/plugin-helpers@5.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + change-case-all: 1.0.15 + common-tags: 1.8.2 + graphql: 16.8.1 + import-from: 4.0.0 + lodash: 4.17.21 + tslib: 2.5.3 + dev: true + + /@graphql-codegen/schema-ast@4.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-WIzkJFa9Gz28FITAPILbt+7A8+yzOyd1NxgwFh7ie+EmO9a5zQK6UQ3U/BviirguXCYnn+AR4dXsoDrSrtRA1g==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.5.3 + dev: true + + /@graphql-codegen/typescript@4.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==, + } + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-codegen/schema-ast': 4.0.0(graphql@16.8.1) + '@graphql-codegen/visitor-plugin-common': 4.0.1(graphql@16.8.1) + auto-bind: 4.0.0 + graphql: 16.8.1 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-codegen/visitor-plugin-common@4.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + '@graphql-codegen/plugin-helpers': 5.0.1(graphql@16.8.1) + '@graphql-tools/optimize': 2.0.0(graphql@16.8.1) + '@graphql-tools/relay-operation-optimizer': 7.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + auto-bind: 4.0.0 + change-case-all: 1.0.15 + dependency-graph: 0.11.0 + graphql: 16.8.1 + graphql-tag: 2.12.6(graphql@16.8.1) + parse-filepath: 1.0.2 + tslib: 2.5.3 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-tools/apollo-engine-loader@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-axQTbN5+Yxs1rJ6cWQBOfw3AEeC+fvIuZSfJLPLLvFJLj4pUm9fhxey/g6oQZAAQJqKPfw+tLDUQvnfvRK8Kmg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + dev: true + + /@graphql-tools/batch-execute@9.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + dataloader: 2.2.2 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/code-file-loader@8.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-AKNpkElUL2cWocYpC4DzNEpo6qJw8Lp+L3bKQ/mIfmbsQxgLz5uve6zHBMhDaFPdlwfIox41N3iUSvi77t9e8A==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/delegate@10.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/batch-execute': 9.0.2(graphql@16.8.1) + '@graphql-tools/executor': 1.2.0(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + dataloader: 2.2.2 + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/executor-graphql-ws@1.1.0(graphql@16.8.1): + resolution: + { + integrity: sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/ws': 8.5.8 + graphql: 16.8.1 + graphql-ws: 5.14.2(graphql@16.8.1) + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 + ws: 8.14.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor-http@1.0.3(graphql@16.8.1): + resolution: + { + integrity: sha512-5WZIMBevRaxMabZ8U2Ty0dTUPy/PpeYSlMNEmC/YJjKKykgSfc/AwSejx2sE4FFKZ0I2kxRKRenyoWMHRAV49Q==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.4 + '@whatwg-node/fetch': 0.9.13 + extract-files: 11.0.0 + graphql: 16.8.1 + meros: 1.3.0 + tslib: 2.6.2 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + dev: true + + /@graphql-tools/executor-legacy-ws@1.0.4(graphql@16.8.1): + resolution: + { + integrity: sha512-b7aGuRekZDS+m3af3BIvMKxu15bmVPMt5eGQVuP2v5pxmbaPTh+iv5mx9b3Plt32z5Ke5tycBnNm5urSFtW8ng==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/ws': 8.5.8 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 + ws: 8.14.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /@graphql-tools/executor@1.2.0(graphql@16.8.1): + resolution: + { + integrity: sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@repeaterjs/repeater': 3.0.4 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/git-loader@8.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-AuCB0nlPvsHh8u42zRZdlD/ZMaWP9A44yAkQUVCZir1E/LG63fsZ9svTWJ+CbusW3Hd0ZP9qpxEhlHxnd4Tlsg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + is-glob: 4.0.3 + micromatch: 4.0.5 + tslib: 2.6.2 + unixify: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/github-loader@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-VuroArWKcG4yaOWzV0r19ElVIV6iH6UKDQn1MXemND0xu5TzrFme0kf3U9o0YwNo0kUYEk9CyFM0BYg4he17FA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/executor-http': 1.0.3(graphql@16.8.1) + '@graphql-tools/graphql-tag-pluck': 8.0.2(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + transitivePeerDependencies: + - '@types/node' + - encoding + - supports-color + dev: true + + /@graphql-tools/graphql-file-loader@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/import': 7.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + dev: true + + /@graphql-tools/graphql-tag-pluck@8.0.2(graphql@16.8.1): + resolution: + { + integrity: sha512-U6fE4yEHxuk/nqmPixHpw1WhqdS6aYuaV60m1bEmUmGJNbpAhaMBy01JncpvpF15yZR5LZ0UjkHg+A3Lhoc8YQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@graphql-tools/import@7.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + resolve-from: 5.0.0 + tslib: 2.6.2 + dev: true + + /@graphql-tools/json-file-loader@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + globby: 11.1.0 + graphql: 16.8.1 + tslib: 2.6.2 + unixify: 1.0.0 + dev: true + + /@graphql-tools/load@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-Cy874bQJH0FP2Az7ELPM49iDzOljQmK1PPH6IuxsWzLSTxwTqd8dXA09dcVZrI7/LsN26heTY2R8q2aiiv0GxQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + p-limit: 3.1.0 + tslib: 2.6.2 + dev: true + + /@graphql-tools/merge@9.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/optimize@2.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/prisma-loader@8.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-bl6e5sAYe35Z6fEbgKXNrqRhXlCJYeWKBkarohgYA338/SD9eEhXtg3Cedj7fut3WyRLoQFpHzfiwxKs7XrgXg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/url-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@types/js-yaml': 4.0.8 + '@types/json-stable-stringify': 1.0.35 + '@whatwg-node/fetch': 0.9.13 + chalk: 4.1.2 + debug: 4.3.4 + dotenv: 16.3.1 + graphql: 16.8.1 + graphql-request: 6.1.0(graphql@16.8.1) + http-proxy-agent: 7.0.0 + https-proxy-agent: 7.0.2 + jose: 4.15.4 + js-yaml: 4.1.0 + json-stable-stringify: 1.0.2 + lodash: 4.17.21 + scuid: 1.1.0 + tslib: 2.6.2 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: true + + /@graphql-tools/relay-operation-optimizer@7.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-UNlJi5y3JylhVWU4MBpL0Hun4Q7IoJwv9xYtmAz+CgRa066szzY7dcuPfxrA7cIGgG/Q6TVsKsYaiF4OHPs1Fw==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/relay-compiler': 12.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@graphql-tools/schema@10.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/merge': 9.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-tools/url-loader@8.0.0(graphql@16.8.1): + resolution: + { + integrity: sha512-rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@ardatan/sync-fetch': 0.0.1 + '@graphql-tools/delegate': 10.0.3(graphql@16.8.1) + '@graphql-tools/executor-graphql-ws': 1.1.0(graphql@16.8.1) + '@graphql-tools/executor-http': 1.0.3(graphql@16.8.1) + '@graphql-tools/executor-legacy-ws': 1.0.4(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + '@graphql-tools/wrap': 10.0.1(graphql@16.8.1) + '@types/ws': 8.5.8 + '@whatwg-node/fetch': 0.9.13 + graphql: 16.8.1 + isomorphic-ws: 5.0.0(ws@8.14.2) + tslib: 2.6.2 + value-or-promise: 1.0.12 + ws: 8.14.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - utf-8-validate + dev: true + + /@graphql-tools/utils@10.0.7(graphql@16.8.1): + resolution: + { + integrity: sha512-KOdeMj6Hd/MENDaqPbws3YJl3wVy0DeYnL7PyUms5Skyf7uzI9INynDwPMhLXfSb0/ph6BXTwMd5zBtWbF8tBQ==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + dset: 3.1.2 + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /@graphql-tools/wrap@10.0.1(graphql@16.8.1): + resolution: + { + integrity: sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==, + } + engines: { node: '>=16.0.0' } + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@graphql-tools/delegate': 10.0.3(graphql@16.8.1) + '@graphql-tools/schema': 10.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + graphql: 16.8.1 + tslib: 2.6.2 + value-or-promise: 1.0.12 + dev: true + + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): + resolution: + { + integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==, + } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + 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 + + /@isaacs/cliui@8.0.2: + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: '>=12' } + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + 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/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 + + /@jspm/core@2.0.1: + resolution: + { + integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==, + } + dev: true + + /@lexical/clipboard@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-k1n93NQdTrGHFMQQ1NxD/G13uoTEBHKOqjgSAV3I3pQjG57zO51LsMjBxgR9BChVI1DotnQ/JQCbx2HCQkCeng==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/html': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/code@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-ZEeoAtj/nXWmmN0Ol4lXSEAtxQozdDd/5I9P23Z4Leobg1YioZBDKwodM/TEITxrFme/cLgk3XCK1N2h2Noakw==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + prismjs: 1.29.0 + dev: false + + /@lexical/dragon@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-LBRkUW4NadFFQN9BIL3nz51AtPl1nSzRas61ob+hueSbovgr/+k9QGjLD1L7FIKnna2qzRlJjoI70Ll/V3fiCQ==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/file@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-/lVAkIfANHdnrFzhcZfyBGBxIEoWj9q5qP7r8sEgHRRnYjmvp2IexGZB1qv7xTL3JfDTB4hoSsv7uGnFNib0tg==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/hashtag@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-jy+LssP4ABfwS+bT2KD+W6gWl+dsyFd8Ql27bsfkNoeyIBMeSLRBNBymkkUyZGKfXrbkzMUJoH7Dws/loHY5Ng==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/history@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-yu7FruEtOulZliE6nVgvC+GLVHhN15IcLVvKdYIi+QYzkOorKc6miVuGpLvJRHE7VtK0NMWb2ykyYz9gl5jW3Q==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/html@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-zxPbjojLfZXt4Sx6CMi0NzPUrTJG8McXaCsqPKK2GQQnkKfmXLh5QsK7YhofngBDDQOtqVYzTNhrxMWVP1Sm/A==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/selection': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/link@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-LehZx9ruUR0UNZmNUMofrgwGkQo75X/yEAHQ/qFXt8Jz0D4g9fS6vsiSVn7BD4XrTdaf2kUaIe0VHScIZPjB0A==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/list@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-xoba6e4RUPIOhD0kJ0X1iI8SgOGDNWtyObd/UBbFfAQDx0VETj31Q7PepSPy9OEeuvnF1Nn9pvUeHyG7cNFuHw==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/mark@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-Xo8G8tADlxV9Es5hbca6MfZjOU5mkjZNdbRJ5dy4STNhtl3FcqbVGSAewFibzsKG3x/s8npFDY6nN/k/lkGaRg==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/markdown@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0): + resolution: + { + integrity: sha512-P6XT8736DtZoTV6KfO0+FM9pkCbGGk0wCim1HIDc3v2S4r9+Pie/FgOOWSz4jKygjhs/6EYgYJmZKq7G4Fo5WA==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/code': 0.10.0(lexical@0.10.0) + '@lexical/link': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/rich-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/text': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + transitivePeerDependencies: + - '@lexical/clipboard' + - '@lexical/selection' + dev: false + + /@lexical/offset@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-vgVmoR7XMjFuQiO6GecLGM/gcNgJlJXitO5uCHARi2yjJDmmCQ07THu5xpfXKXnkJTZXn1VfWWmAGu72Q9fKNw==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/overflow@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-8YfYhjwDGliGzYFyLVH4nCqrgR0p3+vAwEe2WI65HJnPW9TnxRkrak7QkFPTsefiTnb1gnRc+FajP9LfjdQ8YA==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/plain-text@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0): + resolution: + { + integrity: sha512-KcjQR+nHvXQDDRZ9bhcLOWfrY47OXcQc1YMx3otHbMPlEC+f/J75DTUyp+V5fry9X8gHDq0iHm+w8hqgh5ii1Q==, + } + peerDependencies: + '@lexical/clipboard': 0.10.0 + '@lexical/selection': 0.10.0 + '@lexical/utils': 0.10.0 + lexical: 0.10.0 + dependencies: + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/react@0.10.0(lexical@0.10.0)(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.8): + resolution: + { + integrity: sha512-7Ql/Y3FZSsPSCObT58CYRUd4tQzKL2U8B1xO0KXZBUbj+sO6gpNbc7/Y7MiZwCQzVNwP84j7mwkXQ1EnUBS52A==, + } + peerDependencies: + lexical: 0.10.0 + react: '>=17.x' + react-dom: '>=17.x' + dependencies: + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/code': 0.10.0(lexical@0.10.0) + '@lexical/dragon': 0.10.0(lexical@0.10.0) + '@lexical/hashtag': 0.10.0(lexical@0.10.0) + '@lexical/history': 0.10.0(lexical@0.10.0) + '@lexical/link': 0.10.0(lexical@0.10.0) + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/mark': 0.10.0(lexical@0.10.0) + '@lexical/markdown': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(lexical@0.10.0) + '@lexical/overflow': 0.10.0(lexical@0.10.0) + '@lexical/plain-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/rich-text': 0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/table': 0.10.0(lexical@0.10.0) + '@lexical/text': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + '@lexical/yjs': 0.10.0(lexical@0.10.0)(yjs@13.6.8) + lexical: 0.10.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: 3.1.4(react@18.2.0) + transitivePeerDependencies: + - yjs + dev: false + + /@lexical/rich-text@0.10.0(@lexical/clipboard@0.10.0)(@lexical/selection@0.10.0)(@lexical/utils@0.10.0)(lexical@0.10.0): + resolution: + { + integrity: sha512-mkg+8h5qh09daCc8+PhzHjczSVhlTOkrr8S4oma89mfQZ/CODJYd0tOOd9y/8JaDrBddTqjd4xTjXwEEJzVA4g==, + } + peerDependencies: + '@lexical/clipboard': 0.10.0 + '@lexical/selection': 0.10.0 + '@lexical/utils': 0.10.0 + lexical: 0.10.0 + dependencies: + '@lexical/clipboard': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/selection@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-dziT1fb+/x8S3PUHI6BuF4DPML2njCDdyY7l9uTgzN9jGXxo9bzy+ySgRRN8IgjWQb8jkntAqkYIWTj4/3Jr7Q==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/table@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-m0MBma4PNn5VV3yAGFK0iCTCZ5z/VBrZWLGxo3yPnY7FHgtUsDY84xYXziZGeixU+ehiQfsSPWVEGEC+EHFGTg==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/utils': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/text@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-kR/V4KgCIUedjEbdPtIrvsvalETDbAPhCB7HA9MBALYw9FxjXlpYBqP7yY8AxWoYCXMqDtKRu/vmo/OMi3Z8Bw==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + lexical: 0.10.0 + dev: false + + /@lexical/utils@0.10.0(lexical@0.10.0): + resolution: + { + integrity: sha512-HrRZBLxZhe5V8+kNH6VZP9pfhQdBwK76KYBjWpCaQWkmeeuLx8clY3O+SMjy1Pu/Pdh80qqtad8bdJ0l2CxMSQ==, + } + peerDependencies: + lexical: 0.10.0 + dependencies: + '@lexical/list': 0.10.0(lexical@0.10.0) + '@lexical/selection': 0.10.0(lexical@0.10.0) + '@lexical/table': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + dev: false + + /@lexical/yjs@0.10.0(lexical@0.10.0)(yjs@13.6.8): + resolution: + { + integrity: sha512-OV5yLl4XjfDKgRPSb1EyefU7c+MILKZrOzbPlv2xeTgIEd/sJiEszxvJlYsngLLN65wBDNKk90EcCWpH3KLz7A==, + } + peerDependencies: + lexical: 0.10.0 + yjs: '>=13.5.22' + dependencies: + '@lexical/offset': 0.10.0(lexical@0.10.0) + lexical: 0.10.0 + yjs: 13.6.8 + dev: false + + /@mdx-js/mdx@2.3.0: + resolution: + { + integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + '@types/mdx': 2.0.9 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: + { + integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==, + } + dependencies: + eslint-scope: 5.1.1 + 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 + + /@npmcli/fs@3.1.0: + resolution: + { + integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + semver: 7.5.4 + dev: true + + /@npmcli/git@4.1.0: + resolution: + { + integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/promise-spawn': 6.0.2 + lru-cache: 7.18.3 + npm-pick-manifest: 8.0.2 + proc-log: 3.0.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.5.4 + which: 3.0.1 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/package-json@4.0.1: + resolution: + { + integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/git': 4.1.0 + glob: 10.3.10 + hosted-git-info: 6.1.1 + json-parse-even-better-errors: 3.0.0 + normalize-package-data: 5.0.0 + proc-log: 3.0.0 + semver: 7.5.4 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/promise-spawn@6.0.2: + resolution: + { + integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + which: 3.0.1 + dev: true + + /@peculiar/asn1-schema@2.3.8: + resolution: + { + integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==, + } + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: true + + /@peculiar/json-schema@1.1.12: + resolution: + { + integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==, + } + engines: { node: '>=8.0.0' } + dependencies: + tslib: 2.6.2 + dev: true + + /@peculiar/webcrypto@1.4.3: + resolution: + { + integrity: sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==, + } + engines: { node: '>=10.12.0' } + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.5 + tslib: 2.6.2 + webcrypto-core: 1.7.7 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: '>=14' } + requiresBuild: true + dev: true + optional: true + + /@radix-ui/number@1.0.0: + resolution: + { + integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /@radix-ui/number@1.0.1: + resolution: + { + integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /@radix-ui/primitive@1.0.0: + resolution: + { + integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /@radix-ui/primitive@1.0.1: + resolution: + { + integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /@radix-ui/react-arrow@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-arrow@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-1yientwXqXcErDHEv8av9ZVNEBldH8L9scVR3is20lL+jOCfcJyMFZFEY5cgIrgexsq1qggSXqiEL/d/4f+QXA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-checkbox@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-TisH0B8hWmYP3ONRduYCyN04rR9yLPIw/Rwyn1RoC1suSoGCa8Wn+YPdSSSarSszeIbcg3p2lBkDp2XXit4sZw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-dialog@1.0.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-EKxxp2WNSmUPkx4trtWNmZ4/vAYEg7JkAfa1HKBUnaubw9eHzf1Orr9B472lJYaYz327RHDrd4R95fsw7VR8DA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-direction@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-direction@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dismissable-layer@1.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-WjJzMrTWROozDqLB0uRWYvj4UuXsM/2L19EmQ3Au+IJWqwvwq9Bwd+P8ivo0Deg9JDPArR1I6MbWNi1CmXsskg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dropdown-menu@2.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-WDZqmwsNuxdBMkvgB85UeSPAT0wSBd+ojxtzX7lU7uYYh47gacCj6Spo0l9+X4TMe3JA1BBMN9c7OhIMaQeKbg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-menu': 2.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-focus-scope@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-Ej2MQTit8IWJiS2uuujGUmxXjF/y5xZptIIQnyd2JHLwtV0R2j9NRVoRj/1j/gJ7e3REdaBw4Hjf4a1ImhkZcQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-id@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-menu@2.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-I5FFZQxCl2fHoJ7R0m5/oWA9EX8/ttH4AbgneoCH7DAXQioFeb0XMAYnOVSp1GgJZ1Nx/mohxNQSeTMcaF1YPw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popover@1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-osxFFO0TiZ9ABpEOitZu0R1Fdd+tSpJgAqLZxRLLdZQ7ya0onSODcITp5hXDVuYQeVXH6pKEBGwXN6ZGjZ0a5g==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popper@1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@floating-ui/react-dom': 0.7.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-popper@1.0.1(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-J4Vj7k3k+EHNWgcKrE+BLlQfpewxA7Zd76h5I0bIa+/EqaIZ3DuwrbPj49O3wqN+STnXsBuxiHLiF0iU3yfovw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@floating-ui/react-dom': 0.7.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-portal@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NY2vUWI5WENgAT1nfC6JS7RU5xRYBfjZVLq0HmgEN1Ezy3rk/UruMV4+Rd0F40PEaFC5SrLS1ixYvcYIQrb4Ig==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.31 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-radio-group@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-7rrkZCXu0Q7oC0MxCm497X1DdV/tI78oNIGXA8sDbCkboiTkuLSe728zCCpRYHw+9PifHIx86nsbITPEq5yijg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-use-size': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-roving-focus@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-TB76u5TIxKpqMpUAuYH2VqMhHYKa+4Vs1NHygo/llLvlffN6mLVsFhz0AnSFlSBAvTBYVHYAkHAyEt7x1gPJOA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-select@1.1.2(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-pQmfz7T6oR5m27E3NgKOo6DLs5U1qMZaUcfTENXZnNPeyyRN8pEb6Z+xXE6zomP5sg9pgLOtir4R2Q3f2kkF9w==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/number': 1.0.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.0(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.1(react-dom@18.2.0)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-slider@1.1.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-slot@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.1(react@18.2.0): + resolution: + { + integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.2(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==, + } + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + '@types/react-dom': 18.2.14 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-tooltip@1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-RB06pov+O4Npy10ei1C6fsyB9QoOjz7Ubo8Sl3qdKtLgkL9iI96925DYtH0bxx6MH6YB2FuzLU6B75qn3AQQQw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-popper': 1.0.0(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.2(react@18.2.0): + resolution: + { + integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-RG2K8z/K7InnOKpq6YLDmT49HGjNmrK+fr82UCVKT2sW0GYfVnYp4wZWBooT/EYfQ5faA9uIjvsuMMhH61rheg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-rect@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/rect': 1.0.0 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size@1.0.0(react@18.2.0): + resolution: + { + integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.31)(react@18.2.0) + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /@radix-ui/react-visually-hidden@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-MwAhMdX+n6S4InwRKSnpUsp+lLkYG6izQF56ul6guSX2mBBLOMV9Frx7xJlkEe2GjKLzbNuHhaCS6e5gopmZNA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-visually-hidden@1.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-K1hJcCMfWfiYUibRqf3V8r5Drpyf7rh44jnrwAbdvI5iCCijilBBeyQv9SKidYNZIopMdCyR9FnIjkHxHN0FcQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.23.2 + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/rect@1.0.0: + resolution: + { + integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /@remix-run/css-bundle@2.1.0: + resolution: + { + integrity: sha512-HkLQzfJFbg0yLUPvczSsdOHuK1dfTYl+egOSsJ0WYY0PNSKxjlFAI4v1ZKyPrgllVdVeqUWVtmPCjwdcYdlxjw==, + } + engines: { node: '>=18.0.0' } + dev: false + + /@remix-run/dev@2.1.0(@remix-run/serve@2.1.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-Hn5lw46F+a48dp5uHKe68ckaHgdStW4+PmLod+LMFEqrMbkF0j4XD1ousebxlv989o0Uy/OLgfRMgMy4cBOvHg==, + } + engines: { node: '>=18.0.0' } + hasBin: true + peerDependencies: + '@remix-run/serve': ^2.1.0 + typescript: ^5.1.0 + peerDependenciesMeta: + '@remix-run/serve': + optional: true + typescript: + optional: true + dependencies: + '@babel/core': 7.23.2 + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/preset-typescript': 7.23.2(@babel/core@7.23.2) + '@babel/traverse': 7.23.2 + '@mdx-js/mdx': 2.3.0 + '@npmcli/package-json': 4.0.1 + '@remix-run/serve': 2.1.0(typescript@5.2.2) + '@remix-run/server-runtime': 2.1.0(typescript@5.2.2) + '@types/mdx': 2.0.9 + '@vanilla-extract/integration': 6.2.2 + arg: 5.0.2 + cacache: 17.1.4 + chalk: 4.1.2 + chokidar: 3.5.3 + dotenv: 16.3.1 + esbuild: 0.17.6 + esbuild-plugins-node-modules-polyfill: 1.6.1(esbuild@0.17.6) + execa: 5.1.1 + exit-hook: 2.2.1 + express: 4.18.2 + fs-extra: 10.1.0 + get-port: 5.1.1 + gunzip-maybe: 1.4.2 + jsesc: 3.0.2 + json5: 2.2.3 + lodash: 4.17.21 + lodash.debounce: 4.0.8 + minimatch: 9.0.3 + node-fetch: 2.7.0 + ora: 5.4.1 + picocolors: 1.0.0 + picomatch: 2.3.1 + pidtree: 0.6.0 + postcss: 8.4.31 + postcss-discard-duplicates: 5.1.0(postcss@8.4.31) + postcss-load-config: 4.0.1(postcss@8.4.31) + postcss-modules: 6.0.0(postcss@8.4.31) + prettier: 2.8.8 + pretty-ms: 7.0.1 + react-refresh: 0.14.0 + remark-frontmatter: 4.0.1 + remark-mdx-frontmatter: 1.1.1 + semver: 7.5.4 + tar-fs: 2.1.1 + tsconfig-paths: 4.2.0 + typescript: 5.2.2 + ws: 7.5.9 + transitivePeerDependencies: + - '@types/node' + - bluebird + - bufferutil + - encoding + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - ts-node + - utf-8-validate + dev: true + + /@remix-run/eslint-config@2.1.0(eslint@8.52.0)(react@18.2.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-yfeUnHpUG+XveujMi6QODKMGhs5CvKWCKzASU397BPXiPWbMv6r2acfODSWK64ZdBMu9hcLbOb42GBFydVQeHA==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + eslint: ^8.0.0 + react: ^18.0.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.23.2 + '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) + '@babel/preset-react': 7.22.15(@babel/core@7.23.2) + '@rushstack/eslint-patch': 1.5.1 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.52.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-plugin-jest: 26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.52.0)(typescript@5.2.2) + eslint-plugin-jest-dom: 4.0.3(eslint@8.52.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0) + eslint-plugin-node: 11.1.0(eslint@8.52.0) + eslint-plugin-react: 7.33.2(eslint@8.52.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) + eslint-plugin-testing-library: 5.11.1(eslint@8.52.0)(typescript@5.2.2) + react: 18.2.0 + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /@remix-run/express@2.1.0(express@4.18.2)(typescript@5.2.2): + resolution: + { + integrity: sha512-R5myPowQx6LYWY3+EqP42q19MOCT3+ZGwb2f0UKNs9a34R8U3nFpGWL7saXryC+To+EasujEScc8rTQw5Pftog==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + express: ^4.17.1 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/node': 2.1.0(typescript@5.2.2) + express: 4.18.2 + typescript: 5.2.2 + + /@remix-run/node@2.1.0(typescript@5.2.2): + resolution: + { + integrity: sha512-TeSgjXnZUUlmw5FVpBVnXY7MLpracjdnwFNwoJE5NQkiUEFnGD/Yhvk4F2fOCkszqc2Z25KRclc5noweyiFu6Q==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/server-runtime': 2.1.0(typescript@5.2.2) + '@remix-run/web-fetch': 4.4.1 + '@remix-run/web-file': 3.1.0 + '@remix-run/web-stream': 1.1.0 + '@web3-storage/multipart-parser': 1.0.0 + cookie-signature: 1.2.1 + source-map-support: 0.5.21 + stream-slice: 0.1.2 + typescript: 5.2.2 + + /@remix-run/react@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-DeYgfsvNxHqNn29sGA3XsZCciMKo2EFTQ9hHkuVPTsJXC4ipHr6Dja1j6UzZYPe/ZuKppiuTjueWCQlE2jOe1w==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/router': 1.10.0 + '@remix-run/server-runtime': 2.1.0(typescript@5.2.2) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router-dom: 6.17.0(react-dom@18.2.0)(react@18.2.0) + typescript: 5.2.2 + dev: false + + /@remix-run/router@1.10.0: + resolution: + { + integrity: sha512-Lm+fYpMfZoEucJ7cMxgt4dYt8jLfbpwRCzAjm9UgSLOkmlqo9gupxt6YX3DY0Fk155NT9l17d/ydi+964uS9Lw==, + } + engines: { node: '>=14.0.0' } + + /@remix-run/serve@2.1.0(typescript@5.2.2): + resolution: + { + integrity: sha512-XHI+vPYz217qrg1QcV38TTPlEBTzMJzAt0SImPutyF0S2IBrZGZIFMEsspI0i0wNvdcdQz1IqmSx+mTghzW8eQ==, + } + engines: { node: '>=18.0.0' } + hasBin: true + dependencies: + '@remix-run/express': 2.1.0(express@4.18.2)(typescript@5.2.2) + '@remix-run/node': 2.1.0(typescript@5.2.2) + chokidar: 3.5.3 + compression: 1.7.4 + express: 4.18.2 + get-port: 5.1.1 + morgan: 1.10.0 + source-map-support: 0.5.21 + transitivePeerDependencies: + - supports-color + - typescript + + /@remix-run/server-runtime@2.1.0(typescript@5.2.2): + resolution: + { + integrity: sha512-Uz69yF4Gu6F3VYQub3JgDo9godN8eDMeZclkadBTAWN7bYLonu0ChR/GlFxS35OLeF7BDgudxOSZob0nE1WHNg==, + } + engines: { node: '>=18.0.0' } + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@remix-run/router': 1.10.0 + '@types/cookie': 0.4.1 + '@web3-storage/multipart-parser': 1.0.0 + cookie: 0.4.2 + set-cookie-parser: 2.6.0 + source-map: 0.7.4 + typescript: 5.2.2 + + /@remix-run/web-blob@3.1.0: + resolution: + { + integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==, + } + dependencies: + '@remix-run/web-stream': 1.1.0 + web-encoding: 1.1.5 + + /@remix-run/web-fetch@4.4.1: + resolution: + { + integrity: sha512-xMceEGn2kvfeWS91nHSOhEQHPGgjFnmDVpWFZrbWPVdiTByMZIn421/tdSF6Kd1RsNsY+5Iwt3JFEKZHAcMQHw==, + } + engines: { node: ^10.17 || >=12.3 } + dependencies: + '@remix-run/web-blob': 3.1.0 + '@remix-run/web-file': 3.1.0 + '@remix-run/web-form-data': 3.1.0 + '@remix-run/web-stream': 1.1.0 + '@web3-storage/multipart-parser': 1.0.0 + abort-controller: 3.0.0 + data-uri-to-buffer: 3.0.1 + mrmime: 1.0.1 + + /@remix-run/web-file@3.1.0: + resolution: + { + integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==, + } + dependencies: + '@remix-run/web-blob': 3.1.0 + + /@remix-run/web-form-data@3.1.0: + resolution: + { + integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==, + } + dependencies: + web-encoding: 1.1.5 + + /@remix-run/web-stream@1.1.0: + resolution: + { + integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==, + } + dependencies: + web-streams-polyfill: 3.2.1 + + /@repeaterjs/repeater@3.0.4: + resolution: + { + integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==, + } + dev: true + + /@rushstack/eslint-patch@1.5.1: + resolution: + { + integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==, + } + dev: true + + /@tailwindcss/container-queries@0.1.1(tailwindcss@3.3.3): + resolution: + { + integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==, + } + peerDependencies: + tailwindcss: '>=3.2.0' + dependencies: + tailwindcss: 3.3.3 + dev: true + + /@testing-library/dom@8.20.1: + resolution: + { + integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==, + } + engines: { node: '>=12' } + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/runtime': 7.23.2 + '@types/aria-query': 5.0.3 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@types/acorn@4.0.6: + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } + dependencies: + '@types/estree': 1.0.3 + dev: true + + /@types/aria-query@5.0.3: + resolution: + { + integrity: sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA==, + } + dev: true + + /@types/cookie@0.4.1: + resolution: + { + integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==, + } + + /@types/debug@4.1.10: + resolution: + { + integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==, + } + dependencies: + '@types/ms': 0.7.33 + dev: true + + /@types/estree-jsx@1.0.2: + resolution: + { + integrity: sha512-GNBWlGBMjiiiL5TSkvPtOteuXsiVitw5MYGY1UYlrAq0SKyczsls6sCD7TZ8fsjRsvCVxml7EbyjJezPb3DrSA==, + } + dependencies: + '@types/estree': 1.0.3 + dev: true + + /@types/estree@1.0.3: + resolution: + { + integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==, + } + dev: true + + /@types/hast@2.3.7: + resolution: + { + integrity: sha512-EVLigw5zInURhzfXUM65eixfadfsHKomGKUakToXo84t8gGIJuTcD2xooM2See7GyQ7DRtYjhCHnSUQez8JaLw==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /@types/js-yaml@4.0.8: + resolution: + { + integrity: sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==, + } + dev: true + + /@types/json-schema@7.0.14: + resolution: + { + integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==, + } + dev: true + + /@types/json-stable-stringify@1.0.35: + resolution: + { + integrity: sha512-zlCWqsRBI0+ANN7dzGeDFJ4CHaVFTLqBNRS11GjR2mHCW6XxNtnMxhQzBKMzfsnjI8oI+kWq2vBwinyQpZVSsg==, + } + dev: true + + /@types/json5@0.0.29: + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } + dev: true + + /@types/mdast@3.0.14: + resolution: + { + integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /@types/mdx@2.0.9: + resolution: + { + integrity: sha512-OKMdj17y8Cs+k1r0XFyp59ChSOwf8ODGtMQ4mnpfz5eFDk1aO41yN3pSKGuvVzmWAkFp37seubY1tzOVpwfWwg==, + } + dev: true + + /@types/ms@0.7.33: + resolution: + { + integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==, + } + dev: true + + /@types/node-fetch@2.6.7: + resolution: + { + integrity: sha512-lX17GZVpJ/fuCjguZ5b3TjEbSENxmEk1B2z02yoXSK9WMEWRivhdSY73wWMn6bpcCDAOh6qAdktpKHIlkDk2lg==, + } + dependencies: + '@types/node': 18.18.6 + form-data: 4.0.0 + dev: false + + /@types/node@18.18.6: + resolution: + { + integrity: sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==, + } + dev: false + + /@types/node@20.8.7: + resolution: + { + integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==, + } + dependencies: + undici-types: 5.25.3 + dev: true + + /@types/prop-types@15.7.9: + resolution: + { + integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==, + } + + /@types/react-dom@18.2.14: + resolution: + { + integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==, + } + dependencies: + '@types/react': 18.2.31 + + /@types/react@18.2.31: + resolution: + { + integrity: sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==, + } + dependencies: + '@types/prop-types': 15.7.9 + '@types/scheduler': 0.16.5 + csstype: 3.1.2 + + /@types/scheduler@0.16.5: + resolution: + { + integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==, + } + + /@types/semver@7.5.4: + resolution: + { + integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==, + } + dev: true + + /@types/unist@2.0.9: + resolution: + { + integrity: sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==, + } + dev: true + + /@types/ws@8.5.8: + resolution: + { + integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==, + } + dependencies: + '@types/node': 20.8.7 + dev: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2): + 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.9.1 + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.52.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.62.0(eslint@8.52.0)(typescript@5.2.2): + 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.2.2) + debug: 4.3.4 + eslint: 8.52.0 + typescript: 5.2.2 + 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.52.0)(typescript@5.2.2): + 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.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.52.0 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 + 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.2.2): + 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.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): + 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.52.0) + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + eslint: 8.52.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 + + /@vanilla-extract/babel-plugin-debug-ids@1.0.3: + resolution: + { + integrity: sha512-vm4jYu1xhSa6ofQ9AhIpR3DkAp4c+eoR1Rpm8/TQI4DmWbmGbOjYRcqV0aWsfaIlNhN4kFuxFMKBNN9oG6iRzA==, + } + dependencies: + '@babel/core': 7.23.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@vanilla-extract/css@1.13.0: + resolution: + { + integrity: sha512-JFFBXhnJrPlGqHBabagXqo5ghXw9mtV270ycIGyLDZG8NAK5eRwAYkMowAxuzK7wZSm67GnETWYB7b0AUmyttg==, + } + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.3 + ahocorasick: 1.0.2 + chalk: 4.1.2 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.2 + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + media-query-parser: 2.0.2 + outdent: 0.8.0 + dev: true + + /@vanilla-extract/integration@6.2.2: + resolution: + { + integrity: sha512-gV3qPFjFap1+IrPeuFy+tEZOq7l7ifJf1ik/kluDWhPr1ffsFG9puq1/jjJ4rod1BIC79Q5ZWPNvBInHyxfCew==, + } + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) + '@vanilla-extract/babel-plugin-debug-ids': 1.0.3 + '@vanilla-extract/css': 1.13.0 + esbuild: 0.17.6 + eval: 0.1.8 + find-up: 5.0.0 + javascript-stringify: 2.1.0 + lodash: 4.17.21 + mlly: 1.4.2 + outdent: 0.8.0 + vite: 4.5.0 + vite-node: 0.28.5 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /@vanilla-extract/private@1.0.3: + resolution: + { + integrity: sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==, + } + dev: true + + /@web3-storage/multipart-parser@1.0.0: + resolution: + { + integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==, + } + + /@whatwg-node/events@0.0.3: + resolution: + { + integrity: sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==, + } + dev: true + + /@whatwg-node/events@0.1.1: + resolution: + { + integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==, + } + engines: { node: '>=16.0.0' } + dev: true + + /@whatwg-node/fetch@0.8.8: + resolution: + { + integrity: sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==, + } + dependencies: + '@peculiar/webcrypto': 1.4.3 + '@whatwg-node/node-fetch': 0.3.6 + busboy: 1.6.0 + urlpattern-polyfill: 8.0.2 + web-streams-polyfill: 3.2.1 + dev: true + + /@whatwg-node/fetch@0.9.13: + resolution: + { + integrity: sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==, + } + engines: { node: '>=16.0.0' } + dependencies: + '@whatwg-node/node-fetch': 0.4.19 + urlpattern-polyfill: 9.0.0 + dev: true + + /@whatwg-node/node-fetch@0.3.6: + resolution: + { + integrity: sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==, + } + dependencies: + '@whatwg-node/events': 0.0.3 + busboy: 1.6.0 + fast-querystring: 1.1.2 + fast-url-parser: 1.1.3 + tslib: 2.6.2 + dev: true + + /@whatwg-node/node-fetch@0.4.19: + resolution: + { + integrity: sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==, + } + engines: { node: '>=16.0.0' } + dependencies: + '@whatwg-node/events': 0.1.1 + busboy: 1.6.0 + fast-querystring: 1.1.2 + fast-url-parser: 1.1.3 + tslib: 2.6.2 + dev: true + + /@zxing/text-encoding@0.9.0: + resolution: + { + integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==, + } + requiresBuild: true + optional: true + + /abort-controller@3.0.0: + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: '>=6.5' } + dependencies: + event-target-shim: 5.0.1 + + /accepts@1.3.8: + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.10.0 + dev: true + + /acorn@8.10.0: + resolution: + { + integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==, + } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /agent-base@7.1.0: + resolution: + { + integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==, + } + engines: { node: '>= 14' } + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive@4.5.0: + resolution: + { + integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==, + } + engines: { node: '>= 8.0.0' } + dependencies: + humanize-ms: 1.2.1 + dev: false + + /aggregate-error@3.1.0: + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: '>=8' } + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ahocorasick@1.0.2: + resolution: + { + integrity: sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==, + } + 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 + + /ansi-escapes@4.3.2: + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: '>=8' } + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: '>=8' } + dev: true + + /ansi-regex@6.0.1: + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: '>=12' } + 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 + + /ansi-styles@5.2.0: + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: '>=10' } + dev: true + + /ansi-styles@6.2.1: + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: '>=12' } + dev: true + + /any-promise@1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } + 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 + + /arg@5.0.2: + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } + dev: true + + /argparse@2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + dev: true + + /aria-hidden@1.2.3: + resolution: + { + integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==, + } + engines: { node: '>=10' } + dependencies: + tslib: 2.6.2 + dev: false + + /aria-query@5.1.3: + resolution: + { + integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==, + } + dependencies: + deep-equal: 2.2.2 + dev: true + + /aria-query@5.3.0: + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } + dependencies: + dequal: 2.0.3 + dev: true + + /array-buffer-byte-length@1.0.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==, + } + + /array-includes@3.1.7: + resolution: + { + integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: '>=8' } + dev: true + + /array.prototype.findlastindex@1.2.3: + resolution: + { + integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: + { + integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, + } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + 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 + + /asap@2.0.6: + resolution: + { + integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, + } + dev: true + + /asn1js@3.0.5: + resolution: + { + integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==, + } + engines: { node: '>=12.0.0' } + dependencies: + pvtsutils: 1.3.5 + pvutils: 1.1.3 + tslib: 2.6.2 + dev: true + + /ast-types-flow@0.0.7: + resolution: + { + integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==, + } + dev: true + + /astral-regex@2.0.0: + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: '>=8' } + dev: true + + /astring@1.8.6: + resolution: + { + integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, + } + hasBin: true + dev: true + + /asynciterator.prototype@1.0.0: + resolution: + { + integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, + } + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } + dev: false + + /auto-bind@4.0.0: + resolution: + { + integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==, + } + engines: { node: '>=8' } + dev: true + + /available-typed-arrays@1.0.5: + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: '>= 0.4' } + + /axe-core@4.8.2: + resolution: + { + integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==, + } + engines: { node: '>=4' } + dev: true + + /axobject-query@3.2.1: + resolution: + { + integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==, + } + dependencies: + dequal: 2.0.3 + dev: true + + /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: + resolution: + { + integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==, + } + dev: true + + /babel-preset-fbjs@3.4.0(@babel/core@7.23.2): + resolution: + { + integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==, + } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.2) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) + '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) + '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) + '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) + babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 + dev: true + + /bail@2.0.2: + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } + dev: true + + /balanced-match@1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + dev: true + + /base-64@0.1.0: + resolution: + { + integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==, + } + dev: false + + /base64-js@1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } + dev: true + + /basic-auth@2.0.1: + resolution: + { + integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==, + } + engines: { node: '>= 0.8' } + dependencies: + safe-buffer: 5.1.2 + + /binary-extensions@2.2.0: + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: '>=8' } + + /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: true + + /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 + + /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 + + /browserify-zlib@0.1.4: + resolution: + { + integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==, + } + dependencies: + pako: 0.2.9 + dev: true + + /browserslist@4.22.1: + resolution: + { + integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001553 + electron-to-chromium: 1.4.563 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + + /bser@2.1.1: + resolution: + { + integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, + } + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-from@1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + + /buffer@5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtins@5.0.1: + resolution: + { + integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==, + } + dependencies: + semver: 7.5.4 + dev: true + + /busboy@1.6.0: + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: '>=10.16.0' } + dependencies: + streamsearch: 1.1.0 + dev: true + + /bytes@3.0.0: + resolution: + { + integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, + } + engines: { node: '>= 0.8' } + + /bytes@3.1.2: + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, + } + engines: { node: '>= 0.8' } + + /cac@6.7.14: + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: '>=8' } + dev: true + + /cacache@17.1.4: + resolution: + { + integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.3 + glob: 10.3.10 + lru-cache: 7.18.3 + minipass: 7.0.4 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.5 + tar: 6.2.0 + unique-filename: 3.0.0 + dev: true + + /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 + + /camel-case@4.1.2: + resolution: + { + integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, + } + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase-css@2.0.1: + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: '>= 6' } + dev: true + + /camelcase@5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, + } + engines: { node: '>=6' } + dev: true + + /caniuse-lite@1.0.30001553: + resolution: + { + integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==, + } + dev: true + + /capital-case@1.0.4: + resolution: + { + integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /ccount@2.0.1: + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } + 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 + + /change-case-all@1.0.15: + resolution: + { + integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==, + } + dependencies: + change-case: 4.1.2 + is-lower-case: 2.0.2 + is-upper-case: 2.0.2 + lower-case: 2.0.2 + lower-case-first: 2.0.2 + sponge-case: 1.0.1 + swap-case: 2.0.2 + title-case: 3.0.3 + upper-case: 2.0.2 + upper-case-first: 2.0.2 + dev: true + + /change-case@4.1.2: + resolution: + { + integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==, + } + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /character-entities-html4@2.1.0: + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } + dev: true + + /character-entities-legacy@3.0.0: + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } + dev: true + + /character-entities@2.0.2: + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } + dev: true + + /character-reference-invalid@2.0.1: + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } + dev: true + + /chardet@0.7.0: + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } + dev: true + + /charenc@0.0.2: + resolution: + { + integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, + } + dev: false + + /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 + + /chownr@1.1.4: + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + } + dev: true + + /chownr@2.0.0: + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: '>=10' } + dev: true + + /class-variance-authority@0.4.0(typescript@5.2.2): + resolution: + { + integrity: sha512-74enNN8O9ZNieycac/y8FxqgyzZhZbxmCitAtAeUrLPlxjSd5zA7LfpprmxEcOmQBnaGs5hYhiSGnJ0mqrtBLQ==, + } + peerDependencies: + typescript: '>= 4.5.5 < 5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + + /clean-stack@2.2.0: + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: '>=6' } + dev: true + + /cli-cursor@3.1.0: + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: '>=8' } + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.1: + resolution: + { + integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==, + } + engines: { node: '>=6' } + dev: true + + /cli-truncate@2.1.0: + resolution: + { + integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + } + engines: { node: '>=8' } + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-width@3.0.0: + resolution: + { + integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + } + engines: { node: '>= 10' } + dev: true + + /cliui@6.0.0: + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@8.0.1: + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: '>=12' } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: '>=0.8' } + dev: true + + /color-convert@1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + dev: true + + /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==, + } + dev: true + + /color-name@1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /colorette@2.0.20: + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } + dev: true + + /combined-stream@1.0.8: + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: '>= 0.8' } + dependencies: + delayed-stream: 1.0.0 + dev: false + + /comma-separated-tokens@2.0.3: + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } + dev: true + + /commander@4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: '>= 6' } + dev: true + + /common-tags@1.8.2: + resolution: + { + integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, + } + engines: { node: '>=4.0.0' } + dev: true + + /compressible@2.0.18: + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + + /compression@1.7.4: + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /concat-map@0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + dev: true + + /constant-case@3.0.4: + resolution: + { + integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: true + + /content-disposition@0.5.4: + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, + } + engines: { node: '>= 0.6' } + dependencies: + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, + } + engines: { node: '>= 0.6' } + + /convert-source-map@2.0.0: + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } + dev: true + + /cookie-signature@1.0.6: + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + } + + /cookie-signature@1.2.1: + resolution: + { + integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==, + } + engines: { node: '>=6.6.0' } + + /cookie@0.4.2: + resolution: + { + integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==, + } + engines: { node: '>= 0.6' } + + /cookie@0.5.0: + resolution: + { + integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, + } + engines: { node: '>= 0.6' } + + /core-util-is@1.0.3: + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } + dev: true + + /cosmiconfig@8.3.6(typescript@5.2.2): + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: '>=14' } + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.2.2 + dev: true + + /cross-fetch@3.1.8: + resolution: + { + integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==, + } + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /cross-spawn@7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypt@0.0.2: + resolution: + { + integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, + } + dev: false + + /css-what@6.1.0: + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: '>= 6' } + dev: true + + /cssesc@3.0.0: + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: '>=4' } + hasBin: true + dev: true + + /csstype@3.1.2: + resolution: + { + integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, + } + + /damerau-levenshtein@1.0.8: + resolution: + { + integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, + } + dev: true + + /data-uri-to-buffer@3.0.1: + resolution: + { + integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==, + } + engines: { node: '>= 6' } + + /dataloader@2.2.2: + resolution: + { + integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==, + } + dev: true + + /debounce@1.2.1: + resolution: + { + integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==, + } + 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 + + /debug@3.2.7: + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize@1.2.0: + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /decode-named-character-reference@1.0.2: + resolution: + { + integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, + } + dependencies: + character-entities: 2.0.2 + dev: true + + /deep-equal@2.2.2: + resolution: + { + integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==, + } + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.2 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + + /deep-is@0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } + dev: true + + /deep-object-diff@1.1.9: + resolution: + { + integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==, + } + dev: true + + /deepmerge@4.3.1: + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: '>=0.10.0' } + dev: true + + /defaults@1.0.4: + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } + dependencies: + clone: 1.0.4 + 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 + + /delayed-stream@1.0.0: + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: '>=0.4.0' } + dev: false + + /depd@2.0.0: + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: '>= 0.8' } + + /dependency-graph@0.11.0: + resolution: + { + integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==, + } + engines: { node: '>= 0.6.0' } + dev: true + + /dequal@2.0.3: + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: '>=6' } + dev: true + + /destroy@1.2.0: + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + + /detect-indent@6.1.0: + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: '>=8' } + dev: true + + /detect-node-es@1.1.0: + resolution: + { + integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, + } + dev: false + + /didyoumean@1.2.2: + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } + dev: true + + /diff@5.1.0: + resolution: + { + integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, + } + engines: { node: '>=0.3.1' } + dev: true + + /digest-fetch@1.3.0: + resolution: + { + integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==, + } + dependencies: + base-64: 0.1.0 + md5: 2.3.0 + dev: false + + /dir-glob@3.0.1: + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: '>=8' } + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } + dev: true + + /doctrine@2.1.0: + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: '>=0.10.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: '>=6.0.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /dom-accessibility-api@0.5.16: + resolution: + { + integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, + } + dev: true + + /dot-case@3.0.4: + resolution: + { + integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /dotenv@16.3.1: + resolution: + { + integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==, + } + engines: { node: '>=12' } + + /dset@3.1.2: + resolution: + { + integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==, + } + engines: { node: '>=4' } + dev: true + + /duplexify@3.7.1: + resolution: + { + integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, + } + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.1 + dev: true + + /eastasianwidth@0.2.0: + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } + dev: true + + /ee-first@1.1.1: + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } + + /electron-to-chromium@1.4.563: + resolution: + { + integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==, + } + dev: true + + /emoji-regex@8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + dev: true + + /emoji-regex@9.2.2: + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } + dev: true + + /encodeurl@1.0.2: + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: '>= 0.8' } + + /end-of-stream@1.4.4: + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve@5.15.0: + resolution: + { + integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, + } + engines: { node: '>=10.13.0' } + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /err-code@2.0.3: + resolution: + { + integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, + } + dev: true + + /error-ex@1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + dev: true + + /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.4 + 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-get-iterator@1.1.3: + resolution: + { + integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, + } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: + { + integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==, + } + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + 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-shim-unscopables@1.0.2: + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, + } + dependencies: + 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-plugins-node-modules-polyfill@1.6.1(esbuild@0.17.6): + resolution: + { + integrity: sha512-6sAwI24PV8W0zxeO+i4BS5zoQypS3SzEGwIdxpzpy65riRuK8apMw8PN0aKVLCTnLr0FgNIxUMRd9BsreBrtog==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + esbuild: ^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 || ^0.19.0 + dependencies: + '@jspm/core': 2.0.1 + esbuild: 0.17.6 + local-pkg: 0.4.3 + resolve.exports: 2.0.2 + dev: true + + /esbuild@0.17.6: + resolution: + { + integrity: sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.6 + '@esbuild/android-arm64': 0.17.6 + '@esbuild/android-x64': 0.17.6 + '@esbuild/darwin-arm64': 0.17.6 + '@esbuild/darwin-x64': 0.17.6 + '@esbuild/freebsd-arm64': 0.17.6 + '@esbuild/freebsd-x64': 0.17.6 + '@esbuild/linux-arm': 0.17.6 + '@esbuild/linux-arm64': 0.17.6 + '@esbuild/linux-ia32': 0.17.6 + '@esbuild/linux-loong64': 0.17.6 + '@esbuild/linux-mips64el': 0.17.6 + '@esbuild/linux-ppc64': 0.17.6 + '@esbuild/linux-riscv64': 0.17.6 + '@esbuild/linux-s390x': 0.17.6 + '@esbuild/linux-x64': 0.17.6 + '@esbuild/netbsd-x64': 0.17.6 + '@esbuild/openbsd-x64': 0.17.6 + '@esbuild/sunos-x64': 0.17.6 + '@esbuild/win32-arm64': 0.17.6 + '@esbuild/win32-ia32': 0.17.6 + '@esbuild/win32-x64': 0.17.6 + 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 + dev: true + + /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==, + } + + /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-import-resolver-node@0.3.7: + resolution: + { + integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==, + } + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.52.0): + resolution: + { + integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.52.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): + resolution: + { + integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.52.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.28.1)(eslint@8.52.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-es@3.0.1(eslint@8.52.0): + resolution: + { + integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==, + } + engines: { node: '>=8.10.0' } + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.52.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): + resolution: + { + integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.52.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + has: 1.0.4 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest-dom@4.0.3(eslint@8.52.0): + resolution: + { + integrity: sha512-9j+n8uj0+V0tmsoS7bYC7fLhQmIvjRqRYEcbDSi+TKPsTThLLXCyj5swMSSf/hTleeMktACnn+HFqXBr5gbcbA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6', yarn: '>=1' } + peerDependencies: + eslint: ^6.8.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@babel/runtime': 7.23.2 + '@testing-library/dom': 8.20.1 + eslint: 8.52.0 + requireindex: 1.2.0 + dev: true + + /eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.52.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): + resolution: + { + integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==, + } + engines: { node: '>=4.0' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.2 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.2 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.52.0 + has: 1.0.4 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: true + + /eslint-plugin-node@11.1.0(eslint@8.52.0): + resolution: + { + integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==, + } + engines: { node: '>=8.10.0' } + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.52.0 + eslint-plugin-es: 3.0.1(eslint@8.52.0) + eslint-utils: 2.1.0 + ignore: 5.2.4 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 6.3.1 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.52.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.52.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.52.0): + resolution: + { + integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, + } + engines: { node: '>=4' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.52.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-plugin-testing-library@5.11.1(eslint@8.52.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6' } + peerDependencies: + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + transitivePeerDependencies: + - supports-color + - typescript + 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-utils@2.1.0: + resolution: + { + integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==, + } + engines: { node: '>=6' } + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: + { + integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, + } + engines: { node: '>=4' } + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: + { + integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, + } + engines: { node: '>=10' } + 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.52.0: + resolution: + { + integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@eslint-community/regexpp': 4.9.1 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.52.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.23.0 + graphemer: 1.4.0 + ignore: 5.2.4 + 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.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + 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-util-attach-comments@2.1.1: + resolution: + { + integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==, + } + dependencies: + '@types/estree': 1.0.3 + dev: true + + /estree-util-build-jsx@2.2.2: + resolution: + { + integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + dev: true + + /estree-util-is-identifier-name@1.1.0: + resolution: + { + integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==, + } + dev: true + + /estree-util-is-identifier-name@2.1.0: + resolution: + { + integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, + } + dev: true + + /estree-util-to-js@1.2.0: + resolution: + { + integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + astring: 1.8.6 + source-map: 0.7.4 + dev: true + + /estree-util-value-to-estree@1.3.0: + resolution: + { + integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==, + } + engines: { node: '>=12.0.0' } + dependencies: + is-plain-obj: 3.0.0 + dev: true + + /estree-util-visit@1.2.1: + resolution: + { + integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + '@types/unist': 2.0.9 + dev: true + + /estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } + dependencies: + '@types/estree': 1.0.3 + 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' } + + /eval@0.1.8: + resolution: + { + integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==, + } + engines: { node: '>= 0.8' } + dependencies: + '@types/node': 20.8.7 + require-like: 0.1.2 + dev: true + + /event-target-shim@5.0.1: + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: '>=6' } + + /execa@5.1.1: + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: '>=10' } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit-hook@2.2.1: + resolution: + { + integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==, + } + engines: { node: '>=6' } + dev: true + + /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 + + /extend@3.0.2: + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } + dev: true + + /external-editor@3.1.0: + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: '>=4' } + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extract-files@11.0.0: + resolution: + { + integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==, + } + engines: { node: ^12.20 || >= 14.13 } + dev: true + + /fast-decode-uri-component@1.0.1: + resolution: + { + integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==, + } + dev: true + + /fast-deep-equal@3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } + dev: true + + /fast-glob@3.3.1: + resolution: + { + integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, + } + engines: { node: '>=8.6.0' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } + dev: true + + /fast-levenshtein@2.0.6: + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } + dev: true + + /fast-querystring@1.1.2: + resolution: + { + integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==, + } + dependencies: + fast-decode-uri-component: 1.0.1 + dev: true + + /fast-url-parser@1.1.3: + resolution: + { + integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==, + } + dependencies: + punycode: 1.4.1 + dev: true + + /fastq@1.15.0: + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } + dependencies: + reusify: 1.0.4 + dev: true + + /fault@2.0.1: + resolution: + { + integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, + } + dependencies: + format: 0.2.2 + dev: true + + /fb-watchman@2.0.2: + resolution: + { + integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, + } + dependencies: + bser: 2.1.1 + dev: true + + /fbjs-css-vars@1.0.2: + resolution: + { + integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==, + } + dev: true + + /fbjs@3.0.5: + resolution: + { + integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==, + } + dependencies: + cross-fetch: 3.1.8 + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.36 + transitivePeerDependencies: + - encoding + dev: true + + /figures@3.2.0: + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + } + engines: { node: '>=8' } + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.1.1 + 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 + + /find-up@4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /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.1.1: + resolution: + { + integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==, + } + engines: { node: '>=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 + + /for-each@0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + dependencies: + is-callable: 1.2.7 + + /foreground-child@3.1.1: + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: '>=14' } + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data-encoder@1.7.2: + resolution: + { + integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==, + } + dev: false + + /form-data@4.0.0: + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, + } + engines: { node: '>= 6' } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /format@0.2.2: + resolution: + { + integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, + } + engines: { node: '>=0.4.x' } + dev: true + + /formdata-node@4.4.1: + resolution: + { + integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==, + } + engines: { node: '>= 12.20' } + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: false + + /forwarded@0.2.0: + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, + } + engines: { node: '>= 0.6' } + + /fresh@0.5.2: + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: '>= 0.6' } + + /fs-constants@1.0.0: + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } + dev: true + + /fs-extra@10.1.0: + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: '>=12' } + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass@2.1.0: + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /fs-minipass@3.0.3: + resolution: + { + integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + minipass: 7.0.4 + 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 + + /generic-names@4.0.0: + resolution: + { + integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==, + } + dependencies: + loader-utils: 3.2.1 + dev: true + + /gensync@1.0.0-beta.2: + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: '>=6.9.0' } + dev: true + + /get-caller-file@2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } + 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-nonce@1.0.1: + resolution: + { + integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, + } + engines: { node: '>=6' } + dev: false + + /get-port@5.1.1: + resolution: + { + integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==, + } + engines: { node: '>=8' } + + /get-stream@6.0.1: + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: '>=10' } + 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 + + /get-tsconfig@4.7.2: + resolution: + { + integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, + } + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /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@10.3.10: + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: '>=16 || 14 >=14.17' } + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.1.6: + resolution: + { + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, + } + 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 + + /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.23.0: + resolution: + { + integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==, + } + 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.1 + ignore: 5.2.4 + 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 + + /graphql-config@5.0.3(graphql@16.8.1)(typescript@5.2.2): + resolution: + { + integrity: sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==, + } + engines: { node: '>= 16.0.0' } + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + dependencies: + '@graphql-tools/graphql-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/json-file-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/load': 8.0.0(graphql@16.8.1) + '@graphql-tools/merge': 9.0.0(graphql@16.8.1) + '@graphql-tools/url-loader': 8.0.0(graphql@16.8.1) + '@graphql-tools/utils': 10.0.7(graphql@16.8.1) + cosmiconfig: 8.3.6(typescript@5.2.2) + graphql: 16.8.1 + jiti: 1.20.0 + minimatch: 4.2.3 + string-env-interpolation: 1.0.1 + tslib: 2.6.2 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - encoding + - typescript + - utf-8-validate + dev: true + + /graphql-request@6.1.0(graphql@16.8.1): + resolution: + { + integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==, + } + peerDependencies: + graphql: 14 - 16 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-fetch: 3.1.8 + graphql: 16.8.1 + transitivePeerDependencies: + - encoding + dev: true + + /graphql-tag@2.12.6(graphql@16.8.1): + resolution: + { + integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==, + } + engines: { node: '>=10' } + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + dependencies: + graphql: 16.8.1 + tslib: 2.6.2 + dev: true + + /graphql-ws@5.14.2(graphql@16.8.1): + resolution: + { + integrity: sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w==, + } + engines: { node: '>=10' } + peerDependencies: + graphql: '>=0.11 <=16' + dependencies: + graphql: 16.8.1 + dev: true + + /graphql@16.8.1: + resolution: + { + integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + dev: true + + /gunzip-maybe@1.4.2: + resolution: + { + integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==, + } + hasBin: true + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + 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 + + /has@1.0.4: + resolution: + { + integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==, + } + engines: { node: '>= 0.4.0' } + dev: true + + /hasown@2.0.0: + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: { node: '>= 0.4' } + dependencies: + function-bind: 1.1.2 + + /hast-util-to-estree@2.3.3: + resolution: + { + integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, + } + dependencies: + '@types/estree': 1.0.3 + '@types/estree-jsx': 1.0.2 + '@types/hast': 2.3.7 + '@types/unist': 2.0.9 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.3.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /hast-util-whitespace@2.0.1: + resolution: + { + integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, + } + dev: true + + /header-case@2.0.4: + resolution: + { + integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==, + } + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: true + + /hosted-git-info@6.1.1: + resolution: + { + integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + lru-cache: 7.18.3 + dev: true + + /http-errors@2.0.0: + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: '>= 0.8' } + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-proxy-agent@7.0.0: + resolution: + { + integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==, + } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@7.0.2: + resolution: + { + integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==, + } + engines: { node: '>= 14' } + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: '>=10.17.0' } + dev: true + + /humanize-ms@1.2.1: + resolution: + { + integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, + } + dependencies: + ms: 2.1.3 + dev: false + + /iconv-lite@0.4.24: + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + + /icss-utils@5.1.0(postcss@8.4.31): + resolution: + { + integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 + dev: true + + /ieee754@1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } + dev: true + + /ignore@5.2.4: + resolution: + { + integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, + } + engines: { node: '>= 4' } + dev: true + + /immutable@3.7.6: + resolution: + { + integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==, + } + engines: { node: '>=0.8.0' } + 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 + + /import-from@4.0.0: + resolution: + { + integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==, + } + engines: { node: '>=12.2' } + dev: true + + /imurmurhash@0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: '>=0.8.19' } + dev: true + + /indent-string@4.0.0: + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: '>=8' } + 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==, + } + + /inline-style-parser@0.1.1: + resolution: + { + integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, + } + dev: true + + /inquirer@8.2.6: + resolution: + { + integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, + } + engines: { node: '>=12.0.0' } + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + dev: true + + /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 + + /invariant@2.2.4: + resolution: + { + integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, + } + dependencies: + loose-envify: 1.4.0 + + /ipaddr.js@1.9.1: + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, + } + engines: { node: '>= 0.10' } + + /is-absolute@1.0.0: + resolution: + { + integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-alphabetical@2.0.1: + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } + dev: true + + /is-alphanumerical@2.0.1: + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: true + + /is-arguments@1.1.1: + resolution: + { + integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + + /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.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + dev: true + + /is-async-function@2.0.0: + resolution: + { + integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /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 + + /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-buffer@1.1.6: + resolution: + { + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, + } + dev: false + + /is-buffer@2.0.5: + resolution: + { + integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, + } + engines: { node: '>=4' } + dev: true + + /is-callable@1.2.7: + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: '>= 0.4' } + + /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-decimal@2.0.1: + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } + dev: true + + /is-deflate@1.0.0: + resolution: + { + integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==, + } + dev: true + + /is-extglob@2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } + + /is-finalizationregistry@1.0.2: + resolution: + { + integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, + } + dependencies: + call-bind: 1.0.5 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: '>=8' } + dev: true + + /is-generator-function@1.0.10: + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + + /is-glob@4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + + /is-gzip@1.0.0: + resolution: + { + integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /is-hexadecimal@2.0.1: + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } + dev: true + + /is-interactive@1.0.0: + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + } + engines: { node: '>=8' } + dev: true + + /is-lower-case@2.0.2: + resolution: + { + integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /is-map@2.0.2: + resolution: + { + integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, + } + 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-path-inside@3.0.3: + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: '>=8' } + dev: true + + /is-plain-obj@3.0.0: + resolution: + { + integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==, + } + engines: { node: '>=10' } + dev: true + + /is-plain-obj@4.1.0: + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: '>=12' } + dev: true + + /is-reference@3.0.2: + resolution: + { + integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==, + } + dependencies: + '@types/estree': 1.0.3 + 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-relative@1.0.0: + resolution: + { + integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: + { + integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, + } + 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' } + dev: true + + /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 + + /is-unc-path@1.0.0: + resolution: + { + integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==, + } + engines: { node: '>=0.10.0' } + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: '>=10' } + dev: true + + /is-upper-case@2.0.2: + resolution: + { + integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /is-weakmap@2.0.1: + resolution: + { + integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, + } + dev: true + + /is-weakref@1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + dependencies: + call-bind: 1.0.5 + dev: true + + /is-weakset@2.0.2: + resolution: + { + integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, + } + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /is-windows@1.0.2: + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /isarray@1.0.0: + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } + dev: true + + /isarray@2.0.5: + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } + dev: true + + /isbot@3.7.0: + resolution: + { + integrity: sha512-9BcjlI89966BqWJmYdTnRub85sit931MyCthSIPtgoOsTjoW7A2MVa09HzPpYE2+G4vyAxfDvR0AbUGV0FInQg==, + } + engines: { node: '>=12' } + dev: false + + /isexe@2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + dev: true + + /isomorphic-ws@5.0.0(ws@8.14.2): + resolution: + { + integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==, + } + peerDependencies: + ws: '*' + dependencies: + ws: 8.14.2 + dev: true + + /isomorphic.js@0.2.5: + resolution: + { + integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==, + } + dev: false + + /iterator.prototype@1.1.2: + resolution: + { + integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, + } + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: '>=14' } + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /javascript-stringify@2.1.0: + resolution: + { + integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==, + } + dev: true + + /jiti@1.20.0: + resolution: + { + integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==, + } + hasBin: true + dev: true + + /jose@4.15.4: + resolution: + { + integrity: sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==, + } + + /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@2.5.2: + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: '>=4' } + hasBin: true + dev: true + + /jsesc@3.0.2: + resolution: + { + integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, + } + engines: { node: '>=6' } + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + dev: true + + /json-parse-even-better-errors@3.0.0: + resolution: + { + integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /json-schema-traverse@0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } + dev: true + + /json-stable-stringify@1.0.2: + resolution: + { + integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==, + } + dependencies: + jsonify: 0.0.1 + dev: true + + /json-to-graphql-query@2.2.5: + resolution: + { + integrity: sha512-5Nom9inkIMrtY992LMBBG1Zaekrc10JaRhyZgprwHBVMDtRgllTvzl0oBbg13wJsVZoSoFNNMaeIVQs0P04vsA==, + } + dev: false + + /json-to-pretty-yaml@1.2.2: + resolution: + { + integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==, + } + engines: { node: '>= 0.2.0' } + dependencies: + remedial: 1.0.8 + remove-trailing-spaces: 1.0.8 + dev: true + + /json5@1.0.2: + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: '>=6' } + hasBin: true + dev: true + + /jsonc-parser@3.2.0: + resolution: + { + integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, + } + dev: true + + /jsonfile@6.1.0: + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonify@0.0.1: + resolution: + { + integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==, + } + dev: true + + /jsx-ast-utils@3.3.5: + resolution: + { + integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, + } + engines: { node: '>=4.0' } + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } + dependencies: + json-buffer: 3.0.1 + dev: true + + /kleur@4.1.5: + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: '>=6' } + dev: true + + /language-subtag-registry@0.3.22: + resolution: + { + integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, + } + dev: true + + /language-tags@1.0.5: + resolution: + { + integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==, + } + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /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 + + /lexical@0.10.0: + resolution: + { + integrity: sha512-/lYJVpjQPOzFVfQWhnxRSP6HHBywiltzx9/pWRsByzXDZL+FTty3yjTsSFiCWy4PoVZaXqH8gYBe9dkxZK7+Hg==, + } + dev: false + + /lib0@0.2.87: + resolution: + { + integrity: sha512-TbB63XJixvNToW2IHWAFsCJj9tVnajmwjE14p69i51Rx8byOQd2IP4ourE8v4d7vhyO++nVm1sQk3ePslfbucg==, + } + engines: { node: '>=16' } + hasBin: true + dependencies: + isomorphic.js: 0.2.5 + dev: false + + /lilconfig@2.1.0: + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: '>=10' } + dev: true + + /lines-and-columns@1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + dev: true + + /listr2@4.0.5: + resolution: + { + integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==, + } + engines: { node: '>=12' } + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /loader-utils@3.2.1: + resolution: + { + integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==, + } + engines: { node: '>= 12.13.0' } + dev: true + + /local-pkg@0.4.3: + resolution: + { + integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, + } + engines: { node: '>=14' } + dev: true + + /locate-path@5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: '>=10' } + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.camelcase@4.3.0: + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } + 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@4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: true + + /log-symbols@4.1.0: + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: '>=10' } + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@4.0.0: + resolution: + { + integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, + } + engines: { node: '>=10' } + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /longest-streak@3.1.0: + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } + dev: true + + /loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case-first@2.0.2: + resolution: + { + integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /lower-case@2.0.2: + resolution: + { + integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@10.0.1: + resolution: + { + integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==, + } + engines: { node: 14 || >=16.14 } + dev: true + + /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 + dev: true + + /lru-cache@7.18.3: + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: '>=12' } + dev: true + + /lz-string@1.5.0: + resolution: + { + integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, + } + hasBin: true + dev: true + + /map-cache@0.2.2: + resolution: + { + integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /markdown-extensions@1.1.1: + resolution: + { + integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==, + } + engines: { node: '>=0.10.0' } + dev: true + + /md5@2.3.0: + resolution: + { + integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, + } + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: false + + /mdast-util-definitions@5.1.2: + resolution: + { + integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==, + } + dependencies: + '@types/mdast': 3.0.14 + '@types/unist': 2.0.9 + unist-util-visit: 4.1.2 + dev: true + + /mdast-util-from-markdown@1.3.1: + resolution: + { + integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, + } + dependencies: + '@types/mdast': 3.0.14 + '@types/unist': 2.0.9 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-frontmatter@1.0.1: + resolution: + { + integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==, + } + dependencies: + '@types/mdast': 3.0.14 + mdast-util-to-markdown: 1.5.0 + micromark-extension-frontmatter: 1.1.1 + dev: true + + /mdast-util-mdx-expression@1.3.2: + resolution: + { + integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx-jsx@2.1.4: + resolution: + { + integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 + '@types/unist': 2.0.9 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdx@2.0.1: + resolution: + { + integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==, + } + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-mdxjs-esm@1.3.1: + resolution: + { + integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==, + } + dependencies: + '@types/estree-jsx': 1.0.2 + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-phrasing@3.0.1: + resolution: + { + integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, + } + dependencies: + '@types/mdast': 3.0.14 + unist-util-is: 5.2.1 + dev: true + + /mdast-util-to-hast@12.3.0: + resolution: + { + integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==, + } + dependencies: + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: true + + /mdast-util-to-markdown@1.5.0: + resolution: + { + integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==, + } + dependencies: + '@types/mdast': 3.0.14 + '@types/unist': 2.0.9 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: true + + /mdast-util-to-string@3.2.0: + resolution: + { + integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, + } + dependencies: + '@types/mdast': 3.0.14 + dev: true + + /media-query-parser@2.0.2: + resolution: + { + integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==, + } + dependencies: + '@babel/runtime': 7.23.2 + dev: true + + /media-typer@0.3.0: + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, + } + engines: { node: '>= 0.6' } + + /merge-descriptors@1.0.1: + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, + } + + /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 + + /meros@1.3.0: + resolution: + { + integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==, + } + engines: { node: '>=13' } + peerDependencies: + '@types/node': '>=13' + peerDependenciesMeta: + '@types/node': + optional: true + dev: true + + /methods@1.1.2: + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, + } + engines: { node: '>= 0.6' } + + /micromark-core-commonmark@1.1.0: + resolution: + { + integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, + } + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-extension-frontmatter@1.1.1: + resolution: + { + integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==, + } + dependencies: + fault: 2.0.1 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-extension-mdx-expression@1.0.8: + resolution: + { + integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==, + } + dependencies: + '@types/estree': 1.0.3 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-extension-mdx-jsx@1.0.5: + resolution: + { + integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==, + } + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.3 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-extension-mdx-md@1.0.1: + resolution: + { + integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==, + } + dependencies: + micromark-util-types: 1.1.0 + dev: true + + /micromark-extension-mdxjs-esm@1.0.5: + resolution: + { + integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==, + } + dependencies: + '@types/estree': 1.0.3 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-extension-mdxjs@1.0.1: + resolution: + { + integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==, + } + dependencies: + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-destination@1.1.0: + resolution: + { + integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-label@1.1.0: + resolution: + { + integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-factory-mdx-expression@1.0.9: + resolution: + { + integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==, + } + dependencies: + '@types/estree': 1.0.3 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-factory-space@1.1.0: + resolution: + { + integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-title@1.1.0: + resolution: + { + integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, + } + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-whitespace@1.1.0: + resolution: + { + integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, + } + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-character@1.2.0: + resolution: + { + integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, + } + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-chunked@1.1.0: + resolution: + { + integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-classify-character@1.1.0: + resolution: + { + integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-combine-extensions@1.1.0: + resolution: + { + integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, + } + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: + { + integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-decode-string@1.1.0: + resolution: + { + integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, + } + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-encode@1.1.0: + resolution: + { + integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, + } + dev: true + + /micromark-util-events-to-acorn@1.2.3: + resolution: + { + integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==, + } + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.3 + '@types/unist': 2.0.9 + estree-util-visit: 1.2.1 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: true + + /micromark-util-html-tag-name@1.2.0: + resolution: + { + integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, + } + dev: true + + /micromark-util-normalize-identifier@1.1.0: + resolution: + { + integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, + } + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-resolve-all@1.1.0: + resolution: + { + integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, + } + dependencies: + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-sanitize-uri@1.2.0: + resolution: + { + integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, + } + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-subtokenize@1.1.0: + resolution: + { + integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, + } + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-util-symbol@1.1.0: + resolution: + { + integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, + } + dev: true + + /micromark-util-types@1.1.0: + resolution: + { + integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, + } + dev: true + + /micromark@3.2.0: + resolution: + { + integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, + } + dependencies: + '@types/debug': 4.1.10 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /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' } + + /mime-types@2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: '>=4' } + hasBin: true + + /mimic-fn@2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: '>=6' } + dev: true + + /minimatch@3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@4.2.3: + resolution: + { + integrity: sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==, + } + engines: { node: '>=10' } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: + { + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, + } + engines: { node: '>=16 || 14 >=14.17' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } + dev: true + + /minipass-collect@1.0.2: + resolution: + { + integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-flush@1.0.5: + resolution: + { + integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: + { + integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==, + } + engines: { node: '>=8' } + dependencies: + minipass: 3.3.6 + dev: true + + /minipass@3.3.6: + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: '>=8' } + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: '>=8' } + dev: true + + /minipass@7.0.4: + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: '>=16 || 14 >=14.17' } + dev: true + + /minizlib@2.1.2: + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp-classic@0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } + dev: true + + /mkdirp@1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: '>=10' } + hasBin: true + dev: true + + /mlly@1.4.2: + resolution: + { + integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==, + } + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.1 + dev: true + + /morgan@1.10.0: + resolution: + { + integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color + + /mri@1.2.0: + resolution: + { + integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, + } + engines: { node: '>=4' } + dev: true + + /mrmime@1.0.1: + resolution: + { + integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, + } + engines: { node: '>=10' } + + /ms@2.0.0: + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } + + /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==, + } + + /mute-stream@0.0.8: + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + } + dev: true + + /mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.6: + resolution: + { + integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /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' } + + /no-case@3.0.4: + resolution: + { + integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, + } + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-domexception@1.0.0: + resolution: + { + integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, + } + engines: { node: '>=10.5.0' } + dev: false + + /node-fetch@2.7.0: + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-int64@0.4.0: + resolution: + { + integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, + } + dev: true + + /node-releases@2.0.13: + resolution: + { + integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, + } + dev: true + + /normalize-package-data@5.0.0: + resolution: + { + integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + hosted-git-info: 6.1.1 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@2.1.1: + resolution: + { + integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==, + } + engines: { node: '>=0.10.0' } + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path@3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: '>=0.10.0' } + + /npm-install-checks@6.3.0: + resolution: + { + integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + semver: 7.5.4 + dev: true + + /npm-normalize-package-bin@3.0.1: + resolution: + { + integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /npm-package-arg@10.1.0: + resolution: + { + integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + hosted-git-info: 6.1.1 + proc-log: 3.0.0 + semver: 7.5.4 + validate-npm-package-name: 5.0.0 + dev: true + + /npm-pick-manifest@8.0.2: + resolution: + { + integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 10.1.0 + semver: 7.5.4 + dev: true + + /npm-run-path@4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: '>=8' } + dependencies: + path-key: 3.1.1 + dev: true + + /nullthrows@1.1.1: + resolution: + { + integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==, + } + dev: true + + /object-assign@4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /object-hash@3.0.0: + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: '>= 6' } + dev: true + + /object-inspect@1.13.1: + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, + } + + /object-is@1.1.5: + resolution: + { + integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + dev: true + + /object-keys@1.1.1: + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: '>= 0.4' } + dev: true + + /object.assign@4.1.4: + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + 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 + + /object.entries@1.1.7: + resolution: + { + integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: + { + integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.groupby@1.0.1: + resolution: + { + integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, + } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: true + + /object.hasown@1.1.3: + resolution: + { + integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, + } + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.values@1.1.7: + resolution: + { + integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /on-finished@2.3.0: + resolution: + { + integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, + } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + + /on-finished@2.4.1: + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + + /on-headers@1.0.2: + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, + } + engines: { node: '>= 0.8' } + + /once@1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: '>=6' } + dependencies: + mimic-fn: 2.1.0 + dev: true + + /openai@4.12.4: + resolution: + { + integrity: sha512-oPNVJkpgxDUKF6WGGdHEZh5m/kjmYxS2Y1q7YVFCkvKUGthb8OGYRGCFBRPq5CQJezifzABTZRlVYnXLd6L4vQ==, + } + hasBin: true + dependencies: + '@types/node': 18.18.6 + '@types/node-fetch': 2.6.7 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + digest-fetch: 1.3.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.2.1 + transitivePeerDependencies: + - encoding + 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 + + /ora@5.4.1: + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + } + engines: { node: '>=10' } + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.1 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: '>=0.10.0' } + dev: true + + /outdent@0.8.0: + resolution: + { + integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==, + } + dev: true + + /p-limit@2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.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@4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } + dependencies: + p-limit: 2.3.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 + + /p-map@4.0.0: + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: '>=10' } + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try@2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } + dev: true + + /pako@0.2.9: + resolution: + { + integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==, + } + dev: true + + /param-case@3.0.4: + resolution: + { + integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + 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 + + /parse-entities@4.0.1: + resolution: + { + integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, + } + dependencies: + '@types/unist': 2.0.9 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: true + + /parse-filepath@1.0.2: + resolution: + { + integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==, + } + engines: { node: '>=0.8' } + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-json@5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-ms@2.1.0: + resolution: + { + integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==, + } + engines: { node: '>=6' } + dev: true + + /parseurl@1.3.3: + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: '>= 0.8' } + + /pascal-case@3.1.2: + resolution: + { + integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-case@3.0.4: + resolution: + { + integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /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-root-regex@0.1.2: + resolution: + { + integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /path-root@0.1.1: + resolution: + { + integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==, + } + engines: { node: '>=0.10.0' } + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-scurry@1.10.1: + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: '>=16 || 14 >=14.17' } + dependencies: + lru-cache: 10.0.1 + minipass: 7.0.4 + dev: true + + /path-to-regexp@0.1.7: + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, + } + + /path-type@4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } + dev: true + + /pathe@1.1.1: + resolution: + { + integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==, + } + dev: true + + /peek-stream@1.1.3: + resolution: + { + integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==, + } + dependencies: + buffer-from: 1.1.2 + duplexify: 3.7.1 + through2: 2.0.5 + dev: true + + /periscopic@3.1.0: + resolution: + { + integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==, + } + dependencies: + '@types/estree': 1.0.3 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: true + + /picocolors@1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: true + + /picomatch@2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } + + /pidtree@0.6.0: + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: '>=0.10' } + hasBin: true + dev: true + + /pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: '>=0.10.0' } + dev: true + + /pirates@4.0.6: + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: '>= 6' } + dev: true + + /pkg-types@1.0.3: + resolution: + { + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, + } + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + + /postcss-discard-duplicates@5.1.0(postcss@8.4.31): + resolution: + { + integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==, + } + engines: { node: ^10 || ^12 || >=14.0 } + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-import@15.1.0(postcss@8.4.31): + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.31): + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.31 + dev: true + + /postcss-load-config@4.0.1(postcss@8.4.31): + resolution: + { + integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, + } + engines: { node: '>= 14' } + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.31 + yaml: 2.3.3 + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + resolution: + { + integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: + { + integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.0.0(postcss@8.4.31): + resolution: + { + integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.31): + resolution: + { + integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, + } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + dev: true + + /postcss-modules@6.0.0(postcss@8.4.31): + resolution: + { + integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==, + } + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 4.0.0 + icss-utils: 5.1.0(postcss@8.4.31) + lodash.camelcase: 4.3.0 + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) + string-hash: 1.1.3 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.31): + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: '>=12.0' } + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: + { + integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, + } + engines: { node: '>=4' } + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } + dev: true + + /postcss@8.4.31: + resolution: + { + integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: '>= 0.8.0' } + dev: true + + /prettier@2.8.8: + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, + } + engines: { node: '>=10.13.0' } + hasBin: true + dev: true + + /pretty-format@27.5.1: + resolution: + { + integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, + } + engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /pretty-ms@7.0.1: + resolution: + { + integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==, + } + engines: { node: '>=10' } + dependencies: + parse-ms: 2.1.0 + dev: true + + /prismjs@1.29.0: + resolution: + { + integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, + } + engines: { node: '>=6' } + dev: false + + /proc-log@3.0.0: + resolution: + { + integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dev: true + + /process-nextick-args@2.0.1: + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } + dev: true + + /promise-inflight@1.0.1: + resolution: + { + integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, + } + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /promise-retry@2.0.1: + resolution: + { + integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==, + } + engines: { node: '>=10' } + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /promise@7.3.1: + resolution: + { + integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, + } + dependencies: + asap: 2.0.6 + dev: true + + /prop-types@15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /property-information@6.3.0: + resolution: + { + integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==, + } + 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 + + /pump@2.0.1: + resolution: + { + integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pump@3.0.0: + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /pumpify@1.5.1: + resolution: + { + integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, + } + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + dev: true + + /punycode@1.4.1: + resolution: + { + integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, + } + dev: true + + /punycode@2.3.0: + resolution: + { + integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, + } + engines: { node: '>=6' } + dev: true + + /pvtsutils@1.3.5: + resolution: + { + integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /pvutils@1.1.3: + resolution: + { + integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==, + } + engines: { node: '>=6.0.0' } + dev: true + + /qs@6.11.0: + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, + } + engines: { node: '>=0.6' } + dependencies: + side-channel: 1.0.4 + + /queue-microtask@1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + dev: true + + /range-parser@1.2.1: + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: '>= 0.6' } + + /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 + + /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-error-boundary@3.1.4(react@18.2.0): + resolution: + { + integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, + } + engines: { node: '>=10', npm: '>=6' } + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /react-is@16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: true + + /react-is@17.0.2: + resolution: + { + integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, + } + dev: true + + /react-refresh@0.14.0: + resolution: + { + integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /react-remove-scroll-bar@2.3.4(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0) + tslib: 2.6.2 + dev: false + + /react-remove-scroll@2.5.4(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.31)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.0(@types/react@18.2.31)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.31)(react@18.2.0) + dev: false + + /react-remove-scroll@2.5.5(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.31)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.31)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.0(@types/react@18.2.31)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.31)(react@18.2.0) + dev: false + + /react-router-dom@6.17.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-qWHkkbXQX+6li0COUUPKAUkxjNNqPJuiBd27dVwQGDNsuFBdMbrS6UZ0CLYc4CsbdLYTckn4oB4tGDuPZpPhaQ==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.10.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.17.0(react@18.2.0) + dev: false + + /react-router@6.17.0(react@18.2.0): + resolution: + { + integrity: sha512-YJR3OTJzi3zhqeJYADHANCGPUu9J+6fT5GLv82UWRGSxu6oJYCKVmxUcaBQuGm9udpWmPsvpme/CdHumqgsoaA==, + } + engines: { node: '>=14.0.0' } + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.10.0 + react: 18.2.0 + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-textarea-autosize@8.5.3(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==, + } + engines: { node: '>=10' } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + use-composed-ref: 1.3.0(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.31)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /react@18.2.0: + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, + } + engines: { node: '>=0.10.0' } + dependencies: + loose-envify: 1.4.0 + + /read-cache@1.0.0: + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } + dependencies: + pify: 2.3.0 + dev: true + + /readable-stream@2.3.8: + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /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: true + + /readdirp@3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + + /reflect.getprototypeof@1.0.4: + resolution: + { + integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /regenerator-runtime@0.14.0: + resolution: + { + integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, + } + + /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 + + /regexpp@3.2.0: + resolution: + { + integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, + } + engines: { node: '>=8' } + dev: true + + /relay-runtime@12.0.0: + resolution: + { + integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==, + } + dependencies: + '@babel/runtime': 7.23.2 + fbjs: 3.0.5 + invariant: 2.2.4 + transitivePeerDependencies: + - encoding + dev: true + + /remark-frontmatter@4.0.1: + resolution: + { + integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, + } + dependencies: + '@types/mdast': 3.0.14 + mdast-util-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.1 + unified: 10.1.2 + dev: true + + /remark-mdx-frontmatter@1.1.1: + resolution: + { + integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==, + } + engines: { node: '>=12.2.0' } + dependencies: + estree-util-is-identifier-name: 1.1.0 + estree-util-value-to-estree: 1.3.0 + js-yaml: 4.1.0 + toml: 3.0.0 + dev: true + + /remark-mdx@2.3.0: + resolution: + { + integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==, + } + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-parse@10.0.2: + resolution: + { + integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==, + } + dependencies: + '@types/mdast': 3.0.14 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /remark-rehype@10.1.0: + resolution: + { + integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, + } + dependencies: + '@types/hast': 2.3.7 + '@types/mdast': 3.0.14 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: true + + /remedial@1.0.8: + resolution: + { + integrity: sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==, + } + dev: true + + /remove-trailing-separator@1.1.0: + resolution: + { + integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==, + } + dev: true + + /remove-trailing-spaces@1.0.8: + resolution: + { + integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==, + } + dev: true + + /require-directory@2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: '>=0.10.0' } + dev: true + + /require-like@0.1.2: + resolution: + { + integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==, + } + dev: true + + /require-main-filename@2.0.0: + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, + } + dev: true + + /requireindex@1.2.0: + resolution: + { + integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==, + } + engines: { node: '>=0.10.5' } + dev: true + + /resolve-from@4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } + dev: true + + /resolve-from@5.0.0: + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } + dev: true + + /resolve.exports@2.0.2: + resolution: + { + integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, + } + engines: { node: '>=10' } + dev: true + + /resolve@1.22.8: + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.5: + resolution: + { + integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: '>=8' } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /retry@0.12.0: + resolution: + { + integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==, + } + engines: { node: '>= 4' } + dev: true + + /reusify@1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + dev: true + + /rfdc@1.3.0: + resolution: + { + integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, + } + dev: true + + /rimraf@3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } + hasBin: true + dependencies: + glob: 7.2.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 + dev: true + + /run-async@2.4.1: + resolution: + { + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, + } + engines: { node: '>=0.12.0' } + dev: true + + /run-parallel@1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: + { + integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /sade@1.8.1: + resolution: + { + integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, + } + engines: { node: '>=6' } + dependencies: + mri: 1.2.0 + 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.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } + + /safe-buffer@5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + + /safe-regex-test@1.0.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 + + /safer-buffer@2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } + + /scheduler@0.23.0: + resolution: + { + integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==, + } + dependencies: + loose-envify: 1.4.0 + dev: false + + /scuid@1.1.0: + resolution: + { + integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==, + } + dev: true + + /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 + dev: true + + /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 + + /sentence-case@3.0.4: + resolution: + { + integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, + } + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /serve-static@1.15.0: + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, + } + engines: { node: '>= 0.8.0' } + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-blocking@2.0.0: + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, + } + dev: true + + /set-cookie-parser@2.6.0: + resolution: + { + integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==, + } + + /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 + + /setimmediate@1.0.5: + resolution: + { + integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, + } + dev: true + + /setprototypeof@1.2.0: + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } + + /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 + + /shell-quote@1.8.1: + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, + } + 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 + + /signal-exit@3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + dev: true + + /signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } + dev: true + + /signedsource@1.0.0: + resolution: + { + integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==, + } + dev: true + + /slash@3.0.0: + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: '>=8' } + dev: true + + /slice-ansi@3.0.0: + resolution: + { + integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /snake-case@3.0.4: + resolution: + { + integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, + } + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /sonner@0.6.2(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-bh4FWhYoNN481ZIW94W4e0kSLBTMGislYg2YXvDS1px1AJJz4erQe9jHV8s5pS1VMVDgfh3CslNSFLaU6Ldrnw==, + } + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /source-map-js@1.0.2: + resolution: + { + integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, + } + engines: { node: '>=0.10.0' } + dev: true + + /source-map-support@0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map@0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } + + /source-map@0.7.4: + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: '>= 8' } + + /space-separated-tokens@2.0.2: + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } + dev: true + + /spdx-correct@3.2.0: + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-exceptions@2.3.0: + resolution: + { + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, + } + dev: true + + /spdx-expression-parse@3.0.1: + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-license-ids@3.0.16: + resolution: + { + integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==, + } + dev: true + + /sponge-case@1.0.1: + resolution: + { + integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /ssri@10.0.5: + resolution: + { + integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + minipass: 7.0.4 + dev: true + + /statuses@2.0.1: + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: '>= 0.8' } + + /stop-iteration-iterator@1.0.0: + resolution: + { + integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, + } + engines: { node: '>= 0.4' } + dependencies: + internal-slot: 1.0.6 + dev: true + + /stream-shift@1.0.1: + resolution: + { + integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==, + } + dev: true + + /stream-slice@0.1.2: + resolution: + { + integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==, + } + + /streamsearch@1.1.0: + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: '>=10.0.0' } + dev: true + + /string-env-interpolation@1.0.1: + resolution: + { + integrity: sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==, + } + dev: true + + /string-hash@1.1.3: + resolution: + { + integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==, + } + dev: true + + /string-width@4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /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.1.1: + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@4.0.3: + resolution: + { + integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==, + } + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.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-ansi@7.1.0: + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: '>=4' } + dev: true + + /strip-final-newline@2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: '>=6' } + dev: true + + /strip-json-comments@3.1.1: + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: '>=8' } + dev: true + + /style-to-object@0.4.4: + resolution: + { + integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, + } + dependencies: + inline-style-parser: 0.1.1 + dev: true + + /sucrase@3.34.0: + resolution: + { + integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==, + } + engines: { node: '>=8' } + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + 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 + + /swap-case@2.0.2: + resolution: + { + integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /tailwindcss@3.3.3: + resolution: + { + integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==, + } + engines: { node: '>=14.0.0' } + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-import: 15.1.0(postcss@8.4.31) + postcss-js: 4.0.1(postcss@8.4.31) + postcss-load-config: 4.0.1(postcss@8.4.31) + postcss-nested: 6.0.1(postcss@8.4.31) + postcss-selector-parser: 6.0.13 + resolve: 1.22.8 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: true + + /tapable@2.2.1: + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, + } + engines: { node: '>=6' } + 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: true + + /tar-stream@2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: '>=6' } + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /tar@6.2.0: + resolution: + { + integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==, + } + engines: { node: '>=10' } + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /text-table@0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } + dev: true + + /thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: '>=0.8' } + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } + dependencies: + any-promise: 1.3.0 + dev: true + + /through2@2.0.5: + resolution: + { + integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, + } + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through@2.3.8: + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } + dev: true + + /tiny-invariant@1.3.1: + resolution: + { + integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==, + } + dev: false + + /title-case@3.0.3: + resolution: + { + integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /tmp@0.0.33: + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: '>=0.6.0' } + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /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' } + + /toml@3.0.0: + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } + dev: true + + /tr46@0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + + /trim-lines@3.0.1: + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } + dev: true + + /trough@2.1.0: + resolution: + { + integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, + } + dev: true + + /ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + dev: true + + /ts-log@2.2.5: + resolution: + { + integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==, + } + dev: true + + /tsconfig-paths@3.14.2: + resolution: + { + integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==, + } + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@4.2.0: + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + } + engines: { node: '>=6' } + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } + dev: true + + /tslib@2.5.3: + resolution: + { + integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==, + } + dev: true + + /tslib@2.6.2: + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, + } + + /tsutils@3.21.0(typescript@5.2.2): + 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.2.2 + dev: true + + /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.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: '>=10' } + dev: true + + /type-fest@0.21.3: + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: '>=10' } + dev: true + + /type-is@1.6.18: + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, + } + engines: { node: '>= 0.6' } + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typed-array-buffer@1.0.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@4.9.5: + resolution: + { + integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, + } + engines: { node: '>=4.2.0' } + hasBin: true + dev: false + + /typescript@5.2.2: + resolution: + { + integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, + } + engines: { node: '>=14.17' } + hasBin: true + + /ua-parser-js@1.0.36: + resolution: + { + integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==, + } + dev: true + + /ufo@1.3.1: + resolution: + { + integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==, + } + 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 + + /unc-path-regex@0.1.2: + resolution: + { + integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /undici-types@5.25.3: + resolution: + { + integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==, + } + dev: true + + /unified@10.1.2: + resolution: + { + integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, + } + dependencies: + '@types/unist': 2.0.9 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: true + + /unique-filename@3.0.0: + resolution: + { + integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + unique-slug: 4.0.0 + dev: true + + /unique-slug@4.0.0: + resolution: + { + integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unist-util-generated@2.0.1: + resolution: + { + integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, + } + dev: true + + /unist-util-is@5.2.1: + resolution: + { + integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /unist-util-position-from-estree@1.1.2: + resolution: + { + integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /unist-util-position@4.0.4: + resolution: + { + integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /unist-util-remove-position@4.0.2: + resolution: + { + integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==, + } + dependencies: + '@types/unist': 2.0.9 + unist-util-visit: 4.1.2 + dev: true + + /unist-util-stringify-position@3.0.3: + resolution: + { + integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, + } + dependencies: + '@types/unist': 2.0.9 + dev: true + + /unist-util-visit-parents@5.1.3: + resolution: + { + integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, + } + dependencies: + '@types/unist': 2.0.9 + unist-util-is: 5.2.1 + dev: true + + /unist-util-visit@4.1.2: + resolution: + { + integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, + } + dependencies: + '@types/unist': 2.0.9 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: true + + /universalify@2.0.0: + resolution: + { + integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, + } + engines: { node: '>= 10.0.0' } + dev: true + + /unixify@1.0.0: + resolution: + { + integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==, + } + engines: { node: '>=0.10.0' } + dependencies: + normalize-path: 2.1.1 + dev: true + + /unpipe@1.0.0: + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, + } + engines: { node: '>= 0.8' } + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /upper-case-first@2.0.2: + resolution: + { + integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /upper-case@2.0.2: + resolution: + { + integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==, + } + dependencies: + tslib: 2.6.2 + dev: true + + /uri-js@4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + dependencies: + punycode: 2.3.0 + dev: true + + /urlpattern-polyfill@8.0.2: + resolution: + { + integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==, + } + dev: true + + /urlpattern-polyfill@9.0.0: + resolution: + { + integrity: sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==, + } + dev: true + + /use-callback-ref@1.3.0(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /use-composed-ref@1.3.0(react@18.2.0): + resolution: + { + integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use-debounce@8.0.4(react@18.2.0): + resolution: + { + integrity: sha512-fGqsYQzl8kLHF2QpQSgIwgOgJmnh6j5L6SIzQiHdLfwp3q1egUL3btq5Bg2SJysH6A0ILLgT2IqXZKoNJr0nFw==, + } + engines: { node: '>= 10.0.0' } + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + dev: false + + /use-latest@1.2.1(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==, + } + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.31)(react@18.2.0) + dev: false + + /use-sidecar@1.1.2(@types/react@18.2.31)(react@18.2.0): + resolution: + { + integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==, + } + engines: { node: '>=10' } + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.31 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /util-deprecate@1.0.2: + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } + dev: true + + /util@0.12.5: + resolution: + { + integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, + } + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.13 + + /utils-merge@1.0.1: + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, + } + engines: { node: '>= 0.4.0' } + + /uvu@0.5.6: + resolution: + { + integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, + } + engines: { node: '>=8' } + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: true + + /validate-npm-package-license@3.0.4: + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /validate-npm-package-name@5.0.0: + resolution: + { + integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + dependencies: + builtins: 5.0.1 + dev: true + + /value-or-promise@1.0.12: + resolution: + { + integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==, + } + engines: { node: '>=12' } + dev: true + + /vary@1.1.2: + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: '>= 0.8' } + + /vfile-message@3.1.4: + resolution: + { + integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, + } + dependencies: + '@types/unist': 2.0.9 + unist-util-stringify-position: 3.0.3 + dev: true + + /vfile@5.3.7: + resolution: + { + integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, + } + dependencies: + '@types/unist': 2.0.9 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: true + + /vite-node@0.28.5: + resolution: + { + integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==, + } + engines: { node: '>=v14.16.0' } + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.2 + pathe: 1.1.1 + picocolors: 1.0.0 + source-map: 0.6.1 + source-map-support: 0.5.21 + vite: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@4.5.0: + resolution: + { + integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, + } + 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.31 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /wcwidth@1.0.1: + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } + dependencies: + defaults: 1.0.4 + dev: true + + /web-encoding@1.1.5: + resolution: + { + integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==, + } + dependencies: + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + /web-streams-polyfill@3.2.1: + resolution: + { + integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, + } + engines: { node: '>= 8' } + + /web-streams-polyfill@4.0.0-beta.3: + resolution: + { + integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==, + } + engines: { node: '>= 14' } + dev: false + + /webcrypto-core@1.7.7: + resolution: + { + integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==, + } + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: true + + /webidl-conversions@3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + + /whatwg-url@5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /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-builtin-type@1.1.3: + resolution: + { + integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, + } + engines: { node: '>= 0.4' } + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + + /which-collection@1.0.1: + resolution: + { + integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, + } + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-module@2.0.1: + resolution: + { + integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, + } + dev: 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 + + /which@2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@3.0.1: + resolution: + { + integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + dev: true + + /ws@7.5.9: + resolution: + { + integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==, + } + engines: { node: '>=8.3.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.14.2: + resolution: + { + integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==, + } + 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: true + + /xtend@4.0.2: + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: '>=0.4' } + dev: true + + /y18n@4.0.3: + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, + } + dev: true + + /y18n@5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: '>=10' } + dev: true + + /yallist@3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } + dev: true + + /yallist@4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + dev: true + + /yaml-ast-parser@0.0.43: + resolution: + { + integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==, + } + dev: true + + /yaml@2.3.3: + resolution: + { + integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==, + } + engines: { node: '>= 14' } + dev: true + + /yargs-parser@18.1.3: + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, + } + engines: { node: '>=6' } + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@21.1.1: + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: '>=12' } + dev: true + + /yargs@15.4.1: + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, + } + engines: { node: '>=8' } + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@17.7.2: + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: '>=12' } + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yjs@13.6.8: + resolution: + { + integrity: sha512-ZPq0hpJQb6f59B++Ngg4cKexDJTvfOgeiv0sBc4sUm8CaBWH7OQC4kcCgrqbjJ/B2+6vO49exvTmYfdlPtcjbg==, + } + engines: { node: '>=16.0.0', npm: '>=8.0.0' } + dependencies: + lib0: 0.2.87 + dev: false + + /yocto-queue@0.1.0: + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: '>=10' } + dev: true + + /zod@3.22.4: + resolution: + { + integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==, + } + dev: false + + /zwitch@2.0.4: + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + } + dev: true diff --git a/components/translation-app/public/favicon.ico b/components/translation-app/public/favicon.ico new file mode 100644 index 0000000..eceb74d Binary files /dev/null and b/components/translation-app/public/favicon.ico differ diff --git a/components/translation-app/remix.config.mjs b/components/translation-app/remix.config.mjs new file mode 100644 index 0000000..b217f56 --- /dev/null +++ b/components/translation-app/remix.config.mjs @@ -0,0 +1,10 @@ +/** @type {import('@remix-run/dev').AppConfig} */ +export default { + ignoredRouteFiles: ['**/.*'], + appDirectory: 'src', + tailwind: true, + serverModuleFormat: 'cjs', + // assetsBuildDirectory: "public/build", + // publicPath: "/build/", + // serverBuildPath: "build/index.js", +}; diff --git a/components/translation-app/remix.env.d.ts b/components/translation-app/remix.env.d.ts new file mode 100644 index 0000000..dcf8c45 --- /dev/null +++ b/components/translation-app/remix.env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/components/translation-app/src/__generated__/types.ts b/components/translation-app/src/__generated__/types.ts new file mode 100644 index 0000000..cdbe3d2 --- /dev/null +++ b/components/translation-app/src/__generated__/types.ts @@ -0,0 +1,5380 @@ +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + Date: { input: any; output: any }; + DateTime: { input: any; output: any }; + EmailAddress: { input: any; output: any }; + JSON: { input: any; output: any }; + NonNegativeFloat: { input: any; output: any }; + NonNegativeInt: { input: any; output: any }; + PhoneNumber: { input: any; output: any }; + PositiveInt: { input: any; output: any }; +}; + +export type AcceptedContentType = { + __typename?: 'AcceptedContentType'; + contentType: Scalars['String']['output']; + extensionLabel?: Maybe; +}; + +export type AcceptedContentTypeInput = { + contentType: Scalars['String']['input']; + extensionLabel?: InputMaybe; +}; + +export type AccessToken = { + __typename?: 'AccessToken'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['String']['output']; + lastUsed?: Maybe; + name?: Maybe; + secret?: Maybe; + userId: Scalars['ID']['output']; +}; + +export type AccessTokenMutations = { + __typename?: 'AccessTokenMutations'; + create: AccessToken; + delete: Scalars['Int']['output']; +}; + +export type AccessTokenMutationsCreateArgs = { + input: CreateAccessTokenInput; + userId: Scalars['ID']['input']; +}; + +export type AccessTokenMutationsDeleteArgs = { + id: Scalars['String']['input']; +}; + +export type AddLanguageInput = { + code: Scalars['String']['input']; + name: Scalars['String']['input']; +}; + +export type Address = { + __typename?: 'Address'; + city?: Maybe; + country?: Maybe; + email?: Maybe; + firstName?: Maybe; + id?: Maybe; + lastName?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; + middleName?: Maybe; + phone?: Maybe; + postalCode?: Maybe; + state?: Maybe; + street?: Maybe; + street2?: Maybe; + streetNumber?: Maybe; + type: AddressType; +}; + +export type AddressMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type AddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export enum AddressType { + Billing = 'billing', + Delivery = 'delivery', + Other = 'other', +} + +export type ApiCallMetrics = IObjectMetrics & { + __typename?: 'ApiCallMetrics'; + count: Scalars['Int']['output']; +}; + +export type ApiCallMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type App = { + __typename?: 'App'; + baseUrl: Scalars['String']['output']; + createdAt: Scalars['DateTime']['output']; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + sessionUrl: Scalars['String']['output']; + tenant?: Maybe; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type AppConnection = { + __typename?: 'AppConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type AppConnectionEdge = { + __typename?: 'AppConnectionEdge'; + cursor: Scalars['String']['output']; + node: App; +}; + +export type AppListFilter = { + tenantId: Scalars['ID']['input']; +}; + +export type AppListSortOptions = { + direction?: InputMaybe; + field?: InputMaybe; +}; + +export type AppMutations = { + __typename?: 'AppMutations'; + create: App; + delete: Scalars['Int']['output']; + update: App; +}; + +export type AppMutationsCreateArgs = { + input: CreateAppInput; +}; + +export type AppMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type AppMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateAppInput; + tenantId: Scalars['ID']['input']; +}; + +export type AppQueries = { + __typename?: 'AppQueries'; + get?: Maybe; + getMany: AppConnection; +}; + +export type AppQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type AppQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter: AppListFilter; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; +}; + +export type ArchiveQueries = { + __typename?: 'ArchiveQueries'; + get?: Maybe; + getByNumber?: Maybe; +}; + +export type ArchiveQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type ArchiveQueriesGetByNumberArgs = { + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; + number: Scalars['Int']['input']; + versionLabel?: VersionLabel; +}; + +export type ArchivedItemVersion = { + __typename?: 'ArchivedItemVersion'; + archivedAt: Scalars['DateTime']['output']; + archivedBy: Owner; + id: Scalars['ID']['output']; + item: Item; + name?: Maybe; + number: Scalars['Int']['output']; +}; + +export enum AuthenticationMethod { + AccessTokenPair = 'accessTokenPair', + None = 'none', + StaticToken = 'staticToken', +} + +export enum BandwidthUnit { + Bytes = 'Bytes', + GiB = 'GiB', + KiB = 'KiB', + MiB = 'MiB', +} + +export type BandwidthUsageMetrics = { + __typename?: 'BandwidthUsageMetrics'; + total: Scalars['Float']['output']; +}; + +export type BandwidthUsageMetricsTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; + type?: InputMaybe; + unit?: BandwidthUnit; +}; + +export enum BandwidthUsageType { + ApiCall = 'ApiCall', + Media = 'Media', +} + +export type BooleanComponentConfig = { + __typename?: 'BooleanComponentConfig'; + multilingual?: Maybe; +}; + +export type BooleanComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type BooleanContent = { + __typename?: 'BooleanContent'; + value?: Maybe; +}; + +export type BooleanContentInput = { + value: Scalars['Boolean']['input']; +}; + +export type BulkCreateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type BulkCreateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type BulkCreateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; + variants: Array; + vatTypeId: Scalars['ID']['input']; +}; + +export type BulkCreateShapeInput = { + components?: InputMaybe>; + identifier?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + type: ShapeType; + variantComponents?: InputMaybe>; +}; + +export type BulkCreateTenantInput = { + createdAt?: InputMaybe; + defaults?: InputMaybe; + identifier: Scalars['String']['input']; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + name: Scalars['String']['input']; + shapes?: InputMaybe>; + vatTypes?: InputMaybe>; +}; + +export type BulkCreateTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; +}; + +export type BulkCreateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + isAdmin?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + sub?: InputMaybe; + tocReadAt?: InputMaybe; +}; + +export type BulkCreateVatTypeInput = { + name: Scalars['String']['input']; + percent: Scalars['Float']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type BulkTaskTenantCopyInfo = { + __typename?: 'BulkTaskTenantCopyInfo'; + id: Scalars['ID']['output']; +}; + +export type CashPayment = PaymentType & { + __typename?: 'CashPayment'; + cash?: Maybe; + provider: PaymentProvider; +}; + +export type CashPaymentInput = { + cash?: InputMaybe; +}; + +export type Component = { + __typename?: 'Component'; + componentId: Scalars['String']['output']; + content?: Maybe; + name: Scalars['String']['output']; + type: ComponentType; +}; + +export type ComponentChoiceComponentConfig = { + __typename?: 'ComponentChoiceComponentConfig'; + choices: Array; + multilingual?: Maybe; +}; + +export type ComponentChoiceComponentConfigInput = { + choices: Array; + multilingual?: InputMaybe; +}; + +export type ComponentChoiceContent = { + __typename?: 'ComponentChoiceContent'; + selectedComponent: Component; +}; + +export type ComponentConfig = + | BooleanComponentConfig + | ComponentChoiceComponentConfig + | ContentChunkComponentConfig + | DatetimeComponentConfig + | FilesComponentConfig + | GridRelationsComponentConfig + | ImagesComponentConfig + | ItemRelationsComponentConfig + | LocationComponentConfig + | NumericComponentConfig + | ParagraphCollectionComponentConfig + | PieceComponentConfig + | PropertiesTableComponentConfig + | RichTextComponentConfig + | SelectionComponentConfig + | SingleLineComponentConfig + | VideosComponentConfig; + +export type ComponentConfigInput = { + boolean?: InputMaybe; + componentChoice?: InputMaybe; + contentChunk?: InputMaybe; + datetime?: InputMaybe; + files?: InputMaybe; + gridRelations?: InputMaybe; + images?: InputMaybe; + itemRelations?: InputMaybe; + location?: InputMaybe; + numeric?: InputMaybe; + paragraphCollection?: InputMaybe; + propertiesTable?: InputMaybe; + richText?: InputMaybe; + selection?: InputMaybe; + singleLine?: InputMaybe; + videos?: InputMaybe; +}; + +export type ComponentContent = + | BooleanContent + | ComponentChoiceContent + | ContentChunkContent + | DatetimeContent + | FileContent + | GridRelationsContent + | ImageContent + | ItemRelationsContent + | LocationContent + | NumericContent + | ParagraphCollectionContent + | PieceContent + | PropertiesTableContent + | RichTextContent + | SelectionContent + | SingleLineContent + | VideoContent; + +export type ComponentInput = { + boolean?: InputMaybe; + componentChoice?: InputMaybe; + componentId: Scalars['String']['input']; + contentChunk?: InputMaybe; + datetime?: InputMaybe; + files?: InputMaybe>; + gridRelations?: InputMaybe; + images?: InputMaybe>; + itemRelations?: InputMaybe; + location?: InputMaybe; + numeric?: InputMaybe; + paragraphCollection?: InputMaybe; + propertiesTable?: InputMaybe; + richText?: InputMaybe; + selection?: InputMaybe; + singleLine?: InputMaybe; + videos?: InputMaybe>; +}; + +export enum ComponentType { + Boolean = 'boolean', + ComponentChoice = 'componentChoice', + ContentChunk = 'contentChunk', + Datetime = 'datetime', + Files = 'files', + GridRelations = 'gridRelations', + Images = 'images', + ItemRelations = 'itemRelations', + Location = 'location', + Numeric = 'numeric', + ParagraphCollection = 'paragraphCollection', + Piece = 'piece', + PropertiesTable = 'propertiesTable', + RichText = 'richText', + Selection = 'selection', + SingleLine = 'singleLine', + Videos = 'videos', +} + +export type ContentChunkComponentConfig = { + __typename?: 'ContentChunkComponentConfig'; + components: Array; + multilingual?: Maybe; + repeatable: Scalars['Boolean']['output']; +}; + +export type ContentChunkComponentConfigInput = { + components: Array; + multilingual?: InputMaybe; + repeatable?: InputMaybe; +}; + +export type ContentChunkContent = { + __typename?: 'ContentChunkContent'; + chunks: Array>; +}; + +export type ContentChunkContentInput = { + chunks: Array>; +}; + +export type ContractSubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periodId: Scalars['ID']['input']; +}; + +export type CreateAccessTokenInput = { + name?: InputMaybe; +}; + +export type CreateAppInput = { + baseUrl: Scalars['String']['input']; + identifier?: InputMaybe; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreateChildTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + pathIdentifier?: InputMaybe; +}; + +export type CreateCustomerAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateCustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + email?: InputMaybe; + externalReferences?: InputMaybe>; + firstName: Scalars['String']['input']; + identifier?: InputMaybe; + lastName: Scalars['String']['input']; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + taxNumber?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +/** Creates a new document. Note that the shapeId input has been deprecated and will be removed in a future release. */ +export type CreateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeId?: InputMaybe; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type CreateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; +}; + +export type CreateGridInput = { + meta?: InputMaybe>; + name: Scalars['String']['input']; + rows?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type CreateMarketInput = { + customerIdentifiers?: InputMaybe>; + identifier: Scalars['String']['input']; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePipelineInput = { + name: Scalars['String']['input']; + stages?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePipelineStageInput = { + name: Scalars['String']['input']; + placeNewOrders?: InputMaybe; +}; + +export type CreatePriceListInput = { + endDate?: InputMaybe; + identifier: Scalars['String']['input']; + modifierType: PriceListModifierType; + name: Scalars['String']['input']; + priceVariants?: InputMaybe>; + selectedProductVariants: CreatePriceListSelectedProductVariantsInput; + startDate?: InputMaybe; + targetAudience: CreatePriceListTargetAudienceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreatePriceListProductVariant = { + priceVariants?: InputMaybe>; + sku: Scalars['String']['input']; +}; + +export type CreatePriceListSelectedProductVariantsInput = { + type: PriceListProductSelectionType; + variants?: InputMaybe>; +}; + +export type CreatePriceListTargetAudienceInput = { + marketIdentifiers?: InputMaybe>>; + type: PriceListTargetAudienceType; +}; + +export type CreatePriceVariantInput = { + currency?: InputMaybe; + identifier: Scalars['String']['input']; + name?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name: Scalars['String']['input']; + shapeIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; + topicIds?: InputMaybe>; + tree?: InputMaybe; + variants: Array; + vatTypeId: Scalars['ID']['input']; +}; + +export type CreateProductSubscriptionAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateProductSubscriptionInput = { + addresses?: InputMaybe>; + customerIdentifier: Scalars['String']['input']; + initial?: InputMaybe; + item: CreateProductSubscriptionItemInput; + meteredVariables?: InputMaybe>; + payment?: InputMaybe; + recurring: CreateProductSubscriptionPhaseInput; + status: CreateProductSubscriptionStatusInput; + subscriptionPlan: ProductSubscriptionPlanReferenceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreateProductSubscriptionItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + sku: Scalars['String']['input']; +}; + +export type CreateProductSubscriptionMeteredVariableInput = { + id: Scalars['ID']['input']; + tierType: TierType; + tiers: Array; +}; + +export type CreateProductSubscriptionMeteredVariableTierInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + threshold: Scalars['Int']['input']; +}; + +export type CreateProductSubscriptionPhaseInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; +}; + +export type CreateProductSubscriptionStatusInput = { + activeUntil?: InputMaybe; + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + renewAt?: InputMaybe; +}; + +export type CreateProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + images?: InputMaybe>; + isDefault: Scalars['Boolean']['input']; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku: Scalars['String']['input']; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type CreateShapeInput = { + components?: InputMaybe>; + identifier?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + type: ShapeType; + variantComponents?: InputMaybe>; +}; + +export type CreateStockLocationInput = { + identifier: Scalars['String']['input']; + name: Scalars['String']['input']; + settings?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateSubscriptionContractAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type: AddressType; +}; + +export type CreateSubscriptionContractInput = { + addresses?: InputMaybe>; + customerIdentifier: Scalars['String']['input']; + initial?: InputMaybe; + item: CreateSubscriptionContractItemInput; + payment?: InputMaybe; + recurring: CreateSubscriptionContractPhaseInput; + status: CreateSubscriptionContractStatusInput; + subscriptionPlan: ContractSubscriptionPlanReferenceInput; + tenantId: Scalars['ID']['input']; +}; + +export type CreateSubscriptionContractItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + sku: Scalars['String']['input']; +}; + +export type CreateSubscriptionContractMeteredVariableReferenceInput = { + id: Scalars['ID']['input']; + tierType: TierType; + tiers: Array; +}; + +export type CreateSubscriptionContractMeteredVariableTierInput = { + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + threshold: Scalars['Int']['input']; +}; + +export type CreateSubscriptionContractPhaseInput = { + currency: Scalars['String']['input']; + meteredVariables?: InputMaybe>; + price: Scalars['Float']['input']; +}; + +export type CreateSubscriptionContractStatusInput = { + activeUntil?: InputMaybe; + currency: Scalars['String']['input']; + price: Scalars['Float']['input']; + renewAt?: InputMaybe; +}; + +export type CreateSubscriptionPlanInput = { + identifier: Scalars['String']['input']; + meteredVariables?: InputMaybe>; + name?: InputMaybe; + periods: Array; + tenantId: Scalars['ID']['input']; +}; + +export type CreateTenantInput = { + createdAt?: InputMaybe; + defaults?: InputMaybe; + identifier: Scalars['String']['input']; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + shapes?: InputMaybe>; + vatTypes?: InputMaybe>; +}; + +export type CreateTopicInput = { + children?: InputMaybe>; + name: Scalars['String']['input']; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CreateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + isAdmin?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + sub: Array; + tocReadAt?: InputMaybe; +}; + +export type CreateVatTypeInput = { + name: Scalars['String']['input']; + percent: Scalars['Float']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CreateWebhookInput = { + concern: Scalars['String']['input']; + event: Scalars['String']['input']; + graphqlQuery?: InputMaybe; + headers?: InputMaybe>; + method: HttpMethod; + name: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + url: Scalars['String']['input']; +}; + +export type CreateWebhookInvocationInput = { + end?: InputMaybe; + payload?: InputMaybe; + responseBody?: InputMaybe; + responseStatus?: InputMaybe; + start?: InputMaybe; +}; + +export type CurrencySummary = { + __typename?: 'CurrencySummary'; + currency?: Maybe; + value?: Maybe; +}; + +export type CurrencySummaryReport = { + __typename?: 'CurrencySummaryReport'; + orders: Array>; + sales: Array>; +}; + +export type CurrencySummaryReportOrdersArgs = { + direction?: InputMaybe; + end?: InputMaybe; + orderBy?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CurrencySummaryReportSalesArgs = { + direction?: InputMaybe; + end?: InputMaybe; + orderBy?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CustomPayment = PaymentType & { + __typename?: 'CustomPayment'; + properties?: Maybe>; + provider: PaymentProvider; +}; + +export type CustomPaymentInput = { + properties?: InputMaybe>; +}; + +export type CustomProperties = { + __typename?: 'CustomProperties'; + property: Scalars['String']['output']; + value?: Maybe; +}; + +export type CustomPropertiesInput = { + property: Scalars['String']['input']; + value?: InputMaybe; +}; + +export type Customer = { + __typename?: 'Customer'; + addresses?: Maybe>; + birthDate?: Maybe; + companyName?: Maybe; + email?: Maybe; + externalReference?: Maybe; + externalReferences?: Maybe>; + firstName?: Maybe; + identifier?: Maybe; + lastName?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; + middleName?: Maybe; + phone?: Maybe; + taxNumber?: Maybe; + tenantId?: Maybe; +}; + +export type CustomerExternalReferenceArgs = { + key: Scalars['String']['input']; +}; + +export type CustomerMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type CustomerConnection = { + __typename?: 'CustomerConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type CustomerConnectionEdge = { + __typename?: 'CustomerConnectionEdge'; + cursor: Scalars['String']['output']; + node: Customer; +}; + +export type CustomerExternalReferenceInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type CustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + firstName?: InputMaybe; + identifier?: InputMaybe; + lastName?: InputMaybe; + middleName?: InputMaybe; + taxNumber?: InputMaybe; +}; + +export type CustomerMutations = { + __typename?: 'CustomerMutations'; + create: Customer; + createAddress: Customer; + delete: Scalars['Int']['output']; + deleteAddress: Scalars['Int']['output']; + setMetadata: Customer; + update: Customer; + updateAddress: Customer; +}; + +export type CustomerMutationsCreateArgs = { + input: CreateCustomerInput; +}; + +export type CustomerMutationsCreateAddressArgs = { + identifier: Scalars['String']['input']; + input: CreateCustomerAddressInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsDeleteArgs = { + deleteSubscriptionContracts?: InputMaybe; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsDeleteAddressArgs = { + addressId: Scalars['String']['input']; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsSetMetadataArgs = { + identifier: Scalars['String']['input']; + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + value: Scalars['String']['input']; +}; + +export type CustomerMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateCustomerInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerMutationsUpdateAddressArgs = { + addressId: Scalars['String']['input']; + identifier: Scalars['String']['input']; + input: UpdateCustomerAddressInput; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerQueries = { + __typename?: 'CustomerQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type CustomerQueriesGetArgs = { + externalReference?: InputMaybe; + identifier?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type CustomerQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + identifier?: InputMaybe; + last?: InputMaybe; + meta?: InputMaybe>; + tenantId: Scalars['ID']['input']; +}; + +export type DatetimeComponentConfig = { + __typename?: 'DatetimeComponentConfig'; + multilingual?: Maybe; +}; + +export type DatetimeComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type DatetimeContent = { + __typename?: 'DatetimeContent'; + datetime?: Maybe; +}; + +export type DatetimeContentInput = { + datetime?: InputMaybe; +}; + +export type DigitalAssetManagementPreferencesInput = { + enabled?: InputMaybe; +}; + +export type DigitalAssetPreferences = { + __typename?: 'DigitalAssetPreferences'; + enabled?: Maybe; +}; + +export type Discount = { + __typename?: 'Discount'; + percent?: Maybe; +}; + +export type DiscountInput = { + percent?: InputMaybe; +}; + +export type Document = Item & { + __typename?: 'Document'; + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type DocumentHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type DocumentMutations = { + __typename?: 'DocumentMutations'; + create: Document; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + update: Document; +}; + +export type DocumentMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateDocumentInput; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type DocumentMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type DocumentMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateDocumentInput; + language: Scalars['String']['input']; +}; + +export type DocumentQueries = { + __typename?: 'DocumentQueries'; + get?: Maybe; +}; + +export type DocumentQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ExperimentalPreferenceEnabled = { + __typename?: 'ExperimentalPreferenceEnabled'; + enabled?: Maybe; +}; + +export type ExperimentalPreferenceEnabledInput = { + enabled?: InputMaybe; +}; + +export type ExperimentalPreferences = { + __typename?: 'ExperimentalPreferences'; + /** @deprecated Replaced by get with componentsOnVariants */ + componentsOnVariants?: Maybe; + /** @deprecated Replaced by get with dam */ + dam?: Maybe; + get?: Maybe; + /** @deprecated Replaced by get with nerdyView */ + nerdyView?: Maybe; +}; + +export type ExperimentalPreferencesGetArgs = { + name: Scalars['String']['input']; +}; + +export type ExperimentalPreferencesInput = { + componentsOnVariants?: InputMaybe; + dam?: InputMaybe; + nerdyView?: InputMaybe; +}; + +export type File = { + __typename?: 'File'; + contentType?: Maybe; + key: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + size?: Maybe; + title?: Maybe; + url: Scalars['String']['output']; +}; + +export type FileMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type FileContent = { + __typename?: 'FileContent'; + files?: Maybe>; +}; + +export type FileContentInput = { + files?: InputMaybe>; +}; + +export type FileInput = { + key: Scalars['String']['input']; + meta?: InputMaybe>; + title?: InputMaybe; +}; + +export type FileQueries = { + __typename?: 'FileQueries'; + get?: Maybe; +}; + +export type FileQueriesGetArgs = { + key: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type FileSize = { + __typename?: 'FileSize'; + size: Scalars['Float']['output']; + unit: FileSizeUnit; +}; + +export enum FileSizeUnit { + Bytes = 'Bytes', + GiB = 'GiB', + KiB = 'KiB', + MiB = 'MiB', +} + +export type FileUploadMutations = { + __typename?: 'FileUploadMutations'; + generatePresignedRequest: PresignedUploadRequest; +}; + +export type FileUploadMutationsGeneratePresignedRequestArgs = { + contentType: Scalars['String']['input']; + filename: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + type?: FileUploadType; +}; + +export enum FileUploadType { + Media = 'MEDIA', + Static = 'STATIC', +} + +export type FilesComponentConfig = { + __typename?: 'FilesComponentConfig'; + acceptedContentTypes?: Maybe>; + max?: Maybe; + maxFileSize?: Maybe; + min?: Maybe; + multilingual?: Maybe; +}; + +export type FilesComponentConfigInput = { + acceptedContentTypes?: InputMaybe>; + max?: InputMaybe; + maxFileSize?: InputMaybe; + min?: InputMaybe; + multilingual?: InputMaybe; +}; + +export type FocalPoint = { + __typename?: 'FocalPoint'; + x: Scalars['Float']['output']; + y: Scalars['Float']['output']; +}; + +export type FocalPointInput = { + x: Scalars['Float']['input']; + y: Scalars['Float']['input']; +}; + +export type Folder = Item & { + __typename?: 'Folder'; + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type FolderHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type FolderMutations = { + __typename?: 'FolderMutations'; + create: Folder; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + update: Folder; +}; + +export type FolderMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateFolderInput; + language: Scalars['String']['input']; +}; + +export type FolderMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type FolderMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type FolderMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type FolderMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateFolderInput; + language: Scalars['String']['input']; +}; + +export type FolderQueries = { + __typename?: 'FolderQueries'; + get?: Maybe; +}; + +export type FolderQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type FullTreeNodeInput = { + itemId: Scalars['ID']['input']; + parentId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type GenericPublishInput = { + id: Scalars['ID']['input']; + type: ShapeType; +}; + +export type GenericSuggestSearchResult = SuggestSearchResult & { + __typename?: 'GenericSuggestSearchResult'; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export type GetTopicByPathArguments = { + path: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type Grid = { + __typename?: 'Grid'; + createdAt: Scalars['DateTime']['output']; + hasVersion: Scalars['Boolean']['output']; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + name?: Maybe; + rows: Array; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type GridHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type GridMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridColumn = { + __typename?: 'GridColumn'; + item?: Maybe; + itemId?: Maybe; + itemType?: Maybe; + layout?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; +}; + +export type GridColumnMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridColumnInput = { + itemId?: InputMaybe; + layout?: InputMaybe; + meta?: InputMaybe>; +}; + +export type GridColumnLayout = { + __typename?: 'GridColumnLayout'; + colspan?: Maybe; + rowspan?: Maybe; +}; + +export type GridLayoutInput = { + colspan?: InputMaybe; + rowspan?: InputMaybe; +}; + +export type GridMutations = { + __typename?: 'GridMutations'; + create: Grid; + delete: Scalars['Int']['output']; + publish: GridPublishInfo; + unpublish?: Maybe; + update: Grid; +}; + +export type GridMutationsCreateArgs = { + input: CreateGridInput; + language: Scalars['String']['input']; +}; + +export type GridMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type GridMutationsPublishArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type GridMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type GridMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateGridInput; + language: Scalars['String']['input']; +}; + +export type GridPublishInfo = { + __typename?: 'GridPublishInfo'; + id: Scalars['ID']['output']; + versionId: Scalars['ID']['output']; +}; + +export type GridQueries = { + __typename?: 'GridQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type GridQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type GridQueriesGetManyArgs = { + language: Scalars['String']['input']; + tenantId?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type GridRelationsComponentConfig = { + __typename?: 'GridRelationsComponentConfig'; + multilingual?: Maybe; +}; + +export type GridRelationsComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type GridRelationsContent = { + __typename?: 'GridRelationsContent'; + grids?: Maybe>; +}; + +export type GridRelationsContentInput = { + gridIds?: InputMaybe>; +}; + +export type GridRow = { + __typename?: 'GridRow'; + columns: Array; + meta?: Maybe>; + metaProperty?: Maybe; +}; + +export type GridRowMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type GridRowInput = { + columns?: InputMaybe>; + meta?: InputMaybe>; +}; + +export type Hreflang = { + __typename?: 'Hreflang'; + language: Scalars['String']['output']; + path: Scalars['String']['output']; +}; + +export enum HttpMethod { + Delete = 'DELETE', + Get = 'GET', + Patch = 'PATCH', + Post = 'POST', + Put = 'PUT', +} + +export type IObjectMetrics = { + count: Scalars['Int']['output']; +}; + +export type IObjectMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReports = { + avg: Array>; + sum: Array>; + total: Scalars['Float']['output']; +}; + +export type IObjectReportsAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReportsSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type IObjectReportsTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type IdentifierSuggestion = { + __typename?: 'IdentifierSuggestion'; + isAvailable: Scalars['Boolean']['output']; + suggestion: Scalars['String']['output']; +}; + +export type Image = { + __typename?: 'Image'; + altText?: Maybe; + caption?: Maybe; + focalPoint?: Maybe; + height?: Maybe; + itemCount: Scalars['Int']['output']; + key: Scalars['String']['output']; + meta?: Maybe>; + metaProperty?: Maybe; + mimeType?: Maybe; + showcase?: Maybe>; + url?: Maybe; + variants?: Maybe>; + width?: Maybe; +}; + +export type ImageItemCountArgs = { + versionLabel?: VersionLabel; +}; + +export type ImageMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type ImageConnection = { + __typename?: 'ImageConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ImageConnectionEdge = { + __typename?: 'ImageConnectionEdge'; + cursor: Scalars['String']['output']; + node: Image; +}; + +export type ImageContent = { + __typename?: 'ImageContent'; + images?: Maybe>; +}; + +export enum ImageFileNameFilterCondition { + Contains = 'contains', + EndsWith = 'endsWith', + StartsWith = 'startsWith', +} + +export type ImageFileNameFilterInput = { + condition?: ImageFileNameFilterCondition; + value: Scalars['String']['input']; +}; + +export type ImageFilterInput = { + filename?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type ImageHotspotInput = { + hotspot?: InputMaybe; + itemIds?: InputMaybe>; + meta?: InputMaybe>; + skus?: InputMaybe>; +}; + +export type ImageInput = { + altText?: InputMaybe; + caption?: InputMaybe; + focalPoint?: InputMaybe; + hotspots?: InputMaybe>; + key: Scalars['String']['input']; + meta?: InputMaybe>; + mimeType?: InputMaybe; +}; + +export type ImageMutations = { + __typename?: 'ImageMutations'; + delete: Scalars['Int']['output']; + registerImage?: Maybe; + registerVariants?: Maybe; + update: Image; +}; + +export type ImageMutationsDeleteArgs = { + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ImageMutationsRegisterImageArgs = { + key: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ImageMutationsRegisterVariantsArgs = { + key: Scalars['String']['input']; + upsert?: InputMaybe; + variants: Array; +}; + +export type ImageMutationsUpdateArgs = { + input: UpdateImageInput; + key: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type ImageQueries = { + __typename?: 'ImageQueries'; + get?: Maybe; + getItems?: Maybe; + getMany?: Maybe; + getTopics?: Maybe; +}; + +export type ImageQueriesGetArgs = { + key: Scalars['String']['input']; + language?: InputMaybe; +}; + +export type ImageQueriesGetItemsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + key: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type ImageQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + language: Scalars['String']['input']; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type ImageQueriesGetTopicsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + key: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type ImageShowcase = { + __typename?: 'ImageShowcase'; + hotspot?: Maybe; + itemIds?: Maybe>; + items?: Maybe>; + meta?: Maybe>; + productVariants?: Maybe>; + skus?: Maybe>; +}; + +export type ImageShowcaseItemsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ImageShowcaseProductVariantsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export enum ImageSortField { + CreatedAt = 'createdAt', +} + +export type ImageVariant = { + __typename?: 'ImageVariant'; + height: Scalars['Int']['output']; + key: Scalars['String']['output']; + size?: Maybe; + url: Scalars['String']['output']; + width: Scalars['Int']['output']; +}; + +export type ImageVariantInput = { + height: Scalars['Int']['input']; + key: Scalars['String']['input']; + size?: InputMaybe; + width: Scalars['Int']['input']; +}; + +export type ImagesComponentConfig = { + __typename?: 'ImagesComponentConfig'; + multilingual?: Maybe; +}; + +export type ImagesComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export enum Interval { + Annually = 'ANNUALLY', + Daily = 'DAILY', + Hourly = 'HOURLY', + Monthly = 'MONTHLY', +} + +export type InviteToken = { + __typename?: 'InviteToken'; + createdAt: Scalars['DateTime']['output']; + createdBy?: Maybe; + createdByUser?: Maybe; + expiresAt?: Maybe; + id: Scalars['ID']['output']; + redeemedAt?: Maybe; + redeemedBy: Scalars['ID']['output']; + redeemedByUser?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + token: Scalars['ID']['output']; +}; + +export type InviteTokenMutations = { + __typename?: 'InviteTokenMutations'; + create: InviteToken; + redeem: InviteToken; +}; + +export type InviteTokenMutationsCreateArgs = { + expiresAt?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type InviteTokenMutationsRedeemArgs = { + token: Scalars['ID']['input']; +}; + +export type Item = { + components?: Maybe>; + createdAt?: Maybe; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type ItemHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type ItemComponentContentValidationError = { + __typename?: 'ItemComponentContentValidationError'; + componentId: Scalars['String']['output']; + error: ItemComponentContentValidationErrorDetails; +}; + +export type ItemComponentContentValidationErrorDetails = { + __typename?: 'ItemComponentContentValidationErrorDetails'; + errorName: Scalars['String']['output']; + message: Scalars['String']['output']; + properties?: Maybe>; +}; + +export type ItemConnection = { + __typename?: 'ItemConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ItemConnectionEdge = { + __typename?: 'ItemConnectionEdge'; + cursor: Scalars['String']['output']; + node: Item; +}; + +export type ItemMetrics = IObjectMetrics & { + __typename?: 'ItemMetrics'; + count: Scalars['Int']['output']; +}; + +export type ItemMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; + type?: InputMaybe; +}; + +export type ItemMutations = { + __typename?: 'ItemMutations'; + bulkPublish?: Maybe>; + bulkUnpublish?: Maybe>; + delete: Scalars['Int']['output']; + publish: PublishInfo; + unpublish?: Maybe; + updateComponent: Item; +}; + +export type ItemMutationsBulkPublishArgs = { + ids?: InputMaybe>; + language: Scalars['String']['input']; +}; + +export type ItemMutationsBulkUnpublishArgs = { + ids?: InputMaybe>; + language: Scalars['String']['input']; +}; + +export type ItemMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ItemMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ItemMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ItemMutationsUpdateComponentArgs = { + disableValidation?: InputMaybe; + input: ComponentInput; + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type ItemQueries = { + __typename?: 'ItemQueries'; + get?: Maybe; + getComponentContentValidationErrors?: Maybe>; + getMany?: Maybe>; +}; + +export type ItemQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ItemQueriesGetComponentContentValidationErrorsArgs = { + itemId: Scalars['ID']['input']; + language: Scalars['String']['input']; +}; + +export type ItemQueriesGetManyArgs = { + externalReferences?: InputMaybe>; + language: Scalars['String']['input']; + tenantId?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type ItemRelationsComponentConfig = { + __typename?: 'ItemRelationsComponentConfig'; + acceptedShapeIdentifiers?: Maybe>; + /** @deprecated max has been deprecated in favor of maxItems */ + max?: Maybe; + maxItems?: Maybe; + maxSkus?: Maybe; + /** @deprecated min has been deprecated in favor of minItems */ + min?: Maybe; + minItems?: Maybe; + minSkus?: Maybe; + multilingual?: Maybe; + quickSelect?: Maybe; +}; + +export type ItemRelationsComponentConfigInput = { + acceptedShapeIdentifiers?: InputMaybe>; + max?: InputMaybe; + maxItems?: InputMaybe; + maxSkus?: InputMaybe; + min?: InputMaybe; + minItems?: InputMaybe; + minSkus?: InputMaybe; + multilingual?: InputMaybe; + quickSelect?: InputMaybe; +}; + +export type ItemRelationsComponentQuickSelectConfig = { + __typename?: 'ItemRelationsComponentQuickSelectConfig'; + folders?: Maybe>; +}; + +export type ItemRelationsComponentQuickSelectConfigInput = { + folders?: InputMaybe>; +}; + +export type ItemRelationsComponentQuickSelectFolderConfig = { + __typename?: 'ItemRelationsComponentQuickSelectFolderConfig'; + folderId: Scalars['ID']['output']; +}; + +export type ItemRelationsComponentQuickSelectFolderConfigInput = { + folderId: Scalars['ID']['input']; +}; + +export type ItemRelationsContent = { + __typename?: 'ItemRelationsContent'; + items?: Maybe>; + productVariants?: Maybe>; +}; + +export type ItemRelationsContentInput = { + itemIds?: InputMaybe>; + skus?: InputMaybe>; +}; + +export enum ItemSortField { + CreatedAt = 'createdAt', +} + +export type ItemSuggestSearchResult = SuggestSearchResult & { + __typename?: 'ItemSuggestSearchResult'; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + shapeIdentifier: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export enum ItemType { + Document = 'document', + Folder = 'folder', + Product = 'product', +} + +export type KeyValuePair = { + __typename?: 'KeyValuePair'; + key: Scalars['String']['output']; + value?: Maybe; +}; + +export type KeyValuePairInput = { + key: Scalars['String']['input']; + value?: InputMaybe; +}; + +export type KlarnaPayment = PaymentType & { + __typename?: 'KlarnaPayment'; + id?: Maybe; + merchantReference1?: Maybe; + merchantReference2?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + provider: PaymentProvider; + recurringToken?: Maybe; + status?: Maybe; +}; + +export type KlarnaPaymentInput = { + klarna?: InputMaybe; + merchantReference1?: InputMaybe; + merchantReference2?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + recurringToken?: InputMaybe; + status?: InputMaybe; +}; + +export type Language = { + __typename?: 'Language'; + code: Scalars['String']['output']; + name: Scalars['String']['output']; + system: Scalars['Boolean']['output']; +}; + +export type LanguageMutations = { + __typename?: 'LanguageMutations'; + add?: Maybe>; + remove?: Maybe>; + update?: Maybe>; +}; + +export type LanguageMutationsAddArgs = { + input: AddLanguageInput; + tenantId: Scalars['ID']['input']; +}; + +export type LanguageMutationsRemoveArgs = { + code: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type LanguageMutationsUpdateArgs = { + code: Scalars['String']['input']; + input: UpdateLanguageInput; + tenantId: Scalars['ID']['input']; +}; + +export type LocationComponentConfig = { + __typename?: 'LocationComponentConfig'; + multilingual?: Maybe; +}; + +export type LocationComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type LocationContent = { + __typename?: 'LocationContent'; + lat?: Maybe; + long?: Maybe; +}; + +export type LocationContentInput = { + lat?: InputMaybe; + long?: InputMaybe; +}; + +export type Market = { + __typename?: 'Market'; + createdAt: Scalars['DateTime']['output']; + customerIdentifiers?: Maybe>; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type MarketConnection = { + __typename?: 'MarketConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type MarketConnectionEdge = { + __typename?: 'MarketConnectionEdge'; + cursor: Scalars['String']['output']; + node: Market; +}; + +export type MarketMutations = { + __typename?: 'MarketMutations'; + create: Market; + delete: Scalars['Int']['output']; + update: Market; +}; + +export type MarketMutationsCreateArgs = { + input: CreateMarketInput; +}; + +export type MarketMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type MarketMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateMarketInput; + tenantId: Scalars['ID']['input']; +}; + +export type MarketQueries = { + __typename?: 'MarketQueries'; + get?: Maybe; + getMany: MarketConnection; +}; + +export type MarketQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type MarketQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type MaxFileSizeInput = { + size: Scalars['Float']['input']; + unit: FileSizeUnit; +}; + +export type MeMutations = { + __typename?: 'MeMutations'; + generateAccessToken?: Maybe; + setPreference?: Maybe; + /** @deprecated replaced by setPreference */ + setPreferences?: Maybe; + update?: Maybe; +}; + +export type MeMutationsGenerateAccessTokenArgs = { + input: CreateAccessTokenInput; +}; + +export type MeMutationsSetPreferenceArgs = { + input: PreferenceInput; + tenantId?: InputMaybe; +}; + +export type MeMutationsSetPreferencesArgs = { + input: PreferencesInput; + tenantId?: InputMaybe; +}; + +export type MeMutationsUpdateArgs = { + input?: InputMaybe; +}; + +export type Mutation = { + __typename?: 'Mutation'; + accessToken?: Maybe; + app?: Maybe; + customer?: Maybe; + document?: Maybe; + fileUpload?: Maybe; + folder?: Maybe; + grid?: Maybe; + image?: Maybe; + inviteToken?: Maybe; + item?: Maybe; + language?: Maybe; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + market: MarketMutations; + me?: Maybe; + order?: Maybe; + pipeline?: Maybe; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + priceList: PriceListMutations; + priceVariant: PriceVariantMutations; + product?: Maybe; + /** @deprecated productSubscription has been deprecated in favor of subscriptionContract */ + productSubscription: ProductSubscriptionMutations; + shape?: Maybe; + stockLocation: StockLocationMutations; + subscriptionContract: SubscriptionContractMutations; + subscriptionPlan: SubscriptionPlanMutations; + tenant?: Maybe; + topic?: Maybe; + tree?: Maybe; + user?: Maybe; + vatType?: Maybe; + video?: Maybe; + webhook?: Maybe; +}; + +export type NerdyViewPreferences = { + __typename?: 'NerdyViewPreferences'; + enabled?: Maybe; +}; + +export type NerdyViewPreferencesInput = { + enabled?: InputMaybe; +}; + +export type NumericComponentConfig = { + __typename?: 'NumericComponentConfig'; + decimalPlaces?: Maybe; + multilingual?: Maybe; + units?: Maybe>; +}; + +export type NumericComponentConfigInput = { + decimalPlaces?: InputMaybe; + multilingual?: InputMaybe; + units?: InputMaybe>; +}; + +export type NumericComponentContentInput = { + number: Scalars['Float']['input']; + unit?: InputMaybe; +}; + +export type NumericContent = { + __typename?: 'NumericContent'; + number: Scalars['Float']['output']; + unit?: Maybe; +}; + +export enum Operation { + Avg = 'AVG', + Sum = 'SUM', +} + +export type Order = { + __typename?: 'Order'; + additionalInformation?: Maybe; + cart: Array; + createdAt: Scalars['DateTime']['output']; + customer?: Maybe; + id: Scalars['ID']['output']; + meta?: Maybe>; + payment?: Maybe>; + pipelines?: Maybe>; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + total?: Maybe; + updatedAt?: Maybe; +}; + +export type OrderConnection = { + __typename?: 'OrderConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type OrderConnectionEdge = { + __typename?: 'OrderConnectionEdge'; + cursor: Scalars['String']['output']; + node: Order; +}; + +export type OrderItem = { + __typename?: 'OrderItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + orderId: Scalars['ID']['output']; + price?: Maybe; + productId?: Maybe; + /** @deprecated Product Subscription IDs have been deprecated in favor of Subscription Contract IDs. Querying for them will be removed in a future release. */ + productSubscriptionId?: Maybe; + /** @deprecated Product variant IDs have been deprecated and replaced by SKUs. */ + productVariantId?: Maybe; + quantity: Scalars['NonNegativeInt']['output']; + sku?: Maybe; + subTotal?: Maybe; + subscription?: Maybe; + subscriptionContractId?: Maybe; +}; + +export type OrderItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name: Scalars['String']['input']; + price?: InputMaybe; + productId?: InputMaybe; + productSubscriptionId?: InputMaybe; + quantity: Scalars['NonNegativeInt']['input']; + sku?: InputMaybe; + subTotal?: InputMaybe; + subscriptionContractId?: InputMaybe; +}; + +export type OrderItemMeteredVariable = { + __typename?: 'OrderItemMeteredVariable'; + id: Scalars['ID']['output']; + price: Scalars['Float']['output']; + usage: Scalars['Float']['output']; +}; + +export type OrderItemSubscription = { + __typename?: 'OrderItemSubscription'; + end?: Maybe; + meteredVariables?: Maybe>; + name?: Maybe; + period: Scalars['PositiveInt']['output']; + start?: Maybe; + unit: OrderItemSubscriptionPeriodUnit; +}; + +export enum OrderItemSubscriptionPeriodUnit { + Day = 'day', + Hour = 'hour', + Minute = 'minute', + Month = 'month', + Week = 'week', + Year = 'year', +} + +export type OrderMetrics = IObjectMetrics & { + __typename?: 'OrderMetrics'; + count: Scalars['Int']['output']; +}; + +export type OrderMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type OrderMutations = { + __typename?: 'OrderMutations'; + delete: Scalars['Int']['output']; + removePipeline: Order; + setPipelineStage: Order; + update: Order; +}; + +export type OrderMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type OrderMutationsRemovePipelineArgs = { + orderId: Scalars['ID']['input']; + pipelineId: Scalars['ID']['input']; +}; + +export type OrderMutationsSetPipelineStageArgs = { + orderId: Scalars['ID']['input']; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type OrderMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateOrderInput; +}; + +export type OrderPipeline = { + __typename?: 'OrderPipeline'; + pipeline: Pipeline; + pipelineId: Scalars['ID']['output']; + stageId: Scalars['ID']['output']; +}; + +export type OrderQueries = { + __typename?: 'OrderQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type OrderQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type OrderQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + pipelineId?: InputMaybe; + pipelineStageId?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId?: InputMaybe; +}; + +export enum OrderSortField { + CreatedAt = 'createdAt', + UpdatedAt = 'updatedAt', +} + +export type OrdersReport = { + __typename?: 'OrdersReport'; + avg: Array>; + sum: Array>; + total: Scalars['Int']['output']; +}; + +export type OrdersReportAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type OrdersReportSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type OrdersReportTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type Owner = { + __typename?: 'Owner'; + companyName?: Maybe; + email?: Maybe; + firstName?: Maybe; + id: Scalars['ID']['output']; + lastName?: Maybe; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + endCursor: Scalars['String']['output']; + hasNextPage: Scalars['Boolean']['output']; + hasPreviousPage: Scalars['Boolean']['output']; + startCursor: Scalars['String']['output']; + totalNodes: Scalars['Int']['output']; +}; + +export type ParagraphCollectionComponentConfig = { + __typename?: 'ParagraphCollectionComponentConfig'; + multilingual?: Maybe>; +}; + +export type ParagraphCollectionComponentConfigInput = { + multilingual?: InputMaybe>; +}; + +export enum ParagraphCollectionComponentmultilingualProperties { + Body = 'body', + Images = 'images', + Title = 'title', + Videos = 'videos', +} + +export type ParagraphCollectionContent = { + __typename?: 'ParagraphCollectionContent'; + paragraphs?: Maybe>; +}; + +export type ParagraphCollectionContentInput = { + paragraphs: Array; +}; + +export type ParagraphContent = { + __typename?: 'ParagraphContent'; + body?: Maybe; + images?: Maybe>; + title?: Maybe; + videos?: Maybe>; +}; + +export type ParagraphContentInput = { + body?: InputMaybe; + images?: InputMaybe>; + title?: InputMaybe; + videos?: InputMaybe>; +}; + +export enum Parameter { + Currency = 'CURRENCY', + Date = 'DATE', + Product = 'PRODUCT', + Value = 'VALUE', +} + +export enum PathResolutionMethod { + Alias = 'alias', + Canonical = 'canonical', + History = 'history', + Shortcut = 'shortcut', +} + +export enum PathResolutionMethodArgs { + Alias = 'alias', + Any = 'any', + Canonical = 'canonical', + History = 'history', + Shortcut = 'shortcut', +} + +export type Paths = { + __typename?: 'Paths'; + aliases?: Maybe>; + canonical?: Maybe; + history?: Maybe>; + hreflangs?: Maybe>; + shortcuts?: Maybe>; +}; + +export type Payment = CashPayment | CustomPayment | KlarnaPayment | PaypalPayment | StripePayment; + +export type PaymentInput = { + cash?: InputMaybe; + custom?: InputMaybe; + klarna?: InputMaybe; + paypal?: InputMaybe; + provider: PaymentProvider; + stripe?: InputMaybe; +}; + +export enum PaymentProvider { + Cash = 'cash', + Custom = 'custom', + Klarna = 'klarna', + Paypal = 'paypal', + Stripe = 'stripe', +} + +export type PaymentType = { + provider: PaymentProvider; +}; + +export type PaypalPayment = PaymentType & { + __typename?: 'PaypalPayment'; + id?: Maybe; + invoiceId?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + provider: PaymentProvider; + subscriptionId?: Maybe; +}; + +export type PaypalPaymentInput = { + invoiceId?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + paypal?: InputMaybe; + subscriptionId?: InputMaybe; +}; + +export type PieceComponentConfig = { + __typename?: 'PieceComponentConfig'; + identifier: Scalars['String']['output']; + multilingual?: Maybe; +}; + +export type PieceContent = { + __typename?: 'PieceContent'; + components: Array; +}; + +export type Pipeline = { + __typename?: 'Pipeline'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + orders: OrderConnection; + stages?: Maybe>; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PipelineOrdersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; +}; + +export type PipelineConnection = { + __typename?: 'PipelineConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type PipelineConnectionEdge = { + __typename?: 'PipelineConnectionEdge'; + cursor: Scalars['String']['output']; + node: Pipeline; +}; + +export type PipelineMutations = { + __typename?: 'PipelineMutations'; + addStage: Pipeline; + create: Pipeline; + delete?: Maybe; + moveStage: Pipeline; + removeStage: Pipeline; + update: Pipeline; + updateStage: Pipeline; +}; + +export type PipelineMutationsAddStageArgs = { + input: CreatePipelineStageInput; + pipelineId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type PipelineMutationsCreateArgs = { + input: CreatePipelineInput; +}; + +export type PipelineMutationsDeleteArgs = { + force?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type PipelineMutationsMoveStageArgs = { + newPosition: Scalars['Int']['input']; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineMutationsRemoveStageArgs = { + force?: InputMaybe; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input?: InputMaybe; +}; + +export type PipelineMutationsUpdateStageArgs = { + input: UpdatePipelineStageInput; + pipelineId: Scalars['ID']['input']; + stageId: Scalars['ID']['input']; +}; + +export type PipelineQueries = { + __typename?: 'PipelineQueries'; + get?: Maybe; + getMany: PipelineConnection; +}; + +export type PipelineQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type PipelineQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export enum PipelineSortField { + CreatedAt = 'createdAt', +} + +export type PipelineStage = { + __typename?: 'PipelineStage'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + orders: OrderConnection; + placeNewOrders: Scalars['Boolean']['output']; +}; + +export type PipelineStageOrdersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; +}; + +export type Preference = { + __typename?: 'Preference'; + enabled: Scalars['Boolean']['output']; + name: Scalars['String']['output']; +}; + +export type PreferenceInput = { + enabled?: InputMaybe; + experimental?: InputMaybe; + name: Scalars['String']['input']; +}; + +export type Preferences = { + __typename?: 'Preferences'; + experimental?: Maybe; +}; + +export type PreferencesInput = { + experimental?: InputMaybe; +}; + +export type PresignedUploadRequest = { + __typename?: 'PresignedUploadRequest'; + fields: Array; + lifetime: Scalars['Int']['output']; + maxSize: Scalars['Int']['output']; + url?: Maybe; +}; + +export type Price = { + __typename?: 'Price'; + currency: Scalars['String']['output']; + discounts?: Maybe>; + gross?: Maybe; + net?: Maybe; + tax?: Maybe; +}; + +export type PriceInput = { + currency: Scalars['String']['input']; + discounts?: InputMaybe>; + gross?: InputMaybe; + net?: InputMaybe; + tax?: InputMaybe; +}; + +export type PriceList = { + __typename?: 'PriceList'; + createdAt: Scalars['DateTime']['output']; + endDate?: Maybe; + identifier: Scalars['String']['output']; + modifierType: PriceListModifierType; + name: Scalars['String']['output']; + price?: Maybe; + priceVariants?: Maybe>; + selectedProductVariants: PriceListSelectedProductVariants; + startDate?: Maybe; + targetAudience: PriceListTargetAudience; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PriceListPriceArgs = { + identifier?: Scalars['String']['input']; +}; + +export type PriceListConnection = { + __typename?: 'PriceListConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type PriceListConnectionEdge = { + __typename?: 'PriceListConnectionEdge'; + cursor: Scalars['String']['output']; + node: PriceList; +}; + +export enum PriceListModifierType { + Absolute = 'ABSOLUTE', + Percentage = 'PERCENTAGE', + Relative = 'RELATIVE', +} + +export type PriceListMutations = { + __typename?: 'PriceListMutations'; + create: PriceList; + delete: Scalars['Int']['output']; + removeSelectedProductVariants: PriceList; + update: PriceList; + upsertSelectedProductVariants: PriceList; +}; + +export type PriceListMutationsCreateArgs = { + input: CreatePriceListInput; +}; + +export type PriceListMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListMutationsRemoveSelectedProductVariantsArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + variants: Array; +}; + +export type PriceListMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdatePriceListInput; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListMutationsUpsertSelectedProductVariantsArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; + variants: Array; +}; + +export type PriceListPriceVariant = { + __typename?: 'PriceListPriceVariant'; + decimalPlaces?: Maybe; + identifier: Scalars['String']['output']; + modifier: Scalars['Float']['output']; +}; + +export type PriceListPriceVariantReferenceInput = { + decimalPlaces?: InputMaybe; + identifier: Scalars['String']['input']; + modifier: Scalars['Float']['input']; +}; + +export type PriceListProduct = { + __typename?: 'PriceListProduct'; + priceVariants?: Maybe>; + sku: Scalars['String']['output']; +}; + +export type PriceListProductPriceVariantReference = { + identifier: Scalars['String']['input']; + modifier?: InputMaybe; +}; + +export enum PriceListProductSelectionType { + AllSkus = 'ALL_SKUS', + SomeSkus = 'SOME_SKUS', +} + +export type PriceListQueries = { + __typename?: 'PriceListQueries'; + get?: Maybe; + getMany?: Maybe; + getProductVariants?: Maybe; +}; + +export type PriceListQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type PriceListQueriesGetProductVariantsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + identifier: Scalars['String']['input']; + language: Scalars['String']['input']; + last?: InputMaybe; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type PriceListSelectedProductVariants = { + __typename?: 'PriceListSelectedProductVariants'; + type?: Maybe; +}; + +export type PriceListTargetAudience = { + __typename?: 'PriceListTargetAudience'; + marketIdentifiers?: Maybe>; + type: PriceListTargetAudienceType; +}; + +export enum PriceListTargetAudienceType { + Everyone = 'EVERYONE', + Some = 'SOME', +} + +export type PriceVariant = { + __typename?: 'PriceVariant'; + createdAt: Scalars['DateTime']['output']; + currency: Scalars['String']['output']; + identifier: Scalars['String']['output']; + name?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type PriceVariantMutations = { + __typename?: 'PriceVariantMutations'; + create: PriceVariant; + delete: Scalars['Int']['output']; + update: PriceVariant; +}; + +export type PriceVariantMutationsCreateArgs = { + input: CreatePriceVariantInput; +}; + +export type PriceVariantMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdatePriceVariantInput; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantQueries = { + __typename?: 'PriceVariantQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type PriceVariantQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type PriceVariantReferenceInput = { + identifier: Scalars['String']['input']; + price?: InputMaybe; +}; + +export type Product = Item & { + __typename?: 'Product'; + components?: Maybe>; + createdAt?: Maybe; + defaultVariant: ProductVariant; + externalReference?: Maybe; + hasVersion?: Maybe; + id: Scalars['ID']['output']; + /** @deprecated option removed */ + isSubscriptionOnly?: Maybe; + /** @deprecated option removed */ + isVirtual?: Maybe; + language: Scalars['String']['output']; + name?: Maybe; + relatingItems?: Maybe>; + shape?: Maybe; + tenantId: Scalars['ID']['output']; + topics?: Maybe>; + tree?: Maybe; + type: ItemType; + updatedAt?: Maybe; + variant?: Maybe; + variants: Array; + vatType?: Maybe; + vatTypeId?: Maybe; + version?: Maybe; +}; + +export type ProductHasVersionArgs = { + versionLabel?: InputMaybe; +}; + +export type ProductVariantArgs = { + sku: Scalars['String']['input']; +}; + +export type ProductMutations = { + __typename?: 'ProductMutations'; + addVariant: Product; + create: Product; + delete: Scalars['Int']['output']; + deleteVariant: Scalars['Int']['output']; + publish: PublishInfo; + setDefaultVariant: Product; + unpublish?: Maybe; + update: Product; + updateStock: ProductStockLocation; + updateVariant: Product; + updateVariantComponent: Product; +}; + +export type ProductMutationsAddVariantArgs = { + disableComponentValidation?: InputMaybe; + input: CreateProductVariantInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; +}; + +export type ProductMutationsCreateArgs = { + disableComponentValidation?: InputMaybe; + input: CreateProductInput; + language: Scalars['String']['input']; +}; + +export type ProductMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductMutationsDeleteVariantArgs = { + sku: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ProductMutationsPublishArgs = { + enableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ProductMutationsSetDefaultVariantArgs = { + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku?: InputMaybe; +}; + +export type ProductMutationsUnpublishArgs = { + id: Scalars['ID']['input']; + includeDescendants?: InputMaybe; + language: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateArgs = { + disableComponentValidation?: InputMaybe; + id: Scalars['ID']['input']; + input: UpdateProductInput; + language: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateStockArgs = { + productId: Scalars['ID']['input']; + sku: Scalars['String']['input']; + stock: Scalars['Int']['input']; + stockLocationIdentifier?: Scalars['String']['input']; +}; + +export type ProductMutationsUpdateVariantArgs = { + disableComponentValidation?: InputMaybe; + input: UpdateSingleProductVariantInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku?: InputMaybe; +}; + +export type ProductMutationsUpdateVariantComponentArgs = { + disableValidation?: InputMaybe; + input: ComponentInput; + language: Scalars['String']['input']; + productId: Scalars['ID']['input']; + sku: Scalars['String']['input']; +}; + +export type ProductPriceVariant = { + __typename?: 'ProductPriceVariant'; + currency?: Maybe; + identifier: Scalars['String']['output']; + name?: Maybe; + price?: Maybe; + priceList?: Maybe; + priceLists?: Maybe>; +}; + +export type ProductPriceVariantPriceListArgs = { + identifier: Scalars['String']['input']; +}; + +export type ProductQueries = { + __typename?: 'ProductQueries'; + get?: Maybe; + getVariants?: Maybe>; +}; + +export type ProductQueriesGetArgs = { + id: Scalars['ID']['input']; + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type ProductQueriesGetVariantsArgs = { + externalReferences?: InputMaybe>; + language: Scalars['String']['input']; + skus?: InputMaybe>; + tenantId: Scalars['ID']['input']; + versionLabel?: VersionLabel; +}; + +export type ProductStockLocation = { + __typename?: 'ProductStockLocation'; + identifier: Scalars['String']['output']; + meta?: Maybe>; + name: Scalars['String']['output']; + settings?: Maybe; + stock?: Maybe; +}; + +export type ProductSubscription = { + __typename?: 'ProductSubscription'; + customer?: Maybe; + customerIdentifier: Scalars['String']['output']; + id: Scalars['ID']['output']; + initial?: Maybe; + item: ProductSubscriptionItem; + payment?: Maybe; + recurring?: Maybe; + status: ProductSubscriptionStatus; + subscriptionPlan?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + usage?: Maybe>; +}; + +export type ProductSubscriptionUsageArgs = { + end: Scalars['DateTime']['input']; + start: Scalars['DateTime']['input']; +}; + +export type ProductSubscriptionConnection = { + __typename?: 'ProductSubscriptionConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ProductSubscriptionConnectionEdge = { + __typename?: 'ProductSubscriptionConnectionEdge'; + cursor: Scalars['String']['output']; + node: ProductSubscription; +}; + +export type ProductSubscriptionHistoryEvent = { + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventCancellation = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventCancellation'; + activeUntil?: Maybe; + cancelledAt: Scalars['DateTime']['output']; + deactivated: Scalars['Boolean']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventRenewal = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventRenewal'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewedAt: Scalars['DateTime']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export type ProductSubscriptionHistoryEventRenewalDueBroadcast = ProductSubscriptionHistoryEvent & { + __typename?: 'ProductSubscriptionHistoryEventRenewalDueBroadcast'; + broadcastAt: Scalars['DateTime']['output']; + renewAt: Scalars['DateTime']['output']; + type: ProductSubscriptionHistoryEventType; +}; + +export enum ProductSubscriptionHistoryEventType { + Cancellation = 'CANCELLATION', + Renewal = 'RENEWAL', + RenewalDueBroadcast = 'RENEWAL_DUE_BROADCAST', +} + +export type ProductSubscriptionItem = { + __typename?: 'ProductSubscriptionItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + quantity: Scalars['NonNegativeInt']['output']; + sku: Scalars['String']['output']; +}; + +export type ProductSubscriptionMutations = { + __typename?: 'ProductSubscriptionMutations'; + cancel: ProductSubscription; + create: ProductSubscription; + delete?: Maybe; + renew: ProductSubscription; + update: ProductSubscription; +}; + +export type ProductSubscriptionMutationsCancelArgs = { + deactivate?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsCreateArgs = { + input: CreateProductSubscriptionInput; +}; + +export type ProductSubscriptionMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsRenewArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateProductSubscriptionInput; +}; + +export type ProductSubscriptionPhase = { + __typename?: 'ProductSubscriptionPhase'; + currency: Scalars['String']['output']; + period: Scalars['Int']['output']; + price: Scalars['Float']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type ProductSubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periodId: Scalars['ID']['input']; +}; + +export type ProductSubscriptionQueries = { + __typename?: 'ProductSubscriptionQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type ProductSubscriptionQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type ProductSubscriptionQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export enum ProductSubscriptionSortField { + UpdatedAt = 'updatedAt', +} + +export type ProductSubscriptionStatus = { + __typename?: 'ProductSubscriptionStatus'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewAt?: Maybe; +}; + +export type ProductSubscriptionUsage = { + __typename?: 'ProductSubscriptionUsage'; + meteredVariableId: Scalars['ID']['output']; + quantity?: Maybe; +}; + +export type ProductVariant = { + __typename?: 'ProductVariant'; + attributes?: Maybe>; + components?: Maybe>; + externalReference?: Maybe; + /** @deprecated Product variant IDs have been deprecated and replaced by SKUs. */ + id: Scalars['ID']['output']; + images?: Maybe>; + isDefault: Scalars['Boolean']['output']; + name?: Maybe; + price?: Maybe; + priceVariants?: Maybe>; + product: Product; + productId: Scalars['ID']['output']; + sku: Scalars['String']['output']; + stock?: Maybe; + stockLocations?: Maybe>; + subscriptionPlans?: Maybe>; + videos?: Maybe>; +}; + +export type ProductVariantPriceArgs = { + identifier?: Scalars['String']['input']; +}; + +export type ProductVariantStockArgs = { + identifier?: Scalars['String']['input']; +}; + +export type ProductVariantAttribute = { + __typename?: 'ProductVariantAttribute'; + attribute: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type ProductVariantAttributeInput = { + attribute: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type ProductVariantConnection = { + __typename?: 'ProductVariantConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type ProductVariantConnectionEdge = { + __typename?: 'ProductVariantConnectionEdge'; + cursor: Scalars['String']['output']; + node: ProductVariant; +}; + +export type ProductVariantPriceList = { + __typename?: 'ProductVariantPriceList'; + endDate?: Maybe; + identifier: Scalars['String']['output']; + modifier: Scalars['Float']['output']; + modifierType: PriceListModifierType; + price: Scalars['Float']['output']; + startDate?: Maybe; +}; + +export type ProductVariantSubscriptionMeteredVariable = { + __typename?: 'ProductVariantSubscriptionMeteredVariable'; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + tierType: TierType; + tiers: Array; +}; + +export type ProductVariantSubscriptionPlan = { + __typename?: 'ProductVariantSubscriptionPlan'; + identifier: Scalars['String']['output']; + name?: Maybe; + periods: Array; + tenantId: Scalars['ID']['output']; +}; + +export type ProductVariantSubscriptionPlanPeriod = { + __typename?: 'ProductVariantSubscriptionPlanPeriod'; + id: Scalars['ID']['output']; + initial?: Maybe; + name: Scalars['String']['output']; + recurring?: Maybe; +}; + +export type ProductVariantSubscriptionPlanPricing = { + __typename?: 'ProductVariantSubscriptionPlanPricing'; + meteredVariables?: Maybe>; + period: Scalars['Int']['output']; + price?: Maybe; + priceVariants?: Maybe>; + unit: SubscriptionPeriodUnit; +}; + +export type ProductVariantSubscriptionPlanPricingPriceArgs = { + identifier?: InputMaybe; +}; + +export type ProductVariantSubscriptionPlanTier = { + __typename?: 'ProductVariantSubscriptionPlanTier'; + price?: Maybe; + priceVariants?: Maybe>; + threshold: Scalars['Int']['output']; +}; + +export type ProductVariantSubscriptionPlanTierPriceArgs = { + identifier?: InputMaybe; +}; + +export type PropertiesTableComponentConfig = { + __typename?: 'PropertiesTableComponentConfig'; + multilingual?: Maybe; + sections: Array; +}; + +export type PropertiesTableComponentConfigInput = { + multilingual?: InputMaybe; + sections: Array; +}; + +export type PropertiesTableComponentConfigSection = { + __typename?: 'PropertiesTableComponentConfigSection'; + keys: Array; + title?: Maybe; +}; + +export type PropertiesTableComponentConfigSectionInput = { + keys: Array; + title?: InputMaybe; +}; + +export type PropertiesTableComponentSection = { + __typename?: 'PropertiesTableComponentSection'; + properties?: Maybe>; + title?: Maybe; +}; + +export type PropertiesTableComponentSectionInput = { + properties?: InputMaybe>; + title?: InputMaybe; +}; + +export type PropertiesTableContent = { + __typename?: 'PropertiesTableContent'; + sections?: Maybe>; +}; + +export type PropertiesTableContentInput = { + sections?: InputMaybe>; +}; + +export type PublishInfo = { + __typename?: 'PublishInfo'; + id: Scalars['ID']['output']; + language?: Maybe; + versionId?: Maybe; +}; + +export type Query = { + __typename?: 'Query'; + app: AppQueries; + archive: ArchiveQueries; + currencySummary?: Maybe; + customer: CustomerQueries; + document: DocumentQueries; + file: FileQueries; + folder: FolderQueries; + grid: GridQueries; + image: ImageQueries; + item: ItemQueries; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + market: MarketQueries; + me?: Maybe; + order: OrderQueries; + pipeline: PipelineQueries; + /** **EXPERIMENTAL:** Watch out! This feature is still in testing process. */ + priceList: PriceListQueries; + priceVariant: PriceVariantQueries; + product: ProductQueries; + /** @deprecated productSubscription has been deprecated in favor of subscriptionContract */ + productSubscription: ProductSubscriptionQueries; + report?: Maybe; + search?: Maybe; + shape: ShapeQueries; + stockLocation: StockLocationQueries; + subscriptionContract: SubscriptionContractQueries; + subscriptionContractEvent?: Maybe; + subscriptionPlan: SubscriptionPlanQueries; + tenant: TenantQueries; + topic: TopicQueries; + tree: TreeQueries; + user: UserQueries; + version?: Maybe; + webhook: WebhookQueries; +}; + +export type RegenerateSecretsInput = { + signatureSecret?: InputMaybe; + staticAuthToken?: InputMaybe; +}; + +export type ReportMetric = { + __typename?: 'ReportMetric'; + currency?: Maybe; + date?: Maybe; + name?: Maybe; + product?: Maybe; + sku?: Maybe; + value: Scalars['Float']['output']; +}; + +export type ReportMetricProductArgs = { + language: Scalars['String']['input']; +}; + +export type RichTextComponentConfig = { + __typename?: 'RichTextComponentConfig'; + multilingual?: Maybe; +}; + +export type RichTextComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type RichTextContent = { + __typename?: 'RichTextContent'; + html?: Maybe>; + json?: Maybe>>; + plainText?: Maybe>; +}; + +export type RichTextContentInput = { + html?: InputMaybe>; + json?: InputMaybe>; +}; + +export type SalesReport = IObjectReports & { + __typename?: 'SalesReport'; + avg: Array>; + sum: Array>; + total: Scalars['Float']['output']; +}; + +export type SalesReportAvgArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type SalesReportSumArgs = { + direction?: InputMaybe; + end?: InputMaybe; + filterBySKUs?: InputMaybe>>; + groupBy?: InputMaybe; + limit?: InputMaybe; + orderBy?: InputMaybe; + resolution?: InputMaybe; + start?: InputMaybe; +}; + +export type SalesReportTotalArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type SearchQueries = { + __typename?: 'SearchQueries'; + suggest?: Maybe; + topics?: Maybe; +}; + +export type SearchQueriesSuggestArgs = { + after?: InputMaybe; + first?: InputMaybe; + language: Scalars['String']['input']; + searchTerm?: InputMaybe; + tenantId: Scalars['ID']['input']; + types?: InputMaybe>; +}; + +export type SearchQueriesTopicsArgs = { + language: Scalars['String']['input']; + searchTerm?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type SelectionComponentConfig = { + __typename?: 'SelectionComponentConfig'; + max?: Maybe; + min?: Maybe; + multilingual?: Maybe; + options: Array; +}; + +export type SelectionComponentConfigInput = { + max?: InputMaybe; + min?: InputMaybe; + multilingual?: InputMaybe; + options: Array; +}; + +export type SelectionComponentContentInput = { + keys: Array; +}; + +export type SelectionComponentOptionConfig = { + __typename?: 'SelectionComponentOptionConfig'; + isPreselected?: Maybe; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type SelectionComponentOptionConfigInput = { + isPreselected?: InputMaybe; + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type SelectionContent = { + __typename?: 'SelectionContent'; + options: Array; +}; + +export type Shape = { + __typename?: 'Shape'; + components?: Maybe>; + createdAt: Scalars['DateTime']['output']; + /** @deprecated Shape IDs have been deprecated in favor of human readable identifiers. Querying for them will be removed in a future release. */ + id?: Maybe; + identifier: Scalars['String']['output']; + itemCount: Scalars['Int']['output']; + items?: Maybe>; + meta?: Maybe>; + metaProperty?: Maybe; + name: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: ShapeType; + updatedAt?: Maybe; + variantComponents?: Maybe>; +}; + +export type ShapeItemsArgs = { + language: Scalars['String']['input']; +}; + +export type ShapeMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type ShapeComponent = { + __typename?: 'ShapeComponent'; + config?: Maybe; + description?: Maybe; + id: Scalars['String']['output']; + name: Scalars['String']['output']; + type: ComponentType; +}; + +export type ShapeComponentInput = { + config?: InputMaybe; + description?: InputMaybe; + id?: InputMaybe; + name: Scalars['String']['input']; + type: ComponentType; +}; + +export type ShapeMetrics = IObjectMetrics & { + __typename?: 'ShapeMetrics'; + count: Scalars['Int']['output']; +}; + +export type ShapeMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type ShapeMutations = { + __typename?: 'ShapeMutations'; + create: Shape; + delete: Scalars['Int']['output']; + /** @deprecated Migrating legacy shape ids will be removed in a future release. */ + migrateLegacyId: Shape; + update: Shape; +}; + +export type ShapeMutationsCreateArgs = { + input: CreateShapeInput; +}; + +export type ShapeMutationsDeleteArgs = { + identifier?: InputMaybe; + tenantId?: InputMaybe; +}; + +export type ShapeMutationsMigrateLegacyIdArgs = { + id: Scalars['String']['input']; + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type ShapeMutationsUpdateArgs = { + identifier?: InputMaybe; + input: UpdateShapeInput; + tenantId?: InputMaybe; +}; + +export type ShapeQueries = { + __typename?: 'ShapeQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type ShapeQueriesGetArgs = { + identifier?: InputMaybe; + tenantId?: InputMaybe; +}; + +export type ShapeQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export enum ShapeType { + Document = 'document', + Folder = 'folder', + Product = 'product', +} + +export type Shortcut = { + __typename?: 'Shortcut'; + parent?: Maybe; + parentId?: Maybe; + path: Scalars['String']['output']; + position?: Maybe; +}; + +export type SingleLineComponentConfig = { + __typename?: 'SingleLineComponentConfig'; + multilingual?: Maybe; +}; + +export type SingleLineComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type SingleLineContent = { + __typename?: 'SingleLineContent'; + text?: Maybe; +}; + +export type SingleLineContentInput = { + text?: InputMaybe; +}; + +export enum SortDirection { + Asc = 'asc', + Desc = 'desc', +} + +export type StockLocation = { + __typename?: 'StockLocation'; + identifier: Scalars['String']['output']; + name: Scalars['String']['output']; + settings: StockLocationSettings; + tenant: Tenant; + tenantId: Scalars['ID']['output']; +}; + +export type StockLocationMutations = { + __typename?: 'StockLocationMutations'; + create: StockLocation; + delete: Scalars['Int']['output']; + update: StockLocation; +}; + +export type StockLocationMutationsCreateArgs = { + input: CreateStockLocationInput; +}; + +export type StockLocationMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateStockLocationInput; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationQueries = { + __typename?: 'StockLocationQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type StockLocationQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type StockLocationReferenceInput = { + identifier: Scalars['String']['input']; + meta?: InputMaybe>; + stock?: InputMaybe; +}; + +export type StockLocationSettings = { + __typename?: 'StockLocationSettings'; + minimum?: Maybe; + unlimited: Scalars['Boolean']['output']; +}; + +export type StockLocationSettingsInput = { + minimum?: InputMaybe; +}; + +export type StripePayment = PaymentType & { + __typename?: 'StripePayment'; + customerId?: Maybe; + id?: Maybe; + metadata?: Maybe; + orderId?: Maybe; + paymentIntentId?: Maybe; + paymentMethod?: Maybe; + paymentMethodId?: Maybe; + provider: PaymentProvider; + subscriptionId?: Maybe; +}; + +export type StripePaymentInput = { + customerId?: InputMaybe; + metadata?: InputMaybe; + orderId?: InputMaybe; + paymentIntentId?: InputMaybe; + paymentMethod?: InputMaybe; + paymentMethodId?: InputMaybe; + stripe?: InputMaybe; + subscriptionId?: InputMaybe; +}; + +export type SubscriptionContract = { + __typename?: 'SubscriptionContract'; + addresses?: Maybe>; + createdAt: Scalars['DateTime']['output']; + customer?: Maybe; + customerIdentifier: Scalars['String']['output']; + id: Scalars['ID']['output']; + initial?: Maybe; + item: SubscriptionContractItem; + payment?: Maybe; + recurring?: Maybe; + status: SubscriptionContractStatus; + subscriptionPlan?: Maybe; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt: Scalars['DateTime']['output']; + usage?: Maybe>; +}; + +export type SubscriptionContractUsageArgs = { + end: Scalars['DateTime']['input']; + start: Scalars['DateTime']['input']; +}; + +export type SubscriptionContractAddress = { + __typename?: 'SubscriptionContractAddress'; + city?: Maybe; + country?: Maybe; + email?: Maybe; + firstName?: Maybe; + id?: Maybe; + lastName?: Maybe; + middleName?: Maybe; + phone?: Maybe; + postalCode?: Maybe; + state?: Maybe; + street?: Maybe; + street2?: Maybe; + streetNumber?: Maybe; + type: AddressType; +}; + +export type SubscriptionContractCancelledEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractCancelledEvent'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractConnection = { + __typename?: 'SubscriptionContractConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SubscriptionContractConnectionEdge = { + __typename?: 'SubscriptionContractConnectionEdge'; + cursor: Scalars['String']['output']; + node: SubscriptionContract; +}; + +export type SubscriptionContractEvent = { + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractEventConnection = { + __typename?: 'SubscriptionContractEventConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SubscriptionContractEventConnectionEdge = { + __typename?: 'SubscriptionContractEventConnectionEdge'; + cursor: Scalars['String']['output']; + node: SubscriptionContractEvent; +}; + +export type SubscriptionContractEventQueries = { + __typename?: 'SubscriptionContractEventQueries'; + getMany?: Maybe; +}; + +export type SubscriptionContractEventQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + eventTypes?: InputMaybe>; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + subscriptionContractId: Scalars['ID']['input']; + tenantId: Scalars['ID']['input']; +}; + +export enum SubscriptionContractEventSortField { + Id = '_id', +} + +export enum SubscriptionContractEventType { + Cancelled = 'cancelled', + RenewalDueBroadcast = 'renewalDueBroadcast', + Renewed = 'renewed', + UsageTracked = 'usageTracked', +} + +export type SubscriptionContractItem = { + __typename?: 'SubscriptionContractItem'; + imageUrl?: Maybe; + meta?: Maybe>; + name: Scalars['String']['output']; + sku: Scalars['String']['output']; +}; + +export type SubscriptionContractMeteredVariableReference = { + __typename?: 'SubscriptionContractMeteredVariableReference'; + id: Scalars['ID']['output']; + tierType?: Maybe; + tiers: Array; +}; + +export type SubscriptionContractMeteredVariableTierReference = { + __typename?: 'SubscriptionContractMeteredVariableTierReference'; + currency: Scalars['String']['output']; + price?: Maybe; + threshold: Scalars['Int']['output']; +}; + +export type SubscriptionContractMutations = { + __typename?: 'SubscriptionContractMutations'; + cancel: SubscriptionContract; + create: SubscriptionContract; + delete?: Maybe; + renew: SubscriptionContract; + trackUsage: SubscriptionContractUsageTrackedEvent; + update: SubscriptionContract; +}; + +export type SubscriptionContractMutationsCancelArgs = { + deactivate?: InputMaybe; + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsCreateArgs = { + input: CreateSubscriptionContractInput; +}; + +export type SubscriptionContractMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsRenewArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractMutationsTrackUsageArgs = { + id: Scalars['ID']['input']; + input: TrackUsageInput; +}; + +export type SubscriptionContractMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateSubscriptionContractInput; +}; + +export type SubscriptionContractPhase = { + __typename?: 'SubscriptionContractPhase'; + currency: Scalars['String']['output']; + meteredVariables?: Maybe>; + period: Scalars['Int']['output']; + price: Scalars['Float']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionContractQueries = { + __typename?: 'SubscriptionContractQueries'; + get?: Maybe; + getMany?: Maybe; +}; + +export type SubscriptionContractQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type SubscriptionContractQueriesGetManyArgs = { + after?: InputMaybe; + before?: InputMaybe; + customerIdentifier?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + sort?: InputMaybe; + sortField?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionContractRenewalDueBroadcastEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractRenewalDueBroadcastEvent'; + createdAt: Scalars['DateTime']['output']; + data: SubscriptionContractRenewalDueBroadcastEventData; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export type SubscriptionContractRenewalDueBroadcastEventData = { + __typename?: 'SubscriptionContractRenewalDueBroadcastEventData'; + broadcastAt: Scalars['DateTime']['output']; + renewAt: Scalars['DateTime']['output']; +}; + +export type SubscriptionContractRenewedEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractRenewedEvent'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export enum SubscriptionContractSortField { + Id = '_id', + UpdatedAt = 'updatedAt', +} + +export type SubscriptionContractStatus = { + __typename?: 'SubscriptionContractStatus'; + activeUntil?: Maybe; + currency: Scalars['String']['output']; + price: Scalars['Float']['output']; + renewAt?: Maybe; +}; + +export type SubscriptionContractUsage = { + __typename?: 'SubscriptionContractUsage'; + meteredVariableId: Scalars['ID']['output']; + quantity?: Maybe; +}; + +export type SubscriptionContractUsageTrackedData = { + __typename?: 'SubscriptionContractUsageTrackedData'; + description?: Maybe; + idempotencyKey?: Maybe; + meteredVariableId: Scalars['ID']['output']; + quantity: Scalars['Float']['output']; +}; + +export type SubscriptionContractUsageTrackedEvent = SubscriptionContractEvent & { + __typename?: 'SubscriptionContractUsageTrackedEvent'; + createdAt: Scalars['DateTime']['output']; + data?: Maybe; + id: Scalars['ID']['output']; + type: SubscriptionContractEventType; +}; + +export enum SubscriptionPeriodUnit { + Day = 'day', + Month = 'month', + Week = 'week', + Year = 'year', +} + +export type SubscriptionPlan = { + __typename?: 'SubscriptionPlan'; + createdAt: Scalars['DateTime']['output']; + identifier: Scalars['String']['output']; + meteredVariables?: Maybe>; + name?: Maybe; + periods?: Maybe>; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type SubscriptionPlanMeteredVariable = { + __typename?: 'SubscriptionPlanMeteredVariable'; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + name?: Maybe; + unit: Scalars['String']['output']; +}; + +export type SubscriptionPlanMeteredVariableInput = { + id?: InputMaybe; + identifier: Scalars['String']['input']; + name?: InputMaybe; + unit: Scalars['String']['input']; +}; + +export type SubscriptionPlanMeteredVariableReferenceInput = { + id: Scalars['ID']['input']; + tierType?: InputMaybe; + tiers?: InputMaybe>; +}; + +export type SubscriptionPlanMeteredVariableTierReferenceInput = { + price?: InputMaybe; + priceVariants?: InputMaybe>; + threshold: Scalars['Int']['input']; +}; + +export type SubscriptionPlanMutations = { + __typename?: 'SubscriptionPlanMutations'; + create: SubscriptionPlan; + delete: Scalars['Int']['output']; + update: SubscriptionPlan; +}; + +export type SubscriptionPlanMutationsCreateArgs = { + input: CreateSubscriptionPlanInput; +}; + +export type SubscriptionPlanMutationsDeleteArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanMutationsUpdateArgs = { + identifier: Scalars['String']['input']; + input: UpdateSubscriptionPlanInput; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanPeriod = { + __typename?: 'SubscriptionPlanPeriod'; + id: Scalars['ID']['output']; + initial?: Maybe; + name: Scalars['String']['output']; + recurring: SubscriptionPlanPhase; +}; + +export type SubscriptionPlanPeriodInput = { + id?: InputMaybe; + initial?: InputMaybe; + name: Scalars['String']['input']; + recurring: SubscriptionPlanPhaseInput; +}; + +export type SubscriptionPlanPeriodReferenceInput = { + id: Scalars['ID']['input']; + initial?: InputMaybe; + recurring: SubscriptionPlanPriceInput; +}; + +export type SubscriptionPlanPhase = { + __typename?: 'SubscriptionPlanPhase'; + period: Scalars['Int']['output']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionPlanPhaseInput = { + period: Scalars['Int']['input']; + unit: SubscriptionPeriodUnit; +}; + +export type SubscriptionPlanPriceInput = { + meteredVariables?: InputMaybe>; + price?: InputMaybe; + priceVariants?: InputMaybe>; +}; + +export type SubscriptionPlanQueries = { + __typename?: 'SubscriptionPlanQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type SubscriptionPlanQueriesGetArgs = { + identifier: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanQueriesGetManyArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type SubscriptionPlanReferenceInput = { + identifier: Scalars['String']['input']; + periods: Array; +}; + +export type SuggestSearchAggregations = { + __typename?: 'SuggestSearchAggregations'; + totalResults: Scalars['Int']['output']; + typesAggregation: Array; +}; + +export type SuggestSearchConnection = { + __typename?: 'SuggestSearchConnection'; + aggregations: SuggestSearchAggregations; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type SuggestSearchConnectionEdge = { + __typename?: 'SuggestSearchConnectionEdge'; + cursor: Scalars['String']['output']; + node: SuggestSearchResult; +}; + +export enum SuggestSearchItemType { + Document = 'DOCUMENT', + Folder = 'FOLDER', + Grid = 'GRID', + Pipeline = 'PIPELINE', + Product = 'PRODUCT', + Shape = 'SHAPE', + Topic = 'TOPIC', + Webhook = 'WEBHOOK', +} + +export type SuggestSearchResult = { + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; + type: Scalars['String']['output']; +}; + +export type SuggestSearchTypesAggregation = { + __typename?: 'SuggestSearchTypesAggregation'; + count: Scalars['Int']['output']; + type: Scalars['String']['output']; +}; + +export type Tax = { + __typename?: 'Tax'; + name?: Maybe; + percent?: Maybe; +}; + +export type TaxInput = { + name?: InputMaybe; + percent?: InputMaybe; +}; + +export type Tenant = { + __typename?: 'Tenant'; + authenticationMethod?: Maybe; + availableLanguages?: Maybe>; + copiedFrom?: Maybe; + createdAt: Scalars['DateTime']['output']; + defaults: TenantDefaults; + grids?: Maybe>; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; + isActive: Scalars['Boolean']['output']; + isTrial: Scalars['Boolean']['output']; + logo?: Maybe; + meta?: Maybe>; + metaProperty?: Maybe; + metrics?: Maybe; + name: Scalars['String']['output']; + preferences?: Maybe; + rootItemId: Scalars['ID']['output']; + shapes?: Maybe>; + /** Empty string for non-admin users. */ + signatureSecret: Scalars['String']['output']; + /** Empty string for non-admin users. */ + staticAuthToken?: Maybe; + topics?: Maybe>; + tree?: Maybe>; + updatedAt?: Maybe; + users?: Maybe>; + vatTypes?: Maybe>; + webhooks?: Maybe>; +}; + +export type TenantGridsArgs = { + language: Scalars['String']['input']; + versionLabel?: VersionLabel; +}; + +export type TenantMetaPropertyArgs = { + key: Scalars['String']['input']; +}; + +export type TenantTopicsArgs = { + language: Scalars['String']['input']; +}; + +export type TenantTreeArgs = { + versionLabel?: InputMaybe; +}; + +export type TenantWebhooksArgs = { + concern?: InputMaybe; + event?: InputMaybe; +}; + +export type TenantAuthenticationMethod = { + __typename?: 'TenantAuthenticationMethod'; + catalogue?: Maybe; + search?: Maybe; +}; + +export type TenantAuthenticationMethodInput = { + catalogue?: InputMaybe; + search?: InputMaybe; +}; + +export enum TenantCopyExcludeableTypes { + Assets = 'assets', + Customers = 'customers', + Orders = 'orders', + Users = 'users', + Webhooks = 'webhooks', +} + +export type TenantCopySource = { + __typename?: 'TenantCopySource'; + date: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + identifier: Scalars['String']['output']; +}; + +export type TenantDefaults = { + __typename?: 'TenantDefaults'; + currency: Scalars['String']['output']; + language: Scalars['String']['output']; +}; + +export type TenantDefaultsInput = { + currency?: InputMaybe; + language?: InputMaybe; +}; + +export type TenantFrontend = { + __typename?: 'TenantFrontend'; + /** @deprecated authentication property has been deprecated */ + authentication?: Maybe; + name: Scalars['String']['output']; + /** @deprecated responsive property has been deprecated */ + responsive?: Maybe; + url: Scalars['String']['output']; +}; + +export type TenantFrontendAuthentication = { + __typename?: 'TenantFrontendAuthentication'; + key: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type TenantFrontendAuthenticationInput = { + key: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type TenantFrontendInput = { + name: Scalars['String']['input']; + url: Scalars['String']['input']; +}; + +export type TenantMetrics = { + __typename?: 'TenantMetrics'; + apiCalls: ApiCallMetrics; + bandwidth: BandwidthUsageMetrics; + items: ItemMetrics; + orders: OrderMetrics; + shapes: ShapeMetrics; + users: UserMetrics; + webhooks: WebhookMetrics; +}; + +export type TenantMutations = { + __typename?: 'TenantMutations'; + addUsers: Array; + create: Tenant; + createCopyTask: BulkTaskTenantCopyInfo; + delete: Scalars['Int']['output']; + regenerateSecrets: Tenant; + /** @deprecated Replaced by regenerateSecrets */ + regenerateStaticAuthToken: Tenant; + removeUsers?: Maybe>; + setAuthenticationMethod: Tenant; + setPreferences: TenantPreferences; + update: Tenant; +}; + +export type TenantMutationsAddUsersArgs = { + roles: Array; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsCreateArgs = { + input: CreateTenantInput; +}; + +export type TenantMutationsCreateCopyTaskArgs = { + desiredIdentifier: Scalars['String']['input']; + desiredName?: InputMaybe; + exclude?: InputMaybe>; + overwrite?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type TenantMutationsRegenerateSecretsArgs = { + input?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsRegenerateStaticAuthTokenArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsRemoveUsersArgs = { + tenantId: Scalars['ID']['input']; + userIds: Array; +}; + +export type TenantMutationsSetAuthenticationMethodArgs = { + input?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsSetPreferencesArgs = { + input: TenantPreferencesInput; + tenantId: Scalars['ID']['input']; +}; + +export type TenantMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateTenantInput; +}; + +export type TenantPreferences = { + __typename?: 'TenantPreferences'; + frontends?: Maybe>>; +}; + +export type TenantPreferencesInput = { + frontends?: InputMaybe>; +}; + +export type TenantQueries = { + __typename?: 'TenantQueries'; + get?: Maybe; + getMany?: Maybe>; + getRootTopics?: Maybe>>; + suggestIdentifier: IdentifierSuggestion; +}; + +export type TenantQueriesGetArgs = { + id?: InputMaybe; + identifier?: InputMaybe; +}; + +export type TenantQueriesGetManyArgs = { + identifier?: InputMaybe; +}; + +export type TenantQueriesGetRootTopicsArgs = { + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TenantQueriesSuggestIdentifierArgs = { + desired: Scalars['String']['input']; +}; + +export type TenantReports = { + __typename?: 'TenantReports'; + orders: OrdersReport; + sales: SalesReport; +}; + +export type TenantReportsOrdersArgs = { + currency: Scalars['String']['input']; + end?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantReportsSalesArgs = { + currency: Scalars['String']['input']; + end?: InputMaybe; + start?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; + +export type TenantRoleInput = { + role: UserRole; + tenantId: Scalars['ID']['input']; +}; + +export enum TierType { + Graduated = 'graduated', + Volume = 'volume', +} + +export type Topic = { + __typename?: 'Topic'; + ancestors?: Maybe>; + childCount: Scalars['Int']['output']; + children?: Maybe>; + createdAt: Scalars['DateTime']['output']; + descendants?: Maybe>; + id: Scalars['ID']['output']; + items?: Maybe>; + language?: Maybe; + name?: Maybe; + parent?: Maybe; + parentId?: Maybe; + path: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type TopicConnection = { + __typename?: 'TopicConnection'; + edges?: Maybe>; + pageInfo: PageInfo; +}; + +export type TopicConnectionEdge = { + __typename?: 'TopicConnectionEdge'; + cursor: Scalars['String']['output']; + node: Topic; +}; + +export type TopicImagesModified = { + __typename?: 'TopicImagesModified'; + modified?: Maybe; +}; + +export type TopicItemsModified = { + __typename?: 'TopicItemsModified'; + modified?: Maybe; +}; + +export type TopicMutations = { + __typename?: 'TopicMutations'; + addImages: TopicImagesModified; + addItems: TopicItemsModified; + bulkCreate: Array; + create: Topic; + delete: Scalars['Int']['output']; + removeImages: TopicImagesModified; + removeItems: TopicItemsModified; + update: Topic; +}; + +export type TopicMutationsAddImagesArgs = { + imageKeys: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsAddItemsArgs = { + itemIds: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsBulkCreateArgs = { + input: Array; + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TopicMutationsCreateArgs = { + input: CreateTopicInput; + language: Scalars['String']['input']; +}; + +export type TopicMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type TopicMutationsRemoveImagesArgs = { + imageKeys: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsRemoveItemsArgs = { + itemIds: Array; + topicId: Scalars['ID']['input']; +}; + +export type TopicMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateTopicInput; + language: Scalars['String']['input']; +}; + +export type TopicQueries = { + __typename?: 'TopicQueries'; + /** Returns a specific topic. Topics can be queried either by ID or by path. */ + get?: Maybe; + getRootTopics?: Maybe>>; +}; + +export type TopicQueriesGetArgs = { + id?: InputMaybe; + language: Scalars['String']['input']; + path?: InputMaybe; +}; + +export type TopicQueriesGetRootTopicsArgs = { + language: Scalars['String']['input']; + tenantId: Scalars['ID']['input']; +}; + +export type TopicSearchAggregations = { + __typename?: 'TopicSearchAggregations'; + totalResults: Scalars['Int']['output']; +}; + +export type TopicSearchConnection = { + __typename?: 'TopicSearchConnection'; + aggregations: TopicSearchAggregations; + edges?: Maybe>; +}; + +export type TopicSearchConnectionEdge = { + __typename?: 'TopicSearchConnectionEdge'; + node: TopicSearchResult; +}; + +export type TopicSearchResult = { + __typename?: 'TopicSearchResult'; + display: Scalars['String']['output']; + id: Scalars['ID']['output']; + language: Scalars['String']['output']; + name: Scalars['String']['output']; + path: Scalars['String']['output']; + tenantId: Scalars['ID']['output']; +}; + +export type TrackUsageInput = { + description?: InputMaybe; + idempotencyKey?: InputMaybe; + meteredVariableId: Scalars['ID']['input']; + quantity: Scalars['Float']['input']; +}; + +export type TreeMutations = { + __typename?: 'TreeMutations'; + createNode: TreeNode; + deleteNode: Scalars['Int']['output']; + moveNode: TreeNode; +}; + +export type TreeMutationsCreateNodeArgs = { + input: FullTreeNodeInput; +}; + +export type TreeMutationsDeleteNodeArgs = { + itemId: Scalars['ID']['input']; +}; + +export type TreeMutationsMoveNodeArgs = { + input: TreeNodeInput; + itemId: Scalars['ID']['input']; +}; + +export type TreeNode = { + __typename?: 'TreeNode'; + aliases?: Maybe>; + ancestors?: Maybe>; + childCount?: Maybe; + children?: Maybe>; + history?: Maybe>; + identifiers?: Maybe>; + item?: Maybe; + itemId: Scalars['ID']['output']; + language?: Maybe; + parent?: Maybe; + parentId?: Maybe; + path?: Maybe; + pathResolutionMethod?: Maybe; + position?: Maybe; + shortcuts?: Maybe>; + siblings?: Maybe>; + versionLabel: VersionLabel; +}; + +export type TreeNodeItemArgs = { + language?: InputMaybe; +}; + +export type TreeNodePathArgs = { + language?: InputMaybe; +}; + +export type TreeNodeIdentifier = { + __typename?: 'TreeNodeIdentifier'; + identifier: Scalars['String']['output']; + language: Scalars['String']['output']; +}; + +export type TreeNodeIdentifierInput = { + identifier: Scalars['String']['input']; + language: Scalars['String']['input']; +}; + +export type TreeNodeInput = { + parentId: Scalars['ID']['input']; + position?: InputMaybe; +}; + +export type TreeQueries = { + __typename?: 'TreeQueries'; + getNode?: Maybe; +}; + +export type TreeQueriesGetNodeArgs = { + itemId: Scalars['ID']['input']; + language?: InputMaybe; + versionLabel?: VersionLabel; +}; + +export type UpdateAppInput = { + baseUrl?: InputMaybe; + name?: InputMaybe; +}; + +export type UpdateCustomerAddressInput = { + city?: InputMaybe; + country?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + postalCode?: InputMaybe; + state?: InputMaybe; + street?: InputMaybe; + street2?: InputMaybe; + streetNumber?: InputMaybe; + type?: InputMaybe; +}; + +export type UpdateCustomerInput = { + addresses?: InputMaybe>; + birthDate?: InputMaybe; + companyName?: InputMaybe; + email?: InputMaybe; + externalReferences?: InputMaybe>; + firstName?: InputMaybe; + lastName?: InputMaybe; + meta?: InputMaybe>; + middleName?: InputMaybe; + phone?: InputMaybe; + taxNumber?: InputMaybe; +}; + +export type UpdateDocumentInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type UpdateFolderInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; +}; + +export type UpdateGridInput = { + meta?: InputMaybe>; + name?: InputMaybe; + rows?: InputMaybe>; +}; + +export type UpdateImageInput = { + altText?: InputMaybe; + caption?: InputMaybe; + focalPoint?: InputMaybe; + meta?: InputMaybe>; + showcase?: InputMaybe>; +}; + +export type UpdateLanguageInput = { + name: Scalars['String']['input']; +}; + +export type UpdateMarketInput = { + customerIdentifiers?: InputMaybe>; + name?: InputMaybe; +}; + +export type UpdateOrderInput = { + additionalInformation?: InputMaybe; + cart?: InputMaybe>; + customer?: InputMaybe; + meta?: InputMaybe>; + payment?: InputMaybe>; + total?: InputMaybe; +}; + +export type UpdatePipelineInput = { + name: Scalars['String']['input']; +}; + +export type UpdatePipelineStageInput = { + name?: InputMaybe; + placeNewOrders?: InputMaybe; +}; + +export type UpdatePriceListInput = { + endDate?: InputMaybe; + modifierType?: InputMaybe; + name?: InputMaybe; + priceVariants?: InputMaybe>; + selectedProductVariants?: InputMaybe; + startDate?: InputMaybe; + targetAudience?: InputMaybe; +}; + +export type UpdatePriceVariantInput = { + currency?: InputMaybe; + name?: InputMaybe; +}; + +export type UpdateProductInput = { + components?: InputMaybe>; + createdAt?: InputMaybe; + externalReference?: InputMaybe; + name?: InputMaybe; + topicIds?: InputMaybe>; + variants?: InputMaybe>; + vatTypeId?: InputMaybe; +}; + +export type UpdateProductSubscriptionInput = { + addresses?: InputMaybe>; + initial?: InputMaybe; + item?: InputMaybe; + payment?: InputMaybe; + recurring?: InputMaybe; + status?: InputMaybe; +}; + +export type UpdateProductSubscriptionItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; + quantity?: InputMaybe; + sku?: InputMaybe; +}; + +export type UpdateProductSubscriptionPhaseInput = { + currency?: InputMaybe; + price?: InputMaybe; +}; + +export type UpdateProductSubscriptionStatusInput = { + activeUntil?: InputMaybe; + currency?: InputMaybe; + price?: InputMaybe; + renewAt?: InputMaybe; +}; + +export type UpdateProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + id?: InputMaybe; + images?: InputMaybe>; + isDefault?: InputMaybe; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku?: InputMaybe; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type UpdateShapeInput = { + components?: InputMaybe>; + meta?: InputMaybe>; + name?: InputMaybe; + variantComponents?: InputMaybe>; +}; + +export type UpdateSingleProductVariantInput = { + attributes?: InputMaybe>; + components?: InputMaybe>; + externalReference?: InputMaybe; + images?: InputMaybe>; + name?: InputMaybe; + price?: InputMaybe; + priceVariants?: InputMaybe>; + sku?: InputMaybe; + stock?: InputMaybe; + stockLocations?: InputMaybe>; + subscriptionPlans?: InputMaybe>; + videos?: InputMaybe>; +}; + +export type UpdateStockLocationInput = { + name?: InputMaybe; + settings?: InputMaybe; +}; + +export type UpdateSubscriptionContractInput = { + addresses?: InputMaybe>; + initial?: InputMaybe; + item?: InputMaybe; + payment?: InputMaybe; + recurring?: InputMaybe; + status?: InputMaybe; +}; + +export type UpdateSubscriptionContractItemInput = { + imageUrl?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; + quantity?: InputMaybe; + sku?: InputMaybe; +}; + +export type UpdateSubscriptionContractPhaseInput = { + currency?: InputMaybe; + meteredVariables?: InputMaybe>; + price?: InputMaybe; +}; + +export type UpdateSubscriptionContractStatusInput = { + activeUntil?: InputMaybe; + currency?: InputMaybe; + price?: InputMaybe; + renewAt?: InputMaybe; +}; + +export type UpdateSubscriptionPlanInput = { + meteredVariables?: InputMaybe>; + name?: InputMaybe; + periods?: InputMaybe>; +}; + +export type UpdateTenantInput = { + defaults?: InputMaybe; + isActive?: InputMaybe; + isTrial?: InputMaybe; + logo?: InputMaybe; + meta?: InputMaybe>; + name?: InputMaybe; +}; + +export type UpdateTopicInput = { + name?: InputMaybe; + parentId?: InputMaybe; + pathIdentifier?: InputMaybe; +}; + +export type UpdateUserInput = { + companyName?: InputMaybe; + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; + marketingEmailConsentedAt?: InputMaybe; + tocReadAt?: InputMaybe; +}; + +export type UpdateVatTypeInput = { + name?: InputMaybe; + percent?: InputMaybe; +}; + +export type UpdateWebhookInput = { + concern?: InputMaybe; + event?: InputMaybe; + graphqlQuery?: InputMaybe; + headers?: InputMaybe>; + method?: InputMaybe; + name?: InputMaybe; + url?: InputMaybe; +}; + +export type UploadField = { + __typename?: 'UploadField'; + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type User = { + __typename?: 'User'; + accessTokens?: Maybe>; + companyName?: Maybe; + createdAt?: Maybe; + email?: Maybe; + firstName?: Maybe; + id: Scalars['ID']['output']; + isAdmin: Scalars['Boolean']['output']; + lastName?: Maybe; + lastSeenAt?: Maybe; + marketingEmailConsentedAt?: Maybe; + preferences?: Maybe; + role?: Maybe; + sub: Array; + tenants?: Maybe>; + tocReadAt?: Maybe; +}; + +export type UserPreferencesArgs = { + tenantId?: InputMaybe; +}; + +export type UserRoleArgs = { + tenantId: Scalars['ID']['input']; +}; + +export type UserMetrics = { + __typename?: 'UserMetrics'; + count: Scalars['Int']['output']; +}; + +export type UserMetricsCountArgs = { + role?: InputMaybe; +}; + +export type UserMutations = { + __typename?: 'UserMutations'; + addTenants: Array; + create: User; + delete: Scalars['Int']['output']; + generateAccessToken: AccessToken; + grantAdminRights: User; + removeTenants?: Maybe>; + revokeAdminRights: User; + update: User; +}; + +export type UserMutationsAddTenantsArgs = { + roles: Array; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsCreateArgs = { + input: CreateUserInput; +}; + +export type UserMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type UserMutationsGenerateAccessTokenArgs = { + input: CreateAccessTokenInput; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsGrantAdminRightsArgs = { + userId: Scalars['ID']['input']; +}; + +export type UserMutationsRemoveTenantsArgs = { + tenantIds: Array; + userId: Scalars['ID']['input']; +}; + +export type UserMutationsRevokeAdminRightsArgs = { + userId: Scalars['ID']['input']; +}; + +export type UserMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input?: InputMaybe; +}; + +export type UserQueries = { + __typename?: 'UserQueries'; + dev_search?: Maybe>; + get?: Maybe; + getMany: Array; + me?: Maybe; +}; + +export type UserQueriesDev_SearchArgs = { + email?: InputMaybe; + firstName?: InputMaybe; + lastName?: InputMaybe; +}; + +export type UserQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export enum UserRole { + Custom = 'custom', + TenantAdmin = 'tenantAdmin', + User = 'user', +} + +export type UserRoleInput = { + role: UserRole; + userId: Scalars['ID']['input']; +}; + +export enum UserRoles { + TenantAdmin = 'TenantAdmin', + User = 'User', +} + +export type UserTenantRole = { + __typename?: 'UserTenantRole'; + role: Scalars['String']['output']; + roleName: Scalars['String']['output']; + tenant: Tenant; + tenantId: Scalars['ID']['output']; + user: User; + userId: Scalars['ID']['output']; +}; + +export type VatType = { + __typename?: 'VatType'; + createdAt: Scalars['DateTime']['output']; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + percent: Scalars['Float']['output']; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; +}; + +export type VatTypeMutations = { + __typename?: 'VatTypeMutations'; + create: VatType; + delete: Scalars['Int']['output']; + update: VatType; +}; + +export type VatTypeMutationsCreateArgs = { + input: CreateVatTypeInput; +}; + +export type VatTypeMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type VatTypeMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateVatTypeInput; +}; + +export type VersionInfo = { + __typename?: 'VersionInfo'; + apiVersion: Scalars['String']['output']; + commitSha: Scalars['String']['output']; +}; + +export enum VersionLabel { + Current = 'current', + Draft = 'draft', + Published = 'published', +} + +export type VersionedRecordInfo = { + __typename?: 'VersionedRecordInfo'; + createdAt: Scalars['DateTime']['output']; + id?: Maybe; + label: VersionLabel; + owner?: Maybe; +}; + +export type VersionedServices = { + __typename?: 'VersionedServices'; + core: VersionInfo; + federated: Scalars['Boolean']['output']; + metrics?: Maybe; + reporting?: Maybe; + search?: Maybe; + subscriptions?: Maybe; +}; + +export type Video = { + __typename?: 'Video'; + id: Scalars['String']['output']; + playlist?: Maybe; + playlists?: Maybe>; + thumbnails?: Maybe>; + title?: Maybe; +}; + +export type VideoPlaylistArgs = { + type: Scalars['String']['input']; +}; + +export type VideoContent = { + __typename?: 'VideoContent'; + videos?: Maybe>; +}; + +export type VideoInput = { + key: Scalars['String']['input']; + thumbnails?: InputMaybe>; + title?: InputMaybe; +}; + +export type VideoMutations = { + __typename?: 'VideoMutations'; + addPlaylists: Video; +}; + +export type VideoMutationsAddPlaylistsArgs = { + keys: Array; + videoId: Scalars['String']['input']; +}; + +export type VideosComponentConfig = { + __typename?: 'VideosComponentConfig'; + multilingual?: Maybe; +}; + +export type VideosComponentConfigInput = { + multilingual?: InputMaybe; +}; + +export type Webhook = { + __typename?: 'Webhook'; + concern: Scalars['String']['output']; + createdAt?: Maybe; + event: Scalars['String']['output']; + graphqlQuery?: Maybe; + headers?: Maybe>; + id: Scalars['ID']['output']; + lastInvocation?: Maybe; + method: HttpMethod; + name: Scalars['String']['output']; + pastInvocations?: Maybe>; + tenant?: Maybe; + tenantId: Scalars['ID']['output']; + updatedAt?: Maybe; + url: Scalars['String']['output']; +}; + +export type WebhookPastInvocationsArgs = { + limit?: InputMaybe; +}; + +export type WebhookHeader = { + __typename?: 'WebhookHeader'; + name: Scalars['String']['output']; + value: Scalars['String']['output']; +}; + +export type WebhookHeaderInput = { + name: Scalars['String']['input']; + value: Scalars['String']['input']; +}; + +export type WebhookInvocation = { + __typename?: 'WebhookInvocation'; + end?: Maybe; + payload?: Maybe; + response?: Maybe; + start?: Maybe; +}; + +export type WebhookInvocationResponse = { + __typename?: 'WebhookInvocationResponse'; + body?: Maybe; + status?: Maybe; +}; + +export type WebhookMetrics = IObjectMetrics & { + __typename?: 'WebhookMetrics'; + count: Scalars['Int']['output']; +}; + +export type WebhookMetricsCountArgs = { + end?: InputMaybe; + start?: InputMaybe; +}; + +export type WebhookMutations = { + __typename?: 'WebhookMutations'; + create: Webhook; + /** @deprecated This internal use only mutation has been deprecated and will can no longer be used to register webhook invocations. */ + delete: Scalars['Int']['output']; + registerInvocation: WebhookInvocation; + update: Webhook; +}; + +export type WebhookMutationsCreateArgs = { + input: CreateWebhookInput; +}; + +export type WebhookMutationsDeleteArgs = { + id: Scalars['ID']['input']; +}; + +export type WebhookMutationsRegisterInvocationArgs = { + input?: InputMaybe; + webhookId: Scalars['ID']['input']; +}; + +export type WebhookMutationsUpdateArgs = { + id: Scalars['ID']['input']; + input: UpdateWebhookInput; +}; + +export type WebhookQueries = { + __typename?: 'WebhookQueries'; + get?: Maybe; + getMany?: Maybe>; +}; + +export type WebhookQueriesGetArgs = { + id: Scalars['ID']['input']; +}; + +export type WebhookQueriesGetManyArgs = { + concern?: InputMaybe; + event?: InputMaybe; + tenantId: Scalars['ID']['input']; +}; diff --git a/components/translation-app/src/components/copy-button.tsx b/components/translation-app/src/components/copy-button.tsx new file mode 100644 index 0000000..28eac92 --- /dev/null +++ b/components/translation-app/src/components/copy-button.tsx @@ -0,0 +1,19 @@ +import { IconButton, Icon, Tooltip } from '@crystallize/design-system'; +export const CopyButton = ({ text, variant = 'default' }: { text: string; variant?: 'elevate' | 'default' }) => { + const handleCopy = async (e: any) => { + e.preventDefault(); + e.stopPropagation(); + try { + await navigator.clipboard.writeText(text); + } catch (error) { + console.log(error); + } + }; + return ( + + + + + + ); +}; diff --git a/components/translation-app/src/components/dropdown.tsx b/components/translation-app/src/components/dropdown.tsx new file mode 100644 index 0000000..e2cd8cd --- /dev/null +++ b/components/translation-app/src/components/dropdown.tsx @@ -0,0 +1,48 @@ +import { Button, DropdownMenu, Icon } from '@crystallize/design-system'; + +type DropdownProps = { + options: { name: string; code: string }[]; + onSelectOption: (code: string) => void; + buttonText: string; + selectedOption?: string; +}; + +const DropdownContent = ({ options, onSelectOption }: Pick) => ( +
+ {options.map((option) => { + return ( + onSelectOption(option.code)} + className="font-medium px-2 py-1 text-sm text-center cursor-pointer" + > + {option.name} ({option.code}) + + ); + })} +
+); + +function Dropdown({ options, selectedOption, onSelectOption, buttonText }: DropdownProps) { + const selected = options.find((opt) => opt.code === selectedOption); + + return ( +
+ }> + + +
+ ); +} + +export default Dropdown; diff --git a/components/translation-app/src/components/loader.tsx b/components/translation-app/src/components/loader.tsx new file mode 100644 index 0000000..66f51b3 --- /dev/null +++ b/components/translation-app/src/components/loader.tsx @@ -0,0 +1,13 @@ +export const Loader = () => { + return ( +
+
+
+
+
+
+
+ Loading... +
+ ); +}; diff --git a/components/translation-app/src/components/shape-components/choice/index.tsx b/components/translation-app/src/components/shape-components/choice/index.tsx new file mode 100644 index 0000000..0dce092 --- /dev/null +++ b/components/translation-app/src/components/shape-components/choice/index.tsx @@ -0,0 +1,114 @@ +import { componentType } from '../helpers'; +import { CopyButton } from '~/components/copy-button'; +import { IconButton, Icon, Tooltip } from '@crystallize/design-system'; +import TextareaAutosize from 'react-textarea-autosize'; + +const ComponentChoice = ({ + data, + item, + setEditedTranslation, + isOnVariant, +}: { + data: any; + item: { + id: string; + language: string; + sku?: string; + productId?: string; + }; + setEditedTranslation: any; + isOnVariant?: boolean; +}) => { + const handleClick = async (e: any) => { + e.preventDefault(); + e.stopPropagation(); + try { + await fetch('/api/update', { + method: 'POST', + body: JSON.stringify({ + id: item.id, + language: item.language, + componentId: data.id, + content: data?.selectedComponent, + type: isOnVariant ? 'variantComponentChoice' : 'componentChoice', + sku: item?.sku, + productId: item?.productId, + }), + }); + } catch (error) { + console.log(error); + } + }; + + const selectedComponent = data?.selectedComponent; + + const handleChange = (e: any) => { + setEditedTranslation((prev: any) => { + return prev.map((i: any) => (i.id === data.id ? { ...i, translation: e.target.value } : i)); + }); + }; + + const onVariantChange = (e: any) => { + setEditedTranslation((prev: any) => { + return prev.map((i: any) => { + const newItem = { ...i }; + if (i?.id === item?.id) { + newItem.components = newItem.components.map((component: any) => { + if (component?.id === data?.id) { + component.selectedComponent.translation = e.target.value; + } + return component; + }); + } + return newItem; + }); + }); + }; + + return ( +
+
+
+ {componentType['componentChoice']} + {data?.id} +
+
+ + + + + +
+
+
+
+ {selectedComponent?.type === 'singleLine' && ( + + )} +
+ +
+
+ + {selectedComponent?.type === 'richText' && ( +
+ +
+ +
+
+ )} +
+
+ ); +}; + +export default ComponentChoice; diff --git a/components/translation-app/src/components/shape-components/componentFactory/index.tsx b/components/translation-app/src/components/shape-components/componentFactory/index.tsx new file mode 100644 index 0000000..bb80fae --- /dev/null +++ b/components/translation-app/src/components/shape-components/componentFactory/index.tsx @@ -0,0 +1,118 @@ +import { SingleLine, RichText, ParagraphCollection } from '../index'; +import { CopyButton } from '~/components/copy-button'; +import { componentType } from '../helpers'; +import type { ComponentWithTranslation } from '~/use-cases/contracts/types'; +import type { ParagraphCollectionContent, RichTextContent, SingleLineContent } from '~/__generated__/types'; + +type StructuralColor = { + text: string; + bg: string; +}; + +const getTranslation = (component: ComponentWithTranslation) => { + if (component.type === 'singleLine') { + return (component.content as SingleLineContent)?.text ?? ''; + } + + if (component.type === 'richText') { + return (component.content as RichTextContent).plainText?.toString() ?? ''; + } + + if (component.type === 'paragraphCollection') { + return ( + (component.content as ParagraphCollectionContent).paragraphs + ?.map((paragraph) => `${paragraph.title} \n ${paragraph.body}`) + .join('\n\n') ?? '' + ); + } + + return ''; +}; + +export default function ComponentFactory({ + component, + isStructuralComponent, + structuralColor, +}: { + isStructuralComponent?: boolean; + structuralColor?: StructuralColor; + component: ComponentWithTranslation; +}) { + const componentTypes: Record = { + singleLine: , + richText: , + paragraphCollection: , + }; + + const { type, translationState } = component; + const hasTranslation = translationState === 'translated'; + const isTranslating = translationState === 'translating'; + + if (!component.content || ('paragraphs' in component.content && !component.content?.paragraphs?.length)) { + return null; + } + + if (isStructuralComponent) { + return ( +
+
+
+ {hasTranslation && ( +
+ ✓ +
+ )} + + {component?.componentId} + + {isTranslating && ( +
+ )} +
+
+ +
+ {componentTypes[type]} + {hasTranslation && ( +
+
+ +
+
+ )} +
+
+ ); + } + + return ( +
+
+
+ {hasTranslation ? ( +
+ ✓ +
+ ) : ( +
{componentType[type]}
+ )} + {component?.componentId} + {isTranslating && ( +
+ )} +
+
+ +
+ {componentTypes[type]} + {hasTranslation && ( +
+
+ +
+
+ )} +
+
+ ); +} diff --git a/components/translation-app/src/components/shape-components/content-chunk/index.tsx b/components/translation-app/src/components/shape-components/content-chunk/index.tsx new file mode 100644 index 0000000..02d2fa3 --- /dev/null +++ b/components/translation-app/src/components/shape-components/content-chunk/index.tsx @@ -0,0 +1,57 @@ +import { componentType } from '../helpers'; +import { CopyButton } from '~/components/copy-button'; +import TextareaAutosize from 'react-textarea-autosize'; +import { IconButton, Icon, Tooltip } from '@crystallize/design-system'; +import ComponentFactory from '../componentFactory'; +const ContentChunk = ({ + data, + item, + setEditedTranslation, +}: { + data: any; + item: { id: string; language: string }; + setEditedTranslation: any; +}) => { + const hasTranslation = false; + Object.keys(data.content).map((chunk, i) => { + console.log({ data }); + console.log({ chunk }); + return ( +
+
+
+ {hasTranslation ? ( +
+ ✓ +
+ ) : ( +
+ +
+ )} + Meta + {/* {loading && !hasTranslation && ( +
+ )} */} +
+
+ {/* {hasTranslation && ( +
+ + + + + + +
+ )} */} +
+
+ +
abs
+
+ ); + }); +}; + +export default ContentChunk; diff --git a/components/translation-app/src/components/shape-components/helpers.tsx b/components/translation-app/src/components/shape-components/helpers.tsx new file mode 100644 index 0000000..c1fb31f --- /dev/null +++ b/components/translation-app/src/components/shape-components/helpers.tsx @@ -0,0 +1,9 @@ +import { Icon } from '@crystallize/design-system'; + +export const componentType: Record = { + singleLine: , + richText: , + paragraphCollection: , + contentChunk: , + componentChoice: , +}; diff --git a/components/translation-app/src/components/shape-components/index.ts b/components/translation-app/src/components/shape-components/index.ts new file mode 100644 index 0000000..7e4c941 --- /dev/null +++ b/components/translation-app/src/components/shape-components/index.ts @@ -0,0 +1,7 @@ +import { SingleLine } from './single-line'; +import { RichText } from './rich-text'; +import { ParagraphCollection } from './paragraph-collection'; +import ContentChunk from './content-chunk'; +import ComponentChoice from './choice'; + +export { SingleLine, RichText, ParagraphCollection, ContentChunk, ComponentChoice }; diff --git a/components/translation-app/src/components/shape-components/paragraph-collection/index.tsx b/components/translation-app/src/components/shape-components/paragraph-collection/index.tsx new file mode 100644 index 0000000..c01ee67 --- /dev/null +++ b/components/translation-app/src/components/shape-components/paragraph-collection/index.tsx @@ -0,0 +1,50 @@ +import { CopyButton } from '~/components/copy-button'; +import TextareaAutosize from 'react-textarea-autosize'; +import type { ComponentWithTranslation } from '~/use-cases/contracts/types'; +import type { ParagraphCollectionContent } from '~/__generated__/types'; + +export const ParagraphCollection = ({ data }: { data: ComponentWithTranslation }) => { + const paragraphs = (data.content as ParagraphCollectionContent)?.paragraphs ?? []; + const hasTranslation = data.translationState === 'translated'; + + return ( +
+ {paragraphs?.map((el: any, innerIndex: number) => { + return ( +
+
+ +
+
+ +
+ {el?.images && ( +
+ {el?.images?.map((image: any, index: number) => ( +
+ Item +
+ ))} +
+ )} +
+ ); + })} +
+ ); +}; diff --git a/components/translation-app/src/components/shape-components/rich-text/index.tsx b/components/translation-app/src/components/shape-components/rich-text/index.tsx new file mode 100644 index 0000000..44861c7 --- /dev/null +++ b/components/translation-app/src/components/shape-components/rich-text/index.tsx @@ -0,0 +1,17 @@ +import TextareaAutosize from 'react-textarea-autosize'; +import type { ComponentWithTranslation } from '~/use-cases/contracts/types'; +import type { RichTextContent } from '~/__generated__/types'; + +export const RichText = ({ data }: { data: ComponentWithTranslation }) => { + const hasTranslation = data.translationState === 'translated'; + + return ( + a) ?? ''} + className={`${ + !hasTranslation ? 'text-base font-normal text-gray-400 italic' : 'text-base font-normal' + } !bg-[#fff] w-full px-6 py-3 min-h-[140px]`} + disabled={!hasTranslation} + /> + ); +}; diff --git a/components/translation-app/src/components/shape-components/single-line/index.tsx b/components/translation-app/src/components/shape-components/single-line/index.tsx new file mode 100644 index 0000000..9f6ad87 --- /dev/null +++ b/components/translation-app/src/components/shape-components/single-line/index.tsx @@ -0,0 +1,16 @@ +import type { ComponentWithTranslation } from '~/use-cases/contracts/types'; +import type { SingleLineContent } from '~/__generated__/types'; + +export const SingleLine = ({ data }: { data: ComponentWithTranslation }) => { + const hasTranslation = data?.translationState === 'translated'; + + return ( + + ); +}; diff --git a/components/translation-app/src/components/translation-form.tsx b/components/translation-app/src/components/translation-form.tsx new file mode 100644 index 0000000..547ceb7 --- /dev/null +++ b/components/translation-app/src/components/translation-form.tsx @@ -0,0 +1,104 @@ +import ComponentFactory from './shape-components/componentFactory'; +import type { ContentChunkContent, ComponentChoiceContent } from '~/__generated__/types'; +import { componentType } from './shape-components/helpers'; +import type { ComponentWithTranslation } from '../use-cases/contracts/types'; +import { allowedTypes } from '~/use-cases/contracts/allowed-components'; + +type TranslationFormProps = { + components?: ComponentWithTranslation[]; +}; + +export const colorMap = [ + { bg: 'bg-s-purple-100', text: 'text-s-purple-500' }, + { bg: 'bg-s-green-100', text: 'text-s-green-600' }, + { bg: 'bg-s-blue-100', text: 'text-s-blue-500' }, + { bg: 'bg-green-100', text: 'text-green-500' }, + { bg: 'bg-s-orange-100', text: 'text-s-orange-500' }, + { bg: 'bg-s-pink-100', text: 'text-s-pink-500' }, + { bg: 'bg-cyan-100', text: 'text-cyan-600' }, +]; + +export function TranslationForm({ components }: TranslationFormProps) { + return ( +
+
+ {components?.map((component) => { + const { type } = component; + + if (type === 'contentChunk') { + return ( +
+ {(component.content as ContentChunkContent)?.chunks.map((chunk, index) => { + const color = colorMap[index % colorMap.length]; + return ( +
+
+
{componentType['contentChunk']}
+ + {component?.componentId} {`#${index + 1}`} + +
+ +
+ {chunk.map((chunkComponent) => { + if (!allowedTypes.includes(chunkComponent.type)) { + return null; + } + + return ( + + ); + })} +
+
+ ); + })} +
+ ); + } + + if ( + type === 'componentChoice' && + allowedTypes.includes((component?.content as ComponentChoiceContent)?.selectedComponent.type) + ) { + return ( +
+
+
{componentType[type]}
+ + {component?.componentId} + +
+
+ +
+
+ ); + } + + if (!allowedTypes.includes(component.type)) { + return null; + } + + return ( +
+ +
+ ); + })} +
+
+ ); +} diff --git a/components/translation-app/src/components/translation-progress.tsx b/components/translation-app/src/components/translation-progress.tsx new file mode 100644 index 0000000..f10eae9 --- /dev/null +++ b/components/translation-app/src/components/translation-progress.tsx @@ -0,0 +1,57 @@ +type TranslationProgressProps = { + currentProcessingTranslationsCount: number; + totalProcessingTranslationsCount: number; +}; + +export function TranslationProgress({ + currentProcessingTranslationsCount, + totalProcessingTranslationsCount, +}: TranslationProgressProps) { + if (totalProcessingTranslationsCount === 0) { + return null; + } + const progressInLeft = (100 * currentProcessingTranslationsCount) / totalProcessingTranslationsCount; + const translationIsDone = + totalProcessingTranslationsCount - currentProcessingTranslationsCount === totalProcessingTranslationsCount; + + return ( +
+ {translationIsDone ? ( +
+
+ ✓ +
+ Translation done +
+ ) : ( + <> + +
+ +
+ + + Translating, do not close the window + + + + {totalProcessingTranslationsCount - currentProcessingTranslationsCount}/ + {totalProcessingTranslationsCount} + +
+ + )} +
+ ); +} diff --git a/components/translation-app/src/components/translation-properties.tsx b/components/translation-app/src/components/translation-properties.tsx new file mode 100644 index 0000000..f55c855 --- /dev/null +++ b/components/translation-app/src/components/translation-properties.tsx @@ -0,0 +1,55 @@ +import type { PropertyWithTranslation } from '~/use-cases/contracts/types'; +import { CopyButton } from '~/components/copy-button'; + +type TranslationPropertiesProps = { + properties: PropertyWithTranslation[]; +}; + +export function TranslationProperties({ properties }: TranslationPropertiesProps) { + return ( +
+ {properties.map((property) => { + const hasTranslation = property.translationState === 'translated'; + const isTranslating = property.translationState === 'translating'; + + return ( +
+
+
+ {hasTranslation && ( +
+ ✓ +
+ )} + {property.type} + {isTranslating && ( +
+ )} +
+
+ +
+ + {hasTranslation && ( +
+
+ +
+
+ )} +
+
+ ); + })} +
+ ); +} diff --git a/components/translation-app/src/components/translation-toolbar.tsx b/components/translation-app/src/components/translation-toolbar.tsx new file mode 100644 index 0000000..a769723 --- /dev/null +++ b/components/translation-app/src/components/translation-toolbar.tsx @@ -0,0 +1,116 @@ +import { Button, Icon, Label, Checkbox } from '@crystallize/design-system'; +import { useState } from 'react'; +import Dropdown from './dropdown'; +import type { Preferences } from '../use-cases/contracts/types'; +import { useLocation, useNavigate } from '@remix-run/react'; + +type TranslationToolbarProps = { + availableLanguages: { code: string; name: string }[]; + fromLanguage: string; + toLanguage: string | null; + onTranslate: ({ + shouldPushTranslationToDraft, + shouldIncludeAllVariants, + customPromptFromUser, + }: Preferences) => void; +}; + +export function TranslationToolbar({ + fromLanguage, + toLanguage, + availableLanguages, + onTranslate, +}: TranslationToolbarProps) { + const navigate = useNavigate(); + const { pathname, search } = useLocation(); + + const selected = availableLanguages.find((lang) => lang.code === toLanguage); + const [preferences, setPreferences] = useState({ + shouldPushTranslationToDraft: true, + shouldIncludeAllVariants: false, + customPromptFromUser: '', + }); + + return ( +
+
+ + setPreferences((prev) => ({ + ...prev, + customPromptFromUser: e.target.value, + })) + } + /> +
+ +
+
+
+
+
+ { + const query = new URLSearchParams(search); + query.set('fromLanguage', code); + navigate(`${pathname}?${query.toString()}`); + }} + /> +
+ to +
+ { + const query = new URLSearchParams(search); + query.set('toLanguage', code); + navigate(`${pathname}?${query.toString()}`); + }} + /> +
+
+
+ + +
+
+
+ ); +} diff --git a/components/translation-app/src/components/translation-view.tsx b/components/translation-app/src/components/translation-view.tsx new file mode 100644 index 0000000..5091969 --- /dev/null +++ b/components/translation-app/src/components/translation-view.tsx @@ -0,0 +1,64 @@ +import type { Component, ItemType } from '~/__generated__/types'; + +import { TranslationForm } from '~/components/translation-form'; +import { TranslationToolbar } from '~/components/translation-toolbar'; +import { TranslationProgress } from '~/components/translation-progress'; +import { TranslationProperties } from '~/components/translation-properties'; +import { useTranslations } from '~/core/use-translations'; +import type { Property } from '~/use-cases/contracts/types'; +import type { SerializeFrom } from '@remix-run/node'; + +type TranslationViewProps = { + itemId: string; + itemType: ItemType; + availableLanguages: { code: string; name: string }[]; + fromLanguage: string; + toLanguage: string | null; + variantSku?: string | null; + properties: SerializeFrom; + components?: SerializeFrom; +}; + +export function TranslationView({ + itemId, + itemType, + fromLanguage, + toLanguage, + components, + properties, + availableLanguages, + variantSku, +}: TranslationViewProps) { + const { + componentWithTranslation, + propertiesWithTranslation, + onTranslate, + currentProcessingTranslationsCount, + totalProcessingTranslationsCount, + } = useTranslations({ + itemId, + itemType, + fromLanguage, + toLanguage, + components, + variantSku, + properties, + }); + + return ( +
+ + + + +
+ ); +} diff --git a/components/translation-app/src/core/authentication.server.ts b/components/translation-app/src/core/authentication.server.ts new file mode 100644 index 0000000..64c7ffa --- /dev/null +++ b/components/translation-app/src/core/authentication.server.ts @@ -0,0 +1,66 @@ +import type { CrystallizeSignature } from '@crystallize/js-api-client'; +import { type JWTPayload, SignJWT, jwtVerify } from 'jose'; + +interface JWTOptions { + expiresIn: string; + audience: string; + subject: string; + issuer: string; +} + +type Deps = { + jwtSecret: string; + crystallizeSignatureSecret: string; +}; + +type Auth = { + userId: string; + tenantId: string; + tenantIdentifier: string; +}; + +export const createAuthGuard = ({ jwtSecret, crystallizeSignatureSecret }: Deps) => { + const decodeCrystallizeSignature = async (signature: string): Promise => { + const payload = (await jwtVerify(signature, new TextEncoder().encode(crystallizeSignatureSecret))) + .payload as CrystallizeSignature; + // we don't need to check the HMAC here, as there is no body in URL requests + return payload; + }; + const createCookieToken = async ( + payload: Pick, + { expiresIn, audience, issuer, subject }: JWTOptions, + ): Promise => { + const token = await new SignJWT({ + ...payload, + iss: issuer, + sub: subject, + aud: audience, + }) + .setProtectedHeader({ alg: 'HS256' }) + .setIssuedAt() + .setExpirationTime(expiresIn) + .sign(new TextEncoder().encode(jwtSecret)); + return token; + }; + + const getAuthFromCookieToken = async (token: string): Promise => { + const decoded = await decodeToken(token); + return { + userId: decoded.userId, + tenantId: decoded.tenantId, + tenantIdentifier: decoded.tenantIdentifier, + } as Auth; + }; + + const decodeToken = async (token: string): Promise & { aud: string }> => { + return (await jwtVerify(token, new TextEncoder().encode(jwtSecret))).payload as Omit & { + aud: string; + }; + }; + + return { + decodeCrystallizeSignature, + createCookieToken, + getAuthFromCookieToken, + }; +}; diff --git a/components/translation-app/src/core/get-component-type.ts b/components/translation-app/src/core/get-component-type.ts new file mode 100644 index 0000000..19de0ca --- /dev/null +++ b/components/translation-app/src/core/get-component-type.ts @@ -0,0 +1,5 @@ +export const getComponentByType = (type: string, arr: any) => { + return arr?.components?.filter((comp: any) => { + return comp.type === type; + }); +}; diff --git a/components/translation-app/src/core/services.server.ts b/components/translation-app/src/core/services.server.ts new file mode 100644 index 0000000..f84da16 --- /dev/null +++ b/components/translation-app/src/core/services.server.ts @@ -0,0 +1,91 @@ +import { createClient } from '@crystallize/js-api-client'; +import { createTranslator } from './translator.server'; +import { createAuthGuard } from './authentication.server'; + +import { createCookieSessionStorage, redirect } from '@remix-run/node'; +import { getApi } from '~/use-cases/crystallize'; + +const AUTH_SESSION_NAME = 'crystallize-translation-app-auth-token'; +const COOKIE_EXPIRES_IN = 5; + +const { getSession, commitSession } = createCookieSessionStorage({ + cookie: { + name: '__session', + httpOnly: true, + path: '/', + sameSite: 'none', + secrets: [`s3c${process.env.CRYSTALLIZE_SIGNATURE_SECRET}ret1`], + secure: true, + }, +}); + +export const buildServices = async (request: Request) => { + const guard = createAuthGuard({ + jwtSecret: `${process.env.JWT_SECRET}`, + crystallizeSignatureSecret: `${process.env.CRYSTALLIZE_SIGNATURE_SECRET}`, + }); + + const session = await getSession(request.headers.get('Cookie')); + if (!session.has(AUTH_SESSION_NAME)) { + console.log('no auth session'); + const url = new URL(request.url); + const signature = url.searchParams.get('crystallizeSignature') || ''; + if (!signature) { + throw redirect('/invalid'); + } + const payload = await guard.decodeCrystallizeSignature(signature); + const host = request.headers.get('host') || url.host; + const token = await guard.createCookieToken( + { + tenantId: payload.tenantId, + tenantIdentifier: payload.tenantIdentifier, + userId: payload.userId, + }, + { + expiresIn: COOKIE_EXPIRES_IN + 'd', + audience: host, + issuer: 'crystallize-translation-app', + subject: 'crystallize-app', + }, + ); + session.set(AUTH_SESSION_NAME, token); + throw redirect(`/?${url.searchParams.toString()}`, { + headers: { + 'Set-Cookie': await commitSession(session), + }, + }); + } + + const auth = await guard.getAuthFromCookieToken(session.get(AUTH_SESSION_NAME)); + const debugOptions = { + profiling: { + onRequestResolved: (timings: any, query: any, variables: any) => { + console.log('profiling', { + timings, + query, + variables, + }); + }, + }, + }; + const profilingOptions = process.env.DEBUG_LEVEL ? debugOptions : {}; + const crystallizeClient = createClient( + { + tenantId: auth.tenantId, + tenantIdentifier: auth.tenantIdentifier, + accessTokenId: `${process.env.CRYSTALLIZE_ACCESS_TOKEN_ID}`, + accessTokenSecret: `${process.env.CRYSTALLIZE_ACCESS_TOKEN_SECRET}`, + }, + profilingOptions, + ); + + const translator = await createTranslator({ + apiKey: `${process.env.OPENAI_API_KEY}`, + }); + + return { + apiClient: crystallizeClient, + backendTranslator: translator, + api: getApi(crystallizeClient), + }; +}; diff --git a/components/translation-app/src/core/to-component-input.ts b/components/translation-app/src/core/to-component-input.ts new file mode 100644 index 0000000..f53d5ec --- /dev/null +++ b/components/translation-app/src/core/to-component-input.ts @@ -0,0 +1,262 @@ +import type { + Component, + ComponentChoiceContent, + ComponentInput, + ContentChunkContent, + FileContent, + GridRelationsContent, + Image, + ImageContent, + ItemRelationsContent, + NumericContent, + ParagraphCollectionContent, + ParagraphContent, + RichTextContent, + SelectionContent, + SingleLineContent, + Video, + VideoContent, +} from '~/__generated__/types'; +import { ComponentType } from '~/__generated__/types'; + +/* eslint-disable @typescript-eslint/no-explicit-any */ +export const EMPTY_TABLE = { title: '', properties: [{ key: '', value: '' }] }; + +export function updateArrayItem(array: any[], item: any, index: number) { + return [...array.slice(0, index), item, ...array.slice(index + 1)]; +} + +export function handleImage(image: Image) { + if (!image) { + return image; + } + + const { + // @ts-expect-error + id, + url, + // @ts-expect-error + tempId, + // @ts-expect-error + preview, + // @ts-expect-error + file, + // @ts-expect-error + upload, + key, + variants, + // @ts-expect-error + isUploading, + // @ts-expect-error + uploadProgress, + // @ts-expect-error + fileType, + // @ts-expect-error + sizes, + ...content + } = image; + + const result = { + key, + ...content, + }; + + /** + * if the object property is null, we can actually delete it + */ + for (const key in result) { + // @ts-expect-error + if (result[key] === null || result[key] === undefined) { + // @ts-expect-error + delete result[key]; + } + } + + return result; +} + +export function handleVideo(video: Video) { + return { + key: video.id, + title: video.title, + ...(video.thumbnails && { + thumbnails: video.thumbnails.map(handleImage), + }), + }; +} + +// Do not send null as of now, workaround for backend issue. #10186 +export function handleSingleLine(singleLine?: SingleLineContent | null) { + if (!singleLine || !singleLine.text) { + return { text: '' }; + } + + return singleLine; +} + +function componentHandler(component: Component) { + switch (component.type) { + case ComponentType.Boolean: { + if (!component || !component.content) { + return { value: false }; + } + + return component.content; + } + case ComponentType.ComponentChoice: { + //* reset the selected component + if (!component.content || !(component.content as ComponentChoiceContent).selectedComponent) { + return null; + } + + return toComponentInput((component.content as ComponentChoiceContent).selectedComponent); + } + case ComponentType.ContentChunk: { + if (!component.content || !(component.content as ContentChunkContent).chunks?.length) { + return null; + } + + const transformedChunks = (component.content as ContentChunkContent).chunks.map((chunk) => + chunk.map(toComponentInput), + ); + + return { chunks: transformedChunks }; + } + case ComponentType.Datetime: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.Files: { + if (!component.content) { + return null; + } + + return (component.content as FileContent).files?.map(({ key, title }) => ({ key, title })); + } + case ComponentType.GridRelations: { + const ids = (component?.content as GridRelationsContent)?.grids?.map((item) => item.id) || []; + + return { gridIds: ids }; + } + case ComponentType.Images: { + if ( + !component.content || + !(component.content as ImageContent).images || + (component.content as ImageContent).images?.length === 0 + ) { + return null; + } + + return (component.content as ImageContent).images?.filter((image) => !!image.key).map(handleImage); + } + case ComponentType.ItemRelations: { + const ids = (component?.content as ItemRelationsContent)?.items?.map((item) => item.id) || []; + const skus = (component?.content as ItemRelationsContent)?.productVariants?.map((item) => item.sku) || []; + return { itemIds: ids, skus }; + } + case ComponentType.Location: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.Numeric: { + if (!component.content) { + return null; + } + + const { number, unit } = component.content as NumericContent; + + return { + number: number ?? 0, + unit, + }; + } + case ComponentType.ParagraphCollection: { + const { content } = component; + + const paragraphs = + (content as ParagraphCollectionContent)?.paragraphs?.map((paragraph: ParagraphContent) => { + const { images, videos, title, body } = paragraph; + + return { + body: { html: body?.plainText }, + title: handleSingleLine(title), + images: + images && images?.length ? images?.filter((image) => !!image.key).map(handleImage) : null, + videos: + videos && videos?.length + ? videos + .filter(Boolean) + // @ts-expect-error + ?.filter((video: Video) => !!video?.id || !!video?.tempId) + .map(handleVideo) + : null, + }; + }) ?? []; + + return { paragraphs }; + } + case ComponentType.PropertiesTable: { + if (!component.content) { + return null; + } + + return component.content; + } + case ComponentType.RichText: { + if (!component) { + return null; + } + + const { content } = component; + + if (content && 'plainText' in content && !content.plainText) { + return null; + } + + if (!content) { + return null; + } + + return { html: (content as RichTextContent).plainText }; + } + case ComponentType.Selection: { + if (!component.content || !(component.content as SelectionContent).options) { + return null; + } + + return { + keys: (component.content as SelectionContent).options?.map(({ key }) => key), + }; + } + case ComponentType.SingleLine: { + return handleSingleLine(component.content as SingleLineContent); + } + case ComponentType.Videos: { + if ( + !component.content || + !(component.content as VideoContent).videos || + (component.content as VideoContent)?.videos?.length === 0 + ) { + return null; + } + + return (component.content as VideoContent)?.videos?.map(handleVideo).filter((v) => v.key); + } + + default: + break; + } +} + +export function toComponentInput(component: Component): ComponentInput { + return { + componentId: component.componentId, + [component.type]: componentHandler(component), + }; +} diff --git a/components/translation-app/src/core/translator.server.ts b/components/translation-app/src/core/translator.server.ts new file mode 100644 index 0000000..673cd3f --- /dev/null +++ b/components/translation-app/src/core/translator.server.ts @@ -0,0 +1,44 @@ +import OpenAI from 'openai'; +import type { ChatCompletionMessage } from 'openai/resources/index.mjs'; +import type { Language, Preferences } from '../use-cases/contracts/types'; + +export type TranslatorArgs = { + text: string; + language: Language; + preferences: Preferences; +}; +type Deps = { + apiKey: string; +}; +export const createTranslator = async ({ apiKey }: Deps) => { + const openai = new OpenAI({ apiKey }); + + const sendMessages = async (messages: ChatCompletionMessage[]) => { + const completion = await openai.chat.completions.create({ + messages: messages, + model: 'gpt-3.5-turbo', + }); + return completion; + }; + + const translate = async ({ text, language, preferences }: TranslatorArgs) => { + const { from, to } = language; + const messages: ChatCompletionMessage[] = [ + { + role: 'user', + content: `Translate from ${from} to ${to} (delimited with XML tags). ${ + preferences.customPromptFromUser ? `And ${preferences.customPromptFromUser}` : '' + }. ${text}`, + }, + ]; + const completion = await sendMessages(messages); + const result = completion.choices[0].message.content ?? ''; + return result.replace(/<[^>]*>/g, ''); + }; + + return { + translate, + }; +}; + +export type Translator = Awaited>; diff --git a/components/translation-app/src/core/use-translations.ts b/components/translation-app/src/core/use-translations.ts new file mode 100644 index 0000000..eeff93d --- /dev/null +++ b/components/translation-app/src/core/use-translations.ts @@ -0,0 +1,408 @@ +import { useCallback, useEffect, useMemo, useState } from 'react'; + +import type { Component, ComponentChoiceContent, ContentChunkContent, ItemType } from '~/__generated__/types'; +import { ComponentType } from '~/__generated__/types'; +import type { ComponentWithTranslation, Preferences, PropertyWithTranslation } from '../use-cases/contracts/types'; + +import { signal, type RefetchItem } from '@crystallize/app-signal'; +import { allowedTypes } from '../use-cases/contracts/allowed-components'; +import { translateComponentType } from '~/use-cases/translations/translate-component-type'; +import type { Translator, TranslatorArgs } from './translator.server'; +import type { SerializeFrom } from '@remix-run/node'; +import { debounce } from '~/use-cases/utils/debounce'; + +type UpdateComponent = { + type: ComponentType; + componentIndex: number; + chunkIndex?: number; + chunkComponentIndex?: number; + translation?: any; + translationState?: ComponentWithTranslation['translationState']; + isChoice?: boolean; +}; + +type UpdateProperty = { + propertyIndex: number; + translation?: any; + translationState?: ComponentWithTranslation['translationState']; +}; + +type UseTranslationsProps = { + itemId: string; + itemType: ItemType; + fromLanguage: string; + properties: SerializeFrom; + toLanguage: string | null; + components?: SerializeFrom; + variantSku?: string | null; +}; + +type HandleTranslationProps = { + componentIndex: number; + preferences: Preferences; + variantSku?: string | null; + component?: SerializeFrom; +}; + +type HandlePropertyProps = { + property: PropertyWithTranslation; + propertyIndex: number; + preferences: Preferences; +}; + +const debounceRefetchItem = debounce((payload) => signal.send('refetchItem', payload), 600); + +const debounceRefetchItemComponents = debounce( + (payload) => signal.send('refetchItemComponents', payload), + 600, +); + +const debounceRefetchItemVariantComponents = debounce( + (payload) => signal.send('refetchItemVariantComponents', payload), + 600, +); + +const translator: Translator = { + translate: async (args: TranslatorArgs) => { + const results = await fetch('/api/translate/v2', { + method: 'POST', + body: JSON.stringify(args), + }); + const json = await results.json(); + return json.translation; + }, +}; + +export const useTranslations = ({ + itemId, + itemType, + fromLanguage, + toLanguage, + components, + variantSku, + properties, +}: UseTranslationsProps) => { + const [processingTranslations, setProcessingTranslations] = useState>(new Map()); + + const [propertiesWithTranslation, setPropertiesWithTranslation] = + useState>(properties); + + const [componentWithTranslation, setComponentWithTranslation] = useState< + SerializeFrom | undefined + >(components); + + useEffect(() => { + setComponentWithTranslation(components); + setPropertiesWithTranslation(properties); + }, [components, properties]); + + // use memo since we pass this as dept to useCallback + const translateLanguage = useMemo( + () => ({ + from: fromLanguage, + to: toLanguage as string, + }), + [fromLanguage, toLanguage], + ); + + const currentProcessingTranslationsCount = [...processingTranslations.values()].filter(Boolean).length; + const totalProcessingTranslationsCount = processingTranslations.size; + + const onUpdateComponent = useCallback( + async (translation: ComponentWithTranslation | PropertyWithTranslation, type: string = 'component') => { + const formData = new FormData(); + const data = JSON.stringify({ + translation, + type, + itemType, + itemId, + variantSku, + language: toLanguage, + }); + + formData.append('data', data); + await fetch('/?index', { method: 'POST', body: formData }); + + const payload = { itemId, itemLanguage: toLanguage as string }; + + if (type === 'property') { + return debounceRefetchItem(payload); + } + + return variantSku ? debounceRefetchItemVariantComponents(payload) : debounceRefetchItemComponents(payload); + }, + [itemId, toLanguage, variantSku, itemType], + ); + + const updateComponent = useCallback( + ({ + type, + componentIndex, + chunkIndex, + chunkComponentIndex, + translation, + isChoice = false, + translationState, + }: UpdateComponent) => { + let rootComponent: SerializeFrom | undefined = undefined; + + setComponentWithTranslation((prev) => { + const copy = [...(prev ?? [])]; + let component = copy[componentIndex]; + + if (isChoice) { + component = (copy[componentIndex].content as ComponentChoiceContent)?.selectedComponent; + } else if (typeof chunkIndex === 'number' && typeof chunkComponentIndex === 'number') { + component = (copy[componentIndex].content as ContentChunkContent).chunks[chunkIndex][ + chunkComponentIndex + ] as ComponentWithTranslation; + } + + component.translationState = translationState; + + if (translationState === 'translated') { + if (type === ComponentType.SingleLine) { + component.content = { text: translation }; + } else if (type === ComponentType.RichText) { + component.content = { plainText: translation }; + } else if (type === ComponentType.ParagraphCollection) { + component.content = { paragraphs: translation }; + } + } + + rootComponent = copy[componentIndex]; + + return copy; + }); + + return rootComponent; + }, + [], + ); + + const updateProperty = useCallback(({ propertyIndex, translation, translationState }: UpdateProperty) => { + let updatedProperty: PropertyWithTranslation | undefined = undefined; + + setPropertiesWithTranslation((prev) => { + const copy = [...(prev ?? [])]; + let property = copy[propertyIndex]; + + property.translationState = translationState; + if (translation) { + property.content = translation; + } + + updatedProperty = copy[propertyIndex]; + + return copy; + }); + + return updatedProperty; + }, []); + + const handleChunkTranslation = useCallback( + ({ component, componentIndex, preferences }: HandleTranslationProps) => { + (component?.content as ContentChunkContent)?.chunks.forEach((chunkComponents, chunkIndex) => { + chunkComponents.forEach((chunkComponent, chunkComponentIndex) => { + (async () => { + if (!allowedTypes.includes(chunkComponent.type)) { + return; + } + + const id = `${component?.componentId}-${chunkComponentIndex}-${chunkComponent.componentId}`; + const base = { + type: chunkComponent.type, + componentIndex, + chunkIndex, + chunkComponentIndex, + }; + + setProcessingTranslations((prev) => new Map(prev.set(id, true))); + + try { + updateComponent({ + ...base, + translationState: 'translating', + }); + const data = await translateComponentType(translateLanguage, chunkComponent, preferences, { + translator, + }); + const component = updateComponent({ + ...base, + translationState: 'translated', + translation: data?.translation, + }); + preferences.shouldPushTranslationToDraft && !!component && onUpdateComponent(component); + } catch { + updateComponent({ + ...base, + translationState: 'error', + }); + // TODO: show error message + } finally { + setProcessingTranslations((prev) => new Map(prev.set(id, false))); + } + })(); + }); + }); + }, + [translateLanguage, updateComponent, onUpdateComponent], + ); + + const handleChoiceTranslation = useCallback( + async ({ component, componentIndex, preferences }: HandleTranslationProps) => { + if (!component) { + return; + } + + setProcessingTranslations((prev) => new Map(prev.set(component.componentId, true))); + + try { + updateComponent({ + type: component.type, + componentIndex, + translationState: 'translating', + isChoice: true, + }); + const data = await translateComponentType(translateLanguage, component, preferences, { translator }); + const updatedComponent = updateComponent({ + type: component.type, + componentIndex, + translationState: 'translated', + translation: data?.translation, + isChoice: true, + }); + preferences.shouldPushTranslationToDraft && !!updatedComponent && onUpdateComponent(updatedComponent); + } catch { + updateComponent({ + type: component.type, + componentIndex, + translationState: 'error', + }); + // TODO: show error message + } finally { + setProcessingTranslations((prev) => new Map(prev.set(component.componentId, false))); + } + }, + [translateLanguage, updateComponent, onUpdateComponent], + ); + const handleBaseComponentTranslation = useCallback( + async ({ component, componentIndex, preferences }: HandleTranslationProps) => { + if (!component) { + return; + } + + setProcessingTranslations((prev) => new Map(prev.set(component.componentId, true))); + + try { + updateComponent({ + type: component.type, + componentIndex, + translationState: 'translating', + }); + const data = await translateComponentType(translateLanguage, component, preferences, { translator }); + const updatedComponent = updateComponent({ + type: component.type, + componentIndex, + translationState: 'translated', + translation: data?.translation, + }); + preferences.shouldPushTranslationToDraft && !!updatedComponent && onUpdateComponent(updatedComponent); + } catch { + updateComponent({ + type: component.type, + componentIndex, + translationState: 'error', + }); + // TODO: show error message + } finally { + setProcessingTranslations((prev) => new Map(prev.set(component.componentId, false))); + } + }, + [translateLanguage, updateComponent, onUpdateComponent], + ); + + const handleNameTranslation = useCallback( + async ({ property, propertyIndex, preferences }: HandlePropertyProps) => { + setProcessingTranslations((prev) => new Map(prev.set(property.type, true))); + + try { + updateProperty({ + propertyIndex, + translationState: 'translating', + }); + const translation = await translator.translate({ + text: property.content, + language: translateLanguage, + preferences, + }); + const updatedProperty = updateProperty({ + propertyIndex, + translation, + translationState: 'translated', + }); + preferences.shouldPushTranslationToDraft && + !!updatedProperty && + onUpdateComponent(updatedProperty, 'property'); + } catch { + updateProperty({ + propertyIndex, + translationState: 'error', + }); + // TODO: show error message + } finally { + setProcessingTranslations((prev) => new Map(prev.set(property.type, false))); + } + }, + [translateLanguage, updateProperty, onUpdateComponent], + ); + + const onTranslate = useCallback( + (preferences: Preferences) => { + setProcessingTranslations(new Map()); + + properties?.forEach((property, propertyIndex) => { + if (property.type === 'name') { + return handleNameTranslation({ + property, + propertyIndex, + preferences, + }); + } + }); + + components?.forEach((component, componentIndex) => { + const props = { component, componentIndex, preferences }; + + if (component.type === 'contentChunk') { + return handleChunkTranslation(props); + } + + if (component.type === 'componentChoice') { + return handleChoiceTranslation({ + ...props, + component: (component.content as ComponentChoiceContent)?.selectedComponent, + }); + } + + allowedTypes.includes(component.type) && handleBaseComponentTranslation(props); + }); + }, + [ + components, + properties, + handleChoiceTranslation, + handleChunkTranslation, + handleBaseComponentTranslation, + handleNameTranslation, + ], + ); + + return { + componentWithTranslation, + propertiesWithTranslation, + onTranslate, + currentProcessingTranslationsCount, + totalProcessingTranslationsCount, + }; +}; diff --git a/components/translation-app/src/core/utils.server.ts b/components/translation-app/src/core/utils.server.ts new file mode 100644 index 0000000..827246b --- /dev/null +++ b/components/translation-app/src/core/utils.server.ts @@ -0,0 +1,5 @@ +import { inspect } from 'util'; + +export const dump = (obj: any, depth = 100) => { + console.log(inspect(obj, false, depth, true)); +}; diff --git a/components/translation-app/src/root.tsx b/components/translation-app/src/root.tsx new file mode 100644 index 0000000..f5a7cc2 --- /dev/null +++ b/components/translation-app/src/root.tsx @@ -0,0 +1,30 @@ +import { cssBundleHref } from '@remix-run/css-bundle'; +import type { LinksFunction } from '@remix-run/node'; +import { Links, LiveReload, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react'; +import stylesheet from '~/styles/app.css'; +import crystallizeStyles from '@crystallize/design-system/styles.css'; + +export const links: LinksFunction = () => [ + ...(cssBundleHref ? [{ rel: 'stylesheet', href: cssBundleHref }] : []), + { rel: 'stylesheet', href: stylesheet }, + { rel: 'stylesheet', href: crystallizeStyles }, +]; + +export default function App() { + return ( + + + + + + + + + + + + + + + ); +} diff --git a/components/translation-app/src/routes/_index.tsx b/components/translation-app/src/routes/_index.tsx new file mode 100644 index 0000000..aafd867 --- /dev/null +++ b/components/translation-app/src/routes/_index.tsx @@ -0,0 +1,144 @@ +import { json, redirect, type LoaderFunctionArgs, type ActionFunctionArgs } from '@remix-run/node'; +import type { Component, Maybe, Item } from '~/__generated__/types'; +import { ItemType } from '~/__generated__/types'; +import { useLoaderData } from '@remix-run/react'; +import { toComponentInput } from '~/core/to-component-input'; +import { TranslationView } from '~/components/translation-view'; +import { buildServices } from '~/core/services.server'; + +export const loader = async ({ request }: LoaderFunctionArgs) => { + const { api } = await buildServices(request); + const url = new URL(request.url); + const itemId = url.searchParams.get('itemId'); + const fromLanguage = url.searchParams.get('fromLanguage'); + const toLanguage = url.searchParams.get('toLanguage'); + const variantId = url.searchParams.get('variantId'); + + if (!itemId || !fromLanguage) { + // TODO: Redirect to a new page where the user can insert the ID manually + throw redirect('/missing-item'); + } + + const isVariant = !!variantId; + const promises = [api.getAvailableLanguages()]; + + if (!isVariant) { + promises.push(api.getItemComponents(itemId, fromLanguage)); + + const [availableLanguages, item] = await Promise.all(promises); + const { type, name, components } = (item as Maybe) ?? {}; + + return json({ + itemId, + fromLanguage, + toLanguage, + availableLanguages, + variantSku: null, + itemType: type as ItemType, + properties: [{ type: 'name', content: name ?? '' }], + components, + }); + } + + // we need the SKU first + promises.push(api.getVariants(itemId, fromLanguage)); + + const [availableLanguages, item] = await Promise.all(promises); + const variantSku = (item as Awaited>)?.variants.find( + (variant) => variant.id === variantId, + )?.sku; + + if (!variantSku) { + throw redirect('/missing-item'); + } + + const data = await api.getVariantComponents(itemId, fromLanguage, variantSku); + + return json({ + itemId, + variantSku, + fromLanguage, + toLanguage, + availableLanguages, + itemType: ItemType.Product, + components: data?.variant?.components, + properties: [{ type: 'name', content: data?.variant?.name ?? '' }], + }); +}; + +export const action = async ({ request }: ActionFunctionArgs) => { + const { api } = await buildServices(request); + + try { + const body = await request.formData(); + const { type, itemId, itemType, language, translation, variantSku } = JSON.parse( + (body.get('data') ?? '') as string, + ); + + if (type === 'property') { + variantSku + ? await api.updateVariantName({ + id: itemId, + sku: variantSku, + language, + input: { name: translation.content }, + }) + : await api.updateItemName({ + id: itemId, + itemType, + language, + input: { name: translation.content }, + }); + + return json({ itemId, language, type: 'refetchItem' }); + } + + const input = toComponentInput(translation as Component); + + if (variantSku) { + await api.updateVariantComponent({ + input, + language, + sku: variantSku, + productId: itemId, + }); + return json({ + itemId, + language, + type: 'refetchItemVariantComponents', + }); + } else { + await api.updateItemComponent({ itemId, language, input }); + return json({ itemId, language, type: 'refetchItemComponents' }); + } + } catch (e) { + console.log(e); + } + + return null; +}; + +export default function Index() { + const { itemId, itemType, components, fromLanguage, toLanguage, variantSku, availableLanguages, properties } = + useLoaderData(); + + if (!itemId) { + return
Something went wrong getting your item.
; + } + return ( +
+
+ +
+
+ ); +} diff --git a/components/translation-app/src/routes/api.translate.v2.ts b/components/translation-app/src/routes/api.translate.v2.ts new file mode 100644 index 0000000..6ac2ce4 --- /dev/null +++ b/components/translation-app/src/routes/api.translate.v2.ts @@ -0,0 +1,14 @@ +import { type ActionFunction, json } from '@remix-run/node'; +import { buildServices } from '~/core/services.server'; + +// Increase vercel serverless functions timeout +export const config = { + maxDuration: 300, +}; + +export const action: ActionFunction = async ({ request }) => { + const body = await request.json(); + const { backendTranslator } = await buildServices(request); + const translation = await backendTranslator.translate(body); + return json({ translation }); +}; diff --git a/components/translation-app/src/routes/invalid.tsx b/components/translation-app/src/routes/invalid.tsx new file mode 100644 index 0000000..003fadb --- /dev/null +++ b/components/translation-app/src/routes/invalid.tsx @@ -0,0 +1,9 @@ +export default () => { + return ( +
+
+ Sorry but the signature is invalid. Please try again. +
+
+ ); +}; diff --git a/components/translation-app/src/routes/missing-item.tsx b/components/translation-app/src/routes/missing-item.tsx new file mode 100644 index 0000000..5f2a6b5 --- /dev/null +++ b/components/translation-app/src/routes/missing-item.tsx @@ -0,0 +1,9 @@ +export default () => { + return ( +
+
+ It seems item information is missing. Please make sure you render the app in custom view. +
+
+ ); +}; diff --git a/components/translation-app/src/styles/app.css b/components/translation-app/src/styles/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/components/translation-app/src/styles/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/components/translation-app/src/use-cases/contracts/allowed-components.ts b/components/translation-app/src/use-cases/contracts/allowed-components.ts new file mode 100644 index 0000000..5dbe4b4 --- /dev/null +++ b/components/translation-app/src/use-cases/contracts/allowed-components.ts @@ -0,0 +1 @@ +export const allowedTypes = ['singleLine', 'richText', 'paragraphCollection']; diff --git a/components/translation-app/src/use-cases/contracts/types.ts b/components/translation-app/src/use-cases/contracts/types.ts new file mode 100644 index 0000000..aabbc95 --- /dev/null +++ b/components/translation-app/src/use-cases/contracts/types.ts @@ -0,0 +1,29 @@ +import type { Component } from '~/__generated__/types'; + +export type Preferences = { + shouldPushTranslationToDraft: boolean; + shouldIncludeAllVariants: boolean; + customPromptFromUser?: string; +}; + +type TranslationState = 'translating' | 'translated' | 'error'; +export type Translation = string | { title?: string; body?: string }[]; + +type PropertyName = { + type: string; + content: string; +}; +export type Property = PropertyName; + +export type ComponentWithTranslation = Component & { + translationState?: TranslationState; +}; + +export type PropertyWithTranslation = Property & { + translationState?: TranslationState; +}; + +export type Language = { + from: string; + to: string; +}; diff --git a/components/translation-app/src/use-cases/crystallize/index.ts b/components/translation-app/src/use-cases/crystallize/index.ts new file mode 100644 index 0000000..6373d50 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/index.ts @@ -0,0 +1,28 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; +import { getAvailableLanguages } from './read/get-available-languages'; +import { getItemComponents } from './read/get-item-components'; +import { getVariantComponents } from './read/get-variant-components'; +import { getVariants } from './read/get-variants'; +import { updateItemComponent } from './write/update-item-component'; +import { updateVariantComponent } from './write/update-variant-component'; +import { updateItemName } from './write/update-item-name'; +import { updateVariantName } from './write/update-variant-name'; + +export const getApi = (apiClient: ClientInterface) => { + return { + getAvailableLanguages: async () => getAvailableLanguages(apiClient)(apiClient.config.tenantIdentifier), + getItemComponents: async (...params: Parameters>) => + getItemComponents(apiClient)(...params), + getVariantComponents: async (...params: Parameters>) => + getVariantComponents(apiClient)(...params), + getVariants: async (...params: Parameters>) => getVariants(apiClient)(...params), + updateItemComponent: async (...params: Parameters>) => + updateItemComponent(apiClient)(...params), + updateVariantComponent: async (...params: Parameters>) => + updateVariantComponent(apiClient)(...params), + updateItemName: async (...params: Parameters>) => + updateItemName(apiClient)(...params), + updateVariantName: async (...params: Parameters>) => + updateVariantName(apiClient)(...params), + }; +}; diff --git a/components/translation-app/src/use-cases/crystallize/read/fragments.ts b/components/translation-app/src/use-cases/crystallize/read/fragments.ts new file mode 100644 index 0000000..aea254a --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/read/fragments.ts @@ -0,0 +1,362 @@ +export const Item = `#graphql + fragment Item on Item { + id + name + shape { + identifier + name + } + type + + ... on Product { + defaultVariant { + images { + url + variants { + width + url + } + } + } + } + + ... on Folder { + components { + content { + ... on ImageContent { + images { + url + variants { + width + url + } + } + } + } + } + } + + ... on Document { + components { + content { + ... on ImageContent { + images { + url + variants { + width + url + } + } + } + } + } + } + } +`; + +const Image = `#graphql + fragment Image on Image { + altText + caption { + json + } + key + meta { + key + value + } + url + variants { + key + width + height + url + } + } +`; + +const Video = `#graphql + fragment Video on Video { + id + title + thumbnails { + ...Image + } + playlists + } +`; + +const BooleanContent = `#graphql + fragment BooleanContent on BooleanContent { + value + } +`; + +const ComponentChoiceContent = `#graphql + fragment ComponentChoiceContent on ComponentChoiceContent { + selectedComponent { + componentId + content { + ... on BooleanContent { + ...BooleanContent + } + ... on DatetimeContent { + ...DatetimeContent + } + ... on FileContent { + ...FileContent + } + ... on GridRelationsContent { + ...GridRelationsContent + } + ... on ImageContent { + ...ImageContent + } + ... on ItemRelationsContent { + ...ItemRelationsContent + } + ... on LocationContent { + ...LocationContent + } + ... on NumericContent { + ...NumericContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on PropertiesTableContent { + ...PropertiesTableContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SelectionContent { + ...SelectionContent + } + ... on SingleLineContent { + ...SingleLineContent + } + ... on VideoContent { + ...VideoContent + } + } + name + type + } + } +`; + +const ContentChunkContent = `#graphql + fragment ContentChunkContent on ContentChunkContent { + chunks { + componentId + content { + ... on BooleanContent { + ...BooleanContent + } + ... on DatetimeContent { + ...DatetimeContent + } + ... on FileContent { + ...FileContent + } + ... on GridRelationsContent { + ...GridRelationsContent + } + ... on ImageContent { + ...ImageContent + } + ... on ItemRelationsContent { + ...ItemRelationsContent + } + ... on LocationContent { + ...LocationContent + } + ... on NumericContent { + ...NumericContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on PropertiesTableContent { + ...PropertiesTableContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SelectionContent { + ...SelectionContent + } + ... on SingleLineContent { + ...SingleLineContent + } + ... on VideoContent { + ...VideoContent + } + } + name + type + } + } +`; + +const DatetimeContent = `#graphql + fragment DatetimeContent on DatetimeContent { + datetime + } +`; + +const FileContent = `#graphql + fragment FileContent on FileContent { + files { + contentType + key + size + title + url + } + } +`; + +const GridRelationsContent = `#graphql + fragment GridRelationsContent on GridRelationsContent { + grids { + id + name + } + } +`; + +const ImageContent = `#graphql + fragment ImageContent on ImageContent { + images { + ...Image + } + } + ${Image} +`; + +const ItemRelationsContent = `#graphql + fragment ItemRelationsContent on ItemRelationsContent { + items { + ...Item + } + } + ${Item} +`; + +const LocationContent = `#graphql + fragment LocationContent on LocationContent { + lat + long + } +`; + +const NumericContent = `#graphql + fragment NumericContent on NumericContent { + number + unit + } +`; + +const ParagraphCollectionContent = `#graphql + fragment ParagraphCollectionContent on ParagraphCollectionContent { + paragraphs { + title { + text + } + body { + plainText + } + images { + ...Image + } + videos { + ...Video + } + } + } +`; + +const PropertiesTableContent = ` + fragment PropertiesTableContent on PropertiesTableContent { + sections { + title + properties { + key + value + } + } + } +`; + +const RichTextContent = `#graphql + fragment RichTextContent on RichTextContent { + plainText + } +`; + +const SelectionContent = `#graphql + fragment SelectionContent on SelectionContent { + options { + key + value + } + } +`; + +const SingleLineContent = `#graphql + fragment SingleLineContent on SingleLineContent { + text + } +`; + +const VideoContent = `#graphql + fragment VideoContent on VideoContent { + videos { + ...Video + } + } + ${Video} +`; + +export const Component = `#graphql + fragment Component on Component { + componentId + content { + ... on ComponentChoiceContent { + ...ComponentChoiceContent + } + ... on ContentChunkContent { + ...ContentChunkContent + } + ... on ParagraphCollectionContent { + ...ParagraphCollectionContent + } + ... on RichTextContent { + ...RichTextContent + } + ... on SingleLineContent { + ...SingleLineContent + } + } + name + type + } + ${BooleanContent} + ${ComponentChoiceContent} + ${ContentChunkContent} + ${DatetimeContent} + ${FileContent} + ${GridRelationsContent} + ${ImageContent} + ${ItemRelationsContent} + ${LocationContent} + ${NumericContent} + ${ParagraphCollectionContent} + ${PropertiesTableContent} + ${RichTextContent} + ${SelectionContent} + ${SingleLineContent} + ${VideoContent} +`; diff --git a/components/translation-app/src/use-cases/crystallize/read/get-available-languages.ts b/components/translation-app/src/use-cases/crystallize/read/get-available-languages.ts new file mode 100644 index 0000000..b8a9d88 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/read/get-available-languages.ts @@ -0,0 +1,22 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const getAvailableLanguages = (apiClient: ClientInterface) => async (identifier: string) => { + const data = await apiClient.pimApi( + `#graphql + query ($identifier: String!) { + tenant { + get(identifier: $identifier) { + availableLanguages { + name + code + } + } + } + } + `, + { + identifier, + }, + ); + return data.tenant.get.availableLanguages; +}; diff --git a/components/translation-app/src/use-cases/crystallize/read/get-item-components.ts b/components/translation-app/src/use-cases/crystallize/read/get-item-components.ts new file mode 100644 index 0000000..9b0a1a1 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/read/get-item-components.ts @@ -0,0 +1,29 @@ +import type { Item, Maybe } from '~/__generated__/types'; +import { Component } from './fragments'; +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const getItemComponents = (apiClient: ClientInterface) => async (id: string, language: string) => { + const data = await apiClient.pimApi( + `#graphql + query GET_PRODUCT_COMPONENTS($id: ID!, $language: String!, $versionLabel: VersionLabel) { + item { + get(id: $id, language: $language, versionLabel: $versionLabel) { + name + type + components { + ...Component + } + } + } + } + ${Component} + `, + { + id, + language, + version: 'draft', + }, + ); + + return data?.item?.get as Maybe; +}; diff --git a/components/translation-app/src/use-cases/crystallize/read/get-variant-components.ts b/components/translation-app/src/use-cases/crystallize/read/get-variant-components.ts new file mode 100644 index 0000000..2e6b9fb --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/read/get-variant-components.ts @@ -0,0 +1,32 @@ +import type { Maybe, Product } from '~/__generated__/types'; +import { Component } from './fragments'; +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const getVariantComponents = + (apiClient: ClientInterface) => async (id: string, language: string, sku: string) => { + const data = await apiClient.pimApi( + `#graphql + query GET_VARIANT_COMPONENTS($id: ID!, $language: String!, $sku: String!, $versionLabel: VersionLabel) { + product{ + get(id: $id, language: $language, versionLabel: $versionLabel) { + variant(sku: $sku) { + name + components { + ...Component + } + } + } + } + } + ${Component} + `, + { + id, + sku, + language, + version: 'draft', + }, + ); + + return data?.product?.get as Maybe; + }; diff --git a/components/translation-app/src/use-cases/crystallize/read/get-variants.ts b/components/translation-app/src/use-cases/crystallize/read/get-variants.ts new file mode 100644 index 0000000..0bbf253 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/read/get-variants.ts @@ -0,0 +1,26 @@ +import type { Maybe, Product } from '~/__generated__/types'; +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const getVariants = (apiClient: ClientInterface) => async (id: string, language: string) => { + const data = await apiClient.pimApi( + `#graphql + query GET_PRODUCT_COMPONENTS($id: ID!, $language: String!, $versionLabel: VersionLabel) { + product { + get(id: $id, language: $language, versionLabel: $versionLabel) { + variants { + id + sku + } + } + } + } + `, + { + id, + language, + version: 'draft', + }, + ); + + return data?.product?.get as Maybe; +}; diff --git a/components/translation-app/src/use-cases/crystallize/write/update-component-choice-variant.ts b/components/translation-app/src/use-cases/crystallize/write/update-component-choice-variant.ts new file mode 100644 index 0000000..f89b864 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-component-choice-variant.ts @@ -0,0 +1,48 @@ +import { apiClient } from '../shared'; + +export async function updateVariantComponentChoice( + itemId: string, + sku: string, + language: string, + componentId: string, + content: { translation: string; type: string; id: string }, +) { + const itemToUpdate = + (content?.type === 'singleLine' && { singleLine: { text: content?.translation }, componentId: content.id }) || + (content?.type === 'richText' && { richText: { html: content?.translation }, componentId: content.id }); + + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $productId: ID! + $sku: String! + $language: String! + $componentId: String! + $text: ComponentInput + ) { + product { + updateVariantComponent( + productId: $productId + sku: $sku + language: $language + input: { componentId: $componentId, componentChoice: $text } + ) { + id + } + } + } + `, + { + productId: itemId, + sku, + language, + componentId, + text: itemToUpdate, + }, + ); + return data.product.updateVariantComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-content-chunk-variant.ts b/components/translation-app/src/use-cases/crystallize/write/update-content-chunk-variant.ts new file mode 100644 index 0000000..f168683 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-content-chunk-variant.ts @@ -0,0 +1,94 @@ +import { apiClient } from '../shared'; + +type Paragraph = { + title: string; + body: string; + images: any[]; +}; + +export async function updateVariantChunk( + itemId: string, + sku: string, + language: string, + componentId: string, + content: any, +) { + try { + const paragraphCollection = (paragraphs: Paragraph[]) => { + return { + paragraphs: paragraphs.map((paragraph: any) => { + return { + title: { text: paragraph.title || '' }, + body: { html: paragraph.body || '' }, + images: paragraph.images || [], + }; + }), + }; + }; + + let itemsToUpdate: any = []; + + content?.map((chunk: any) => { + switch (chunk.type) { + case 'singleLine': + itemsToUpdate.push({ + singleLine: { text: chunk?.translation }, + componentId: chunk.id, + }); + break; + case 'richText': + itemsToUpdate.push({ + richText: { html: chunk?.translation }, + componentId: chunk.id, + }); + break; + case 'paragraphCollection': + itemsToUpdate.push({ + paragraphCollection: paragraphCollection(chunk?.paragraphs), + componentId: chunk.id, + }); + break; + default: + break; + } + }); + const data = await apiClient.pimApi( + `#graphql + mutation( + $productId: ID! + $sku: String! + $language: String! + $componentId: String! + $content: [[ComponentInput!]!]! + ) { + product { + updateVariantComponent( + productId: $productId + sku: $sku + language: $language + disableValidation: true + input: { + componentId: $componentId + contentChunk: { + chunks: $content + } + } + ) { + id + } + } + } + `, + { + productId: itemId, + sku, + language, + componentId, + content: itemsToUpdate, + }, + ); + return data.product.updateVariantComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-content-chunk.ts b/components/translation-app/src/use-cases/crystallize/write/update-content-chunk.ts new file mode 100644 index 0000000..0be9973 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-content-chunk.ts @@ -0,0 +1,80 @@ +import { apiClient } from '../shared'; + +type Paragraph = { + title: string; + body: string; + images: any[]; +}; + +export async function updateContentChunk(itemId: string, language: string, componentId: string, content: any) { + const paragraphCollection = (paragraphs: Paragraph[]) => { + return { + paragraphs: paragraphs.map((paragraph: any) => { + return { + title: { text: paragraph.title || '' }, + body: { html: paragraph.body || '' }, + images: paragraph.images || [], + }; + }), + }; + }; + + let itemsToUpdate: any = []; + + content?.map((chunk: any) => { + switch (chunk.type) { + case 'singleLine': + itemsToUpdate.push({ + singleLine: { text: chunk?.translation }, + componentId: chunk.id, + }); + break; + case 'richText': + itemsToUpdate.push({ + richText: { html: chunk?.translation }, + componentId: chunk.id, + }); + break; + case 'paragraphCollection': + itemsToUpdate.push({ + paragraphCollection: paragraphCollection(chunk?.paragraphs), + componentId: chunk.id, + }); + break; + default: + break; + } + }); + + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $itemId: ID! + $language: String! + $componentId: String! + $content: [[ComponentInput!]!]! + ) { + item { + updateComponent( + itemId: $itemId + language: $language + input: { componentId: $componentId, contentChunk: { chunks: $content } } + ) { + id + } + } + } + `, + { + itemId, + language, + componentId, + content: itemsToUpdate.filter(Boolean), + }, + ); + return data.item.updateComponent; + } catch (error) { + console.log(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-item-component.ts b/components/translation-app/src/use-cases/crystallize/write/update-item-component.ts new file mode 100644 index 0000000..4f321bb --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-item-component.ts @@ -0,0 +1,22 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const updateItemComponent = + (apiClient: ClientInterface) => + async ({ itemId, language, input }: { itemId: string; language: string; input: any }) => { + const data = await apiClient.pimApi( + `#graphql + mutation($itemId: ID!, $language: String!, $input: ComponentInput!) { + item { + updateComponent(itemId: $itemId, language: $language, input: $input){ + id + } + } + }`, + { + itemId, + language, + input, + }, + ); + return data.item.updateComponent; + }; diff --git a/components/translation-app/src/use-cases/crystallize/write/update-item-name.ts b/components/translation-app/src/use-cases/crystallize/write/update-item-name.ts new file mode 100644 index 0000000..cf7e14a --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-item-name.ts @@ -0,0 +1,27 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; +import type { ItemType } from '~/__generated__/types'; + +export const updateItemName = + (apiClient: ClientInterface) => + async ({ id, itemType, language, input }: { id: string; itemType: ItemType; language: string; input: any }) => { + const data = await apiClient.pimApi( + `#graphql + mutation($id: ID!, $language: String!, $input: Update${itemType.replace( + /^./, + itemType[0].toUpperCase(), + )}Input!) { + ${itemType} { + update(id: $id, language: $language, input: $input){ + id + } + } + }`, + { + id, + itemType, + language, + input, + }, + ); + return data; + }; diff --git a/components/translation-app/src/use-cases/crystallize/write/update-paragraph-collection.ts b/components/translation-app/src/use-cases/crystallize/write/update-paragraph-collection.ts new file mode 100644 index 0000000..7d71d28 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-paragraph-collection.ts @@ -0,0 +1,39 @@ +import { apiClient } from '../shared'; + +export async function updateParagraphCollection(itemId: string, language: string, componentId: string, content: any) { + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $itemId: ID! + $language: String! + $componentId: String! + $content: [ParagraphContentInput!]! + ) { + item { + updateComponent( + itemId: $itemId + language: $language + input: { + componentId: $componentId + paragraphCollection: { paragraphs: $content } + } + ) { + id + } + } + } + + `, + { + itemId, + language, + componentId, + content, + }, + ); + return data.item.updateComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-paragraph-variant.ts b/components/translation-app/src/use-cases/crystallize/write/update-paragraph-variant.ts new file mode 100644 index 0000000..97e9a34 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-paragraph-variant.ts @@ -0,0 +1,48 @@ +import { apiClient } from '../shared'; + +export async function updateVariantParagraph( + itemId: string, + sku: string, + language: string, + componentId: string, + content: any, +) { + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $productId: ID! + $sku: String! + $language: String! + $componentId: String! + $content: [ParagraphContentInput!]! + ) { + product { + updateVariantComponent( + productId: $productId + sku: $sku + language: $language + input: { + componentId: $componentId + paragraphCollection: { paragraphs: $content } + } + ) { + id + } + } + } + `, + { + productId: itemId, + sku, + language, + componentId, + content, + }, + ); + console.log(data); + return data.product.updateVariantComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-rich-text-component.ts b/components/translation-app/src/use-cases/crystallize/write/update-rich-text-component.ts new file mode 100644 index 0000000..3c41618 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-rich-text-component.ts @@ -0,0 +1,35 @@ +import { apiClient } from '../shared'; + +export async function updateRichTextComponent(itemId: string, language: string, componentId: string, content: string) { + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $itemId: ID! + $language: String! + $componentId: String! + $content: String! + ) { + item { + updateComponent( + itemId: $itemId + language: $language + input: { componentId: $componentId, richText: { html: [$content] } } + ) { + id + } + } + } + `, + { + itemId, + language, + componentId, + content, + }, + ); + return data.item.updateComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-rich-text-variant.ts b/components/translation-app/src/use-cases/crystallize/write/update-rich-text-variant.ts new file mode 100644 index 0000000..0981209 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-rich-text-variant.ts @@ -0,0 +1,44 @@ +import { apiClient } from '../shared'; + +export async function updateVariantRichText( + itemId: string, + sku: string, + language: string, + componentId: string, + content: string, +) { + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $productId: ID! + $sku: String! + $language: String! + $componentId: String! + $text: String! + ) { + product { + updateVariantComponent( + productId: $productId + sku: $sku + language: $language + input: { componentId: $componentId, richText: { html: [$text] } } + ) { + id + } + } + } + `, + { + productId: itemId, + sku, + language, + componentId, + text: content, + }, + ); + return data.product.updateVariantComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-single-line-component.ts b/components/translation-app/src/use-cases/crystallize/write/update-single-line-component.ts new file mode 100644 index 0000000..1ed0870 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-single-line-component.ts @@ -0,0 +1,40 @@ +import { apiClient } from '../shared'; + +export async function updateSingleLineComponent( + itemId: string, + language: string, + componentId: string, + content: string, +) { + try { + const data = await apiClient.pimApi( + `#graphql + mutation( + $itemId: ID! + $language: String! + $componentId: String! + $content: String + ) { + item { + updateComponent( + itemId: $itemId + language: $language + input: { componentId: $componentId, singleLine: { text: $content } } + ) { + id + } + } + } + `, + { + itemId, + language, + componentId, + content, + }, + ); + return data.item.updateComponent; + } catch (error) { + console.error(error); + } +} diff --git a/components/translation-app/src/use-cases/crystallize/write/update-variant-component.ts b/components/translation-app/src/use-cases/crystallize/write/update-variant-component.ts new file mode 100644 index 0000000..e5890a5 --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-variant-component.ts @@ -0,0 +1,23 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const updateVariantComponent = + (apiClient: ClientInterface) => + async ({ productId, language, sku, input }: { productId: string; language: string; sku: string; input: any }) => { + const data = await apiClient.pimApi( + `#graphql + mutation($productId: ID!, $language: String!, $sku: String!, $input: ComponentInput!) { + product { + updateVariantComponent(productId: $productId, language: $language, sku: $sku, input: $input){ + id + } + } + }`, + { + productId, + language, + sku, + input, + }, + ); + return data.product?.updateComponent; + }; diff --git a/components/translation-app/src/use-cases/crystallize/write/update-variant-name.ts b/components/translation-app/src/use-cases/crystallize/write/update-variant-name.ts new file mode 100644 index 0000000..8cbb8dd --- /dev/null +++ b/components/translation-app/src/use-cases/crystallize/write/update-variant-name.ts @@ -0,0 +1,25 @@ +import type { ClientInterface } from '@crystallize/js-api-client'; + +export const updateVariantName = + (apiClient: ClientInterface) => + async ({ id, sku, language, input }: { id: string; sku: string; language: string; input: any }) => { + console.log({ id, sku, language, input }); + const data = await apiClient.pimApi( + `#graphql + mutation($id: ID!, $sku: String, $language: String!, $input: UpdateSingleProductVariantInput!) { + product { + updateVariant(productId: $id, sku: $sku, language: $language, input: $input){ + id + } + } + }`, + { + id, + sku, + language, + input, + }, + ); + + return data; + }; diff --git a/components/translation-app/src/use-cases/translations/translate-component-type.ts b/components/translation-app/src/use-cases/translations/translate-component-type.ts new file mode 100644 index 0000000..35684aa --- /dev/null +++ b/components/translation-app/src/use-cases/translations/translate-component-type.ts @@ -0,0 +1,27 @@ +import type { Translator } from '~/core/translator.server'; +import type { Language, Preferences } from '../contracts/types'; +import { translateSingleLine } from './translate-single-line'; +import { translateRichText } from './translate-richtext'; +import { translateParagraphCollection } from './translate-paragraph-collection'; + +type Deps = { + translator: Translator; +}; + +export const translateComponentType = async ( + translateLanguage: Language, + component: any, + preferences: Preferences, + { translator }: Deps, +) => { + switch (component.type) { + case 'singleLine': + return await translateSingleLine(component, translateLanguage, preferences, { translator }); + case 'richText': + return await translateRichText(component, translateLanguage, preferences, { translator }); + case 'paragraphCollection': + return await translateParagraphCollection(component, translateLanguage, preferences, { translator }); + default: + return null; + } +}; diff --git a/components/translation-app/src/use-cases/translations/translate-paragraph-collection.ts b/components/translation-app/src/use-cases/translations/translate-paragraph-collection.ts new file mode 100644 index 0000000..90c5334 --- /dev/null +++ b/components/translation-app/src/use-cases/translations/translate-paragraph-collection.ts @@ -0,0 +1,47 @@ +import type { Translator } from '~/core/translator.server'; +import type { Language, Preferences } from '../contracts/types'; + +type Deps = { + translator: Translator; +}; + +export const translateParagraphCollection = async ( + component: any, + translateLanguage: Language, + preferences: Preferences, + { translator }: Deps, +) => { + return { + id: component.id, + type: 'paragraphCollection', + translation: await Promise.all( + component?.content?.paragraphs.map(async (paragraph: any) => { + const titleText = paragraph?.title?.text?.trim(); + const bodyText = paragraph?.body?.plainText?.toString()?.trim(); + + const [title, body] = await Promise.all([ + titleText + ? translator.translate({ + text: titleText, + language: translateLanguage, + preferences, + }) + : null, + bodyText + ? translator.translate({ + text: bodyText, + language: translateLanguage, + preferences, + }) + : null, + ]); + + return { + title: { text: title }, + body: { plainText: [body] }, + images: paragraph?.images, + }; + }), + ), + }; +}; diff --git a/components/translation-app/src/use-cases/translations/translate-richtext.ts b/components/translation-app/src/use-cases/translations/translate-richtext.ts new file mode 100644 index 0000000..24b100b --- /dev/null +++ b/components/translation-app/src/use-cases/translations/translate-richtext.ts @@ -0,0 +1,35 @@ +import type { Translator } from '~/core/translator.server'; +import type { Language, Preferences } from '../contracts/types'; + +type Deps = { + translator: Translator; +}; + +export const translateRichText = async ( + component: any, + translateLanguage: Language, + preferences: Preferences, + { translator }: Deps, +) => { + const text = component?.content?.plainText?.toString()?.trim(); + + if (!text) { + return { + id: component.id, + type: 'richText', + translation: null, + }; + } + + const translation = await translator.translate({ + text, + language: translateLanguage, + preferences, + }); + + return { + id: component.componentId, + type: 'richText', + translation: [translation], + }; +}; diff --git a/components/translation-app/src/use-cases/translations/translate-single-line.ts b/components/translation-app/src/use-cases/translations/translate-single-line.ts new file mode 100644 index 0000000..71cf681 --- /dev/null +++ b/components/translation-app/src/use-cases/translations/translate-single-line.ts @@ -0,0 +1,29 @@ +import type { Translator } from '~/core/translator.server'; +import type { Language, Preferences } from '../contracts/types'; + +type Deps = { + translator: Translator; +}; + +export const translateSingleLine = async ( + component: any, + translateLanguage: Language, + preferences: Preferences, + { translator }: Deps, +) => { + const text = component?.content?.text?.trim(); + + const translation = + text && + (await translator.translate({ + text, + language: translateLanguage, + preferences, + })); + + return { + id: component.componentId, + type: 'singleLine', + translation: translation || '', + }; +}; diff --git a/components/translation-app/src/use-cases/translations/types.ts b/components/translation-app/src/use-cases/translations/types.ts new file mode 100644 index 0000000..a8aa40f --- /dev/null +++ b/components/translation-app/src/use-cases/translations/types.ts @@ -0,0 +1,11 @@ +import type { Preferences } from '../contracts/types'; +import type { Component } from '~/__generated__/types'; +import type { Translator } from '~/core/translator.server'; + +export type TranslateComponentProps = { + fromLanguage: string; + toLanguage: string; + component: Component; + preferences: Preferences; + translator: Translator; +}; diff --git a/components/translation-app/src/use-cases/utils/debounce.ts b/components/translation-app/src/use-cases/utils/debounce.ts new file mode 100644 index 0000000..5a838f0 --- /dev/null +++ b/components/translation-app/src/use-cases/utils/debounce.ts @@ -0,0 +1,7 @@ +export function debounce(func: (...args: T[]) => unknown, delay = 400): typeof func { + let timeout: number | NodeJS.Timeout; + return function (...args: T[]) { + clearTimeout(timeout as number); + timeout = setTimeout(() => func(...args), delay); + }; +} diff --git a/components/translation-app/tailwind.config.js b/components/translation-app/tailwind.config.js new file mode 100644 index 0000000..8609c0b --- /dev/null +++ b/components/translation-app/tailwind.config.js @@ -0,0 +1,170 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/**/*.{ts,tsx}'], + theme: { + extend: { + animation: { + 'spin-slow': 'spin 3s linear infinite', + }, + }, + colors: { + cyan: { + 50: '#eefdfc', + 100: '#bff6f8', + 200: '#acf1f5', + 300: '#73e5ed', + 400: '#33d0dd', + 500: '#17b3c3', + 600: '#1690a4', + 700: '#197385', + 800: '#1d5e6d', + 900: '#1c4e5d', + }, + pink: { + 50: '#fef1f9', + 100: '#fee5f4', + 200: '#ffccec', + 300: '#ffa1db', + 400: '#ff66c0', + 500: '#fb39a4', + 600: '#eb1782', + 700: '#cd0966', + 800: '#a90b54', + 900: '#8d0e49', + }, + gray: { + 50: '#f5f5f6', + 100: '#e4e5e9', + 200: '#cccfd5', + 300: '#a9aeb7', + 400: '#7e8592', + 500: '#626778', + 600: '#545866', + 700: '#4c4f5a', + 800: '#40424a', + 900: '#393a40', + }, + purple: { + 50: '#f7f6f9', + 100: '#eeecf2', + 200: '#d8d5e2', + 300: '#b6b0c9', + 400: '#8e85ab', + 500: '#706691', + 600: '#5b5178', + 700: '#4b4262', + 800: '#403953', + 900: '#393347', + }, + green: { + 50: '#f3f8f8', + 100: '#dfebee', + 200: '#c3dade', + 300: '#9abfc6', + 400: '#699ca7', + 500: '#528693', + 600: '#436a77', + 700: '#3b5863', + 800: '#374b53', + 900: '#314148', + }, + orange: { + 50: '#fff9eb', + 100: '#ffedc6', + 200: '#ffde99', + 300: '#ffbf4a', + 400: '#ffa520', + 500: '#f98107', + 600: '#dd5c02', + 700: '#b73d06', + 800: '#942e0c', + 900: '#7a270d', + }, + 's-red': { + 50: '#fef2f2', + 100: '#ffe1e1', + 200: '#ffc8c8', + 300: '#ffadad', + 400: '#fd6c6c', + 500: '#f53e3e', + 600: '#e22020', + 700: '#be1717', + 800: '#9d1717', + 900: '#821a1a', + }, + 's-orange': { + 50: '#fff7ed', + 100: '#ffedd5', + 200: '#ffd6a5', + 300: '#ffbb72', + 400: '#fd943a', + 500: '#fc7513', + 600: '#ed5909', + 700: '#c4420a', + 800: '#9c3410', + 900: '#7d2d11', + }, + 's-yellow': { + 50: '#fefee8', + 100: '#fdffb6', + 200: '#fffe88', + 300: '#fff744', + 400: '#fee911', + 500: '#eecf04', + 600: '#cda201', + 700: '#a47404', + 800: '#875b0c', + 900: '#734a10', + }, + 's-green': { + 50: '#f2ffee', + 100: '#deffd8', + 200: '#caffbf', + 300: '#8dfd78', + 400: '#53f236', + 500: '#2cdb0c', + 600: '#1eb603', + 700: '#1b8e07', + 800: '#1a700b', + 900: '#165b0c', + }, + 's-blue': { + 50: '#eff5ff', + 100: '#dae7ff', + 200: '#bed5ff', + 300: '#a0c4ff', + 400: '#5d96fd', + 500: '#376ffa', + 600: '#214fef', + 700: '#193adc', + 800: '#1b31b2', + 900: '#1c2f8c', + }, + 's-purple': { + 50: '#f4f3ff', + 100: '#ebe8ff', + 200: '#d9d5ff', + 300: '#bdb2ff', + 400: '#9d88fd', + 500: '#7e58fa', + 600: '#6f35f2', + 700: '#6023de', + 800: '#501dba', + 900: '#431a98', + }, + 's-pink': { + 50: '#fff4ff', + 100: '#ffe7ff', + 200: '#ffc6ff', + 300: '#fea9fa', + 400: '#fc76f4', + 500: '#f342e7', + 600: '#d722c8', + 700: '#b219a1', + 800: '#921684', + 900: '#771869', + }, + }, + }, + plugins: [require('@tailwindcss/container-queries')], +}; diff --git a/components/translation-app/tsconfig.json b/components/translation-app/tsconfig.json new file mode 100644 index 0000000..d99d261 --- /dev/null +++ b/components/translation-app/tsconfig.json @@ -0,0 +1,22 @@ +{ + "include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"], + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "isolatedModules": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "target": "ES2022", + "strict": true, + "allowJs": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"] + }, + + // Remix takes care of building everything in `remix build`. + "noEmit": true + } +}