commit 82e5ac9d810fb9c739d87a13c484278c8c90ddd6 Author: Nadar Date: Tue Mar 17 13:24:22 2026 +0300 initial diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8060aa3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.idea +.turbo +.git +.gitab-ci.d +.gitlab-ci.yml +out +**/node_modules +Dockerfile.* \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6adebf9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +.pnp +.pnp.js + +# testing +coverage + +# next.js +.next/ +out/ +build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# turbo +.turbo + +# vercel +.vercel +/.idea/git_toolbox_prj.xml +/.idea/vcs.xml diff --git a/.gitlab-ci.d/app-client-cf-pages.yml b/.gitlab-ci.d/app-client-cf-pages.yml new file mode 100644 index 0000000..103372b --- /dev/null +++ b/.gitlab-ci.d/app-client-cf-pages.yml @@ -0,0 +1,45 @@ +build-app-client-cf-pages: + stage: build + needs: [] + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.client" + --target builder-cloudflare + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-client/cache" + --no-push + +deploy-app-client-cf-pages: + stage: deploy + needs: [] + rules: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + changes: + - apps/client/**/* + - layers/ui/**/* + - layers/shared/**/* + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + when: manual + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - cp ${CLOUDFLARE_PRGMS_IO_ACCOUNT_ID} /kaniko/cloudflare-account-id + - cp ${CLOUDFLARE_PRGMS_IO_WRANGLER_API_TOKEN} /kaniko/cloudflare-api-token + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.client" + --target deployer-cloudflare + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-client/cache" + --no-push diff --git a/.gitlab-ci.d/app-client-docker.yml b/.gitlab-ci.d/app-client-docker.yml new file mode 100644 index 0000000..890166b --- /dev/null +++ b/.gitlab-ci.d/app-client-docker.yml @@ -0,0 +1,89 @@ +build-app-client-docker: + stage: build + needs: [] + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.client" + --target runner-nodejs + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-client/cache" + --no-push + +build-app-client-docker-latest: + stage: build + needs: [] + rules: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + changes: + - apps/client/**/* + - layers/ui/**/* + - layers/shared/**/* + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + when: manual + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.client" + --target runner-nodejs + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-client/cache" + --destination "${CI_REGISTRY_IMAGE}/frontend-app-client:latest" + --image-name-with-digest-file "${CI_PROJECT_DIR}/.images/frontend-app-client.txt" + artifacts: + paths: + - .images/frontend-app-client.txt + +deploy-app-client-docker: + image: alpine:latest + stage: deploy + rules: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + needs: + - job: build-app-client-docker-latest + artifacts: true + timeout: 3m + variables: + DOCKER_RUN_COMMAND: + expand: true + value: >- + docker run + --name frontend-app + --detach + --restart unless-stopped + --network frontend + -e NITRO_SHUTDOWN=true + -e NICONSOLE_LEVEL=4 + -e CONSOLA_LEVEL=4 + -e NITRO_API_HOST=https://api.prgms.io/api/v1 + "$(cat frontend-app-client.txt)" + before_script: + - apk add openssh-client + - eval $(ssh-agent -s) + - chmod 400 "$ID_RSA" + - ssh-add "$ID_RSA" + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts + script: + - test -f .images/frontend-app-client.txt + - scp .images/frontend-app-client.txt ${SERVER_USER}@${SERVER_IP}:frontend-app-client.txt + - >- + ssh + "$SERVER_USER@$SERVER_IP" + "docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY" + - ssh "${SERVER_USER}@${SERVER_IP}" "docker stop frontend-app || true" + - ssh "${SERVER_USER}@${SERVER_IP}" "docker rm frontend-app || true" + - ssh "${SERVER_USER}@${SERVER_IP}" "${DOCKER_RUN_COMMAND}" diff --git a/.gitlab-ci.d/app-pay-cf-pages.yml b/.gitlab-ci.d/app-pay-cf-pages.yml new file mode 100644 index 0000000..6c5a448 --- /dev/null +++ b/.gitlab-ci.d/app-pay-cf-pages.yml @@ -0,0 +1,45 @@ +build-app-pay-cf-pages: + stage: build + needs: [] + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.pay" + --target builder-cloudflare + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-pay/cache" + --no-push + +deploy-app-pay-cf-pages: + stage: deploy + needs: [] + rules: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + changes: + - apps/pay/**/* + - layers/ui/**/* + - layers/shared/**/* + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "ci/pay" + when: manual + image: + name: gcr.io/kaniko-project/executor:v1.15.0-debug + entrypoint: [""] + script: + - cp ${CLOUDFLARE_PRGMS_IO_ACCOUNT_ID} /kaniko/cloudflare-account-id + - cp ${CLOUDFLARE_PRGMS_IO_WRANGLER_API_TOKEN} /kaniko/cloudflare-api-token + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile.pay" + --target deployer-cloudflare + --skip-unused-stages=true + --cache=true + --cache-repo "${CI_REGISTRY_IMAGE}/frontend-app-pay/cache" + --no-push diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..812302b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,52 @@ +stages: + - build + - deploy + +include: + - local: .gitlab-ci.d/app-client-docker.yml + - local: .gitlab-ci.d/app-client-cf-pages.yml + - local: .gitlab-ci.d/app-pay-cf-pages.yml + +report-deploy-client-success: ¬ificationJob + image: alpine:latest + stage: .post + when: on_success + needs: + - deploy-app-client-docker + rules: + - if: $CI_COMMIT_BRANCH == "main" + - if: $CI_COMMIT_BRANCH == "ci/pay" + before_script: + - apk add curl + variables: + NOTIFICATION_TEXT: "Frontend successfully deployed, check at https://app.prgms.io" + script: + - >- + curl -s -S -X POST + "https://api.telegram.org/bot${TELEGRAM_DEPLOY_NOTIFY_TOKEN}/sendMessage" + -d "chat_id=${TELEGRAM_DEPLOY_NOTIFY_CHAT_ID}" + -d text="$NOTIFICATION_TEXT" + +report-deploy-client-failure: + <<: *notificationJob + when: on_failure + needs: + - deploy-app-client-docker + variables: + NOTIFICATION_TEXT: "Frontend deployment failed, check pipeline at ${CI_PIPELINE_URL}" + +report-deploy-pay-success: + <<: *notificationJob + when: on_success + needs: + - deploy-app-pay-cf-pages + variables: + NOTIFICATION_TEXT: "Payment page successfully deployed, check at https://pay.prgms.io" + +report-deploy-pay-failure: + <<: *notificationJob + when: on_failure + needs: + - deploy-app-pay-cf-pages + variables: + NOTIFICATION_TEXT: "Payment page deployment failed, check pipeline at ${CI_PIPELINE_URL}" diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml new file mode 100644 index 0000000..4ea72a9 --- /dev/null +++ b/.idea/copilot.data.migration.agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/git_toolbox_blame.xml b/.idea/git_toolbox_blame.xml new file mode 100644 index 0000000..7dc1249 --- /dev/null +++ b/.idea/git_toolbox_blame.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/indefiti.iml b/.idea/indefiti.iml new file mode 100644 index 0000000..98ec360 --- /dev/null +++ b/.idea/indefiti.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..ca1a652 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,23 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..d23208f --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jsLinters/eslint.xml b/.idea/jsLinters/eslint.xml new file mode 100644 index 0000000..541945b --- /dev/null +++ b/.idea/jsLinters/eslint.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e4f5ad1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000..fb0d65a --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..ded82e2 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +auto-install-peers = true diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..a32b9fc --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + endOfLine: 'auto', + trailingComma: 'es5', + tabWidth: 2, + semi: true, + singleQuote: true, +}; diff --git a/Dockerfile.client b/Dockerfile.client new file mode 100644 index 0000000..cb075ce --- /dev/null +++ b/Dockerfile.client @@ -0,0 +1,46 @@ +FROM node:18-alpine AS base +WORKDIR /app +RUN yarn global add turbo@1.5.5 + +FROM base AS pruner +COPY . . +RUN test -f package.json +RUN turbo prune --scope=client --docker + +# Add lockfile and package.json's of isolated subworkspace +FROM base AS deps +COPY --link --from=pruner /app/out/json/ . +COPY --link --from=pruner /app/out/yarn.lock ./yarn.lock +RUN yarn install --frozen-lockfile +COPY --from=pruner /app/out/full . + +FROM deps AS builder-cloudflare +ENV NITRO_PRESET=cloudflare-pages +RUN turbo run build --scope=client + +FROM node:18-alpine AS deployer-cloudflare +WORKDIR /app +RUN npm install --global wrangler +COPY --link --from=builder-cloudflare /app/apps/client/dist /app/dist +ARG GIT_BRANCH="main" \ + GIT_COMMIT="" \ + CF_PAGES_PROJECT="app-prgms-io" +RUN --mount=type=secret,id=cloudflare-account-id,target=/kaniko/cloudflare-account-id \ + --mount=type=secret,id=cloudflare-api-token,target=/kaniko/cloudflare-api-token \ + CLOUDFLARE_ACCOUNT_ID=$(cat /kaniko/cloudflare-account-id) \ + CLOUDFLARE_API_TOKEN=$(cat /kaniko/cloudflare-api-token) \ + wrangler pages deploy \ + --project-name "${CF_PAGES_PROJECT}" \ + --branch "${GIT_BRANCH}" \ + --commit-hash "${GIT_COMMIT}" \ + dist + +FROM deps AS builder-nodejs +ENV NITRO_PRESET=node-server +RUN turbo run build --scope=client + +FROM node:18-alpine AS runner-nodejs +WORKDIR /app +COPY --from=builder-nodejs /app/apps/client/.output /app +EXPOSE 3000 +CMD [ "node", "./server/index.mjs" ] \ No newline at end of file diff --git a/Dockerfile.pay b/Dockerfile.pay new file mode 100644 index 0000000..70238bb --- /dev/null +++ b/Dockerfile.pay @@ -0,0 +1,45 @@ +FROM node:18-alpine AS base +WORKDIR /app +RUN yarn global add turbo@1.5.5 + +FROM base AS pruner +COPY . . +RUN test -f package.json +RUN turbo prune --scope=pay --docker + +FROM base as deps +COPY --link --from=pruner /app/out/json/ . +COPY --link --from=pruner /app/out/yarn.lock ./yarn.lock +RUN yarn install --frozen-lockfile +COPY --from=pruner /app/out/full . + +FROM deps AS builder-cloudflare +ENV NITRO_PRESET=cloudflare-pages +RUN turbo run build --scope=pay + +FROM node:18-alpine AS deployer-cloudflare +WORKDIR /app +RUN npm install --global wrangler +COPY --link --from=builder-cloudflare /app/apps/pay/dist /app/dist +ARG GIT_BRANCH="main" \ + GIT_COMMIT="" \ + CF_PAGES_PROJECT="pay-prgms-io" +RUN --mount=type=secret,id=cloudflare-account-id,target=/kaniko/cloudflare-account-id \ + --mount=type=secret,id=cloudflare-api-token,target=/kaniko/cloudflare-api-token \ + CLOUDFLARE_ACCOUNT_ID=$(cat /kaniko/cloudflare-account-id) \ + CLOUDFLARE_API_TOKEN=$(cat /kaniko/cloudflare-api-token) \ + wrangler pages deploy \ + --project-name "${CF_PAGES_PROJECT}" \ + --branch "${GIT_BRANCH}" \ + --commit-hash "${GIT_COMMIT}" \ + dist + +FROM deps AS builder-nodejs +ENV NITRO_PRESET=node-server +RUN turbo run build --scope=pay + +FROM node:18-alpine AS runner-nodejs +WORKDIR /app +COPY --from=builder-nodejs /app/apps/pay/.output /app +EXPOSE 3000 +CMD [ "node", "./server/index.mjs" ] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b9bc31 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# Cryptokittens Front + +## Структура проекта + +- `apps` + - `client` - основное приложение + - `pay` - страница оплаты + - `admin` - админка (возможно когда-то будет?) +- `packages` + - `ui`- библиотека UI компонентов + - `eslint-config-custom` - конфигурация для ESLint и Prettier + +## Режим разработчика + +```sh +yarn +yarn dev:client +``` + +## Сборка проекта + +```sh +yarn +yarn build:client +``` + +Итоговый код будет доступен по пути `/apps/client/.output` + diff --git a/apps/client/.gitignore b/apps/client/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/apps/client/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/apps/client/.npmrc b/apps/client/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/apps/client/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/apps/client/app.vue b/apps/client/app.vue new file mode 100644 index 0000000..9fd7bd8 --- /dev/null +++ b/apps/client/app.vue @@ -0,0 +1,13 @@ + + + diff --git a/apps/client/assets/styles.scss b/apps/client/assets/styles.scss new file mode 100644 index 0000000..8262e73 --- /dev/null +++ b/apps/client/assets/styles.scss @@ -0,0 +1,7 @@ +body, html { + height: 100%; +} + +#__nuxt { + height: 100%; +} \ No newline at end of file diff --git a/apps/client/components/asset/card.vue b/apps/client/components/asset/card.vue new file mode 100644 index 0000000..88d216e --- /dev/null +++ b/apps/client/components/asset/card.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/apps/client/components/asset/sidebar.vue b/apps/client/components/asset/sidebar.vue new file mode 100644 index 0000000..5680f4c --- /dev/null +++ b/apps/client/components/asset/sidebar.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/apps/client/components/authorization/email-confirmation.vue b/apps/client/components/authorization/email-confirmation.vue new file mode 100644 index 0000000..fef0dd6 --- /dev/null +++ b/apps/client/components/authorization/email-confirmation.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/apps/client/components/authorization/faq-password.vue b/apps/client/components/authorization/faq-password.vue new file mode 100644 index 0000000..a079079 --- /dev/null +++ b/apps/client/components/authorization/faq-password.vue @@ -0,0 +1,48 @@ + + + diff --git a/apps/client/components/checkbox-button.vue b/apps/client/components/checkbox-button.vue new file mode 100644 index 0000000..6c6c40f --- /dev/null +++ b/apps/client/components/checkbox-button.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/apps/client/components/currency-name.vue b/apps/client/components/currency-name.vue new file mode 100644 index 0000000..678ca50 --- /dev/null +++ b/apps/client/components/currency-name.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/apps/client/components/form-header.vue b/apps/client/components/form-header.vue new file mode 100644 index 0000000..f8a541d --- /dev/null +++ b/apps/client/components/form-header.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/apps/client/components/formatted-date.vue b/apps/client/components/formatted-date.vue new file mode 100644 index 0000000..4682181 --- /dev/null +++ b/apps/client/components/formatted-date.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/apps/client/components/invoices/empty.vue b/apps/client/components/invoices/empty.vue new file mode 100644 index 0000000..c6e7e82 --- /dev/null +++ b/apps/client/components/invoices/empty.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/apps/client/components/navigation/item.vue b/apps/client/components/navigation/item.vue new file mode 100644 index 0000000..6f00530 --- /dev/null +++ b/apps/client/components/navigation/item.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/apps/client/components/navigation/logo.vue b/apps/client/components/navigation/logo.vue new file mode 100644 index 0000000..ec6f0fd --- /dev/null +++ b/apps/client/components/navigation/logo.vue @@ -0,0 +1,10 @@ + diff --git a/apps/client/components/navigation/sidebar.vue b/apps/client/components/navigation/sidebar.vue new file mode 100644 index 0000000..3ea32e8 --- /dev/null +++ b/apps/client/components/navigation/sidebar.vue @@ -0,0 +1,46 @@ + + + diff --git a/apps/client/components/network-select.vue b/apps/client/components/network-select.vue new file mode 100644 index 0000000..bf1ddd1 --- /dev/null +++ b/apps/client/components/network-select.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/apps/client/components/notification-card/base.vue b/apps/client/components/notification-card/base.vue new file mode 100644 index 0000000..a6bf129 --- /dev/null +++ b/apps/client/components/notification-card/base.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/apps/client/components/notification-card/completed-withdraw.vue b/apps/client/components/notification-card/completed-withdraw.vue new file mode 100644 index 0000000..1acb486 --- /dev/null +++ b/apps/client/components/notification-card/completed-withdraw.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/apps/client/components/notification-card/deposit.vue b/apps/client/components/notification-card/deposit.vue new file mode 100644 index 0000000..2d00a02 --- /dev/null +++ b/apps/client/components/notification-card/deposit.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/apps/client/components/notification-card/sign-in.vue b/apps/client/components/notification-card/sign-in.vue new file mode 100644 index 0000000..4b2c9c8 --- /dev/null +++ b/apps/client/components/notification-card/sign-in.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/apps/client/components/notification-card/withdraw-created.vue b/apps/client/components/notification-card/withdraw-created.vue new file mode 100644 index 0000000..0abe67c --- /dev/null +++ b/apps/client/components/notification-card/withdraw-created.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/apps/client/components/notifications-dropdown.vue b/apps/client/components/notifications-dropdown.vue new file mode 100644 index 0000000..ad00b0b --- /dev/null +++ b/apps/client/components/notifications-dropdown.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/apps/client/components/notify-button.vue b/apps/client/components/notify-button.vue new file mode 100644 index 0000000..cfe51a2 --- /dev/null +++ b/apps/client/components/notify-button.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/apps/client/components/operation-type.vue b/apps/client/components/operation-type.vue new file mode 100644 index 0000000..77eeb4b --- /dev/null +++ b/apps/client/components/operation-type.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/apps/client/components/page-form.vue b/apps/client/components/page-form.vue new file mode 100644 index 0000000..ea197bd --- /dev/null +++ b/apps/client/components/page-form.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/apps/client/components/page/block.vue b/apps/client/components/page/block.vue new file mode 100644 index 0000000..e528d92 --- /dev/null +++ b/apps/client/components/page/block.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/apps/client/components/page/footer-info-block.vue b/apps/client/components/page/footer-info-block.vue new file mode 100644 index 0000000..56fd304 --- /dev/null +++ b/apps/client/components/page/footer-info-block.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/apps/client/components/page/header.vue b/apps/client/components/page/header.vue new file mode 100644 index 0000000..fca92b4 --- /dev/null +++ b/apps/client/components/page/header.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/apps/client/components/page/info-block.vue b/apps/client/components/page/info-block.vue new file mode 100644 index 0000000..e4e2bad --- /dev/null +++ b/apps/client/components/page/info-block.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/apps/client/components/page/toolbar.vue b/apps/client/components/page/toolbar.vue new file mode 100644 index 0000000..2e562f5 --- /dev/null +++ b/apps/client/components/page/toolbar.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/apps/client/components/profile-dropdown.vue b/apps/client/components/profile-dropdown.vue new file mode 100644 index 0000000..a78c670 --- /dev/null +++ b/apps/client/components/profile-dropdown.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/apps/client/components/project/create.vue b/apps/client/components/project/create.vue new file mode 100644 index 0000000..5053b9c --- /dev/null +++ b/apps/client/components/project/create.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/client/components/project/info-columns.vue b/apps/client/components/project/info-columns.vue new file mode 100644 index 0000000..4d6bff2 --- /dev/null +++ b/apps/client/components/project/info-columns.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/apps/client/components/projects-table.vue b/apps/client/components/projects-table.vue new file mode 100644 index 0000000..9155c8f --- /dev/null +++ b/apps/client/components/projects-table.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/apps/client/components/radio-button.vue b/apps/client/components/radio-button.vue new file mode 100644 index 0000000..a5a2da4 --- /dev/null +++ b/apps/client/components/radio-button.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/apps/client/components/resource-filter/base.vue b/apps/client/components/resource-filter/base.vue new file mode 100644 index 0000000..f837a18 --- /dev/null +++ b/apps/client/components/resource-filter/base.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/apps/client/components/resource-filter/calendar.vue b/apps/client/components/resource-filter/calendar.vue new file mode 100644 index 0000000..5764b64 --- /dev/null +++ b/apps/client/components/resource-filter/calendar.vue @@ -0,0 +1,51 @@ + + + diff --git a/apps/client/components/resource-filter/select.vue b/apps/client/components/resource-filter/select.vue new file mode 100644 index 0000000..826a4d1 --- /dev/null +++ b/apps/client/components/resource-filter/select.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/client/components/resource-filters.vue b/apps/client/components/resource-filters.vue new file mode 100644 index 0000000..679d147 --- /dev/null +++ b/apps/client/components/resource-filters.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/apps/client/components/settings/finance-notification-table.vue b/apps/client/components/settings/finance-notification-table.vue new file mode 100644 index 0000000..4b2ec61 --- /dev/null +++ b/apps/client/components/settings/finance-notification-table.vue @@ -0,0 +1,61 @@ + + + diff --git a/apps/client/components/settings/limit-progress.vue b/apps/client/components/settings/limit-progress.vue new file mode 100644 index 0000000..c90388e --- /dev/null +++ b/apps/client/components/settings/limit-progress.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/apps/client/components/settings/property-item.vue b/apps/client/components/settings/property-item.vue new file mode 100644 index 0000000..b8302fa --- /dev/null +++ b/apps/client/components/settings/property-item.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/apps/client/components/settings/property.vue b/apps/client/components/settings/property.vue new file mode 100644 index 0000000..a7f33a5 --- /dev/null +++ b/apps/client/components/settings/property.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/apps/client/components/settings/raw-table.vue b/apps/client/components/settings/raw-table.vue new file mode 100644 index 0000000..6e6020d --- /dev/null +++ b/apps/client/components/settings/raw-table.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/apps/client/components/settings/service-notification-table.vue b/apps/client/components/settings/service-notification-table.vue new file mode 100644 index 0000000..739964c --- /dev/null +++ b/apps/client/components/settings/service-notification-table.vue @@ -0,0 +1,59 @@ + + + diff --git a/apps/client/components/settings/tariff-card.vue b/apps/client/components/settings/tariff-card.vue new file mode 100644 index 0000000..633179d --- /dev/null +++ b/apps/client/components/settings/tariff-card.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/apps/client/components/sidebar.vue b/apps/client/components/sidebar.vue new file mode 100644 index 0000000..bd25bf7 --- /dev/null +++ b/apps/client/components/sidebar.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/apps/client/components/static-error.vue b/apps/client/components/static-error.vue new file mode 100644 index 0000000..434b28a --- /dev/null +++ b/apps/client/components/static-error.vue @@ -0,0 +1,9 @@ + + + diff --git a/apps/client/components/stepper.vue b/apps/client/components/stepper.vue new file mode 100644 index 0000000..87c50c9 --- /dev/null +++ b/apps/client/components/stepper.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/apps/client/components/stripped-table.vue b/apps/client/components/stripped-table.vue new file mode 100644 index 0000000..ab1d603 --- /dev/null +++ b/apps/client/components/stripped-table.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/apps/client/components/verification/base-card.vue b/apps/client/components/verification/base-card.vue new file mode 100644 index 0000000..120d9c0 --- /dev/null +++ b/apps/client/components/verification/base-card.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/apps/client/components/verification/basic.vue b/apps/client/components/verification/basic.vue new file mode 100644 index 0000000..83b6218 --- /dev/null +++ b/apps/client/components/verification/basic.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/apps/client/components/verification/extended.vue b/apps/client/components/verification/extended.vue new file mode 100644 index 0000000..d045df6 --- /dev/null +++ b/apps/client/components/verification/extended.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/apps/client/components/verification/property.vue b/apps/client/components/verification/property.vue new file mode 100644 index 0000000..dd22e7a --- /dev/null +++ b/apps/client/components/verification/property.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/apps/client/components/verification/we-accept.vue b/apps/client/components/verification/we-accept.vue new file mode 100644 index 0000000..0295c85 --- /dev/null +++ b/apps/client/components/verification/we-accept.vue @@ -0,0 +1,40 @@ + + + + + \ No newline at end of file diff --git a/apps/client/composables/api.ts b/apps/client/composables/api.ts new file mode 100644 index 0000000..201e31e --- /dev/null +++ b/apps/client/composables/api.ts @@ -0,0 +1,39 @@ +import type { NitroFetchRequest } from 'nitropack' +import { callWithNuxt } from '#app' + +export function $api< + T = unknown, + R extends NitroFetchRequest = NitroFetchRequest, +>( + request: Parameters>[0], + options?: Partial>[1]>, +) { + const nuxtApp = useNuxtApp() + const runtimeConfig = useRuntimeConfig() + const cookies = useRequestHeaders(['cookie']) + + return $fetch(request, { + ...options, + headers: { + ...options?.headers, + ...cookies, + }, + retry: false, + baseURL: runtimeConfig.public.apiHost as string, + credentials: 'include', + onResponseError: async ({ response }) => { + if (response.status === 401) { + nuxtApp.runWithContext(() => { + useCookie('session').value = null + }) + await callWithNuxt(nuxtApp, clearNuxtState, ['user']) + await callWithNuxt(nuxtApp, navigateTo, ['/login', { redirectCode: 401 }]) + } + + // setStaticError({ + // status: response.status, + // message: nuxtApp.$i18n.t('something_went_wrong'), + // }); + }, + }) +} diff --git a/apps/client/composables/static-error.ts b/apps/client/composables/static-error.ts new file mode 100644 index 0000000..1ad1bb1 --- /dev/null +++ b/apps/client/composables/static-error.ts @@ -0,0 +1,16 @@ +export interface StaticError { + status: number + message?: string +} + +export function useStaticError() { + return useState('static-error') +} + +export function setStaticError(value?: StaticError) { + useStaticError().value = value +} + +export function clearStaticError() { + clearNuxtState(['static-error']) +} diff --git a/apps/client/composables/use-auth.ts b/apps/client/composables/use-auth.ts new file mode 100644 index 0000000..ea7c70c --- /dev/null +++ b/apps/client/composables/use-auth.ts @@ -0,0 +1,69 @@ +export interface User { + id: string + email: string +} + +export default () => { + const nuxtApp = useNuxtApp() + const user = useState('user') + + const authenticated = computed(() => !!user.value) + + async function getUser() { + user.value = await $api('/users/current', { method: 'GET' }) + } + + async function login(email: string, password: string) { + await $api('/sessions', { method: 'POST', body: { email, password } }) + await getUser() + + navigateTo('/projects') + } + + async function register(email: string, password: string) { + await $api('/users', { method: 'POST', body: { email, password } }) + + navigateTo('/login') + } + + async function logout() { + try { + await $api('/sessions', { method: 'delete', body: {} }) + } + finally { + clearNuxtState('user') + navigateTo('/login') + } + } + + async function requestResetPassword(email: string) { + await $api('/users/password_reset', { method: 'post', body: { email } }) + } + + async function resetPassword(newPassword: string, resetCode: string) { + await $api('/users/password_reset', { + method: 'put', + body: { + newPassword, + resetCode, + }, + }) + } + async function resendVerificationCode(email: string) { + await $api('/users/verification', { + method: 'put', + body: { email }, + }) + } + + return { + user, + authenticated, + login, + register, + logout, + resendVerificationCode, + requestResetPassword, + resetPassword, + } +} diff --git a/apps/client/composables/use-filters.ts b/apps/client/composables/use-filters.ts new file mode 100644 index 0000000..3c753bd --- /dev/null +++ b/apps/client/composables/use-filters.ts @@ -0,0 +1,156 @@ +import { computed, provide, reactive, unref } from 'vue' +import type { ComputedRef, InjectionKey, MaybeRef } from 'vue' +import { omit } from 'lodash-es' +import dayjs from 'dayjs' + +const DATE_FORMAT = 'DD-MM-YYYY' + +export interface Filter { + type?: 'select' | 'calendar' + key: string + label: string + placeholder: string + searchable?: boolean + multiple?: boolean + options?: { label?: string, value: unknown }[] + transform?: (value: AppliedFilter) => AppliedFilters +} +export type Filters = Filter[] + +export type AppliedFilter = null | string | string[] +export type AppliedFilters = Record + +export interface FiltersContext { + schema: MaybeRef + appliedFiltersRaw: AppliedFilters + appliedFilters: ComputedRef + empty: boolean | ComputedRef + apply: (p1: AppliedFilters | string, p2?: AppliedFilter) => void + reset: () => void +} + +export const filtersContextKey: InjectionKey + = Symbol('FILTERS') + +export default (filters: MaybeRef) => { + const url = useRequestURL() + + const searchString = computed(() => url.search) + + const parsedUrl: { other: Record, filters: AppliedFilters } + = reactive({ + other: {}, + filters: {}, + }) + + const allowedFilters = computed(() => { + return unref(filters).map(filter => filter.key) + }) + + parseUrl(searchString.value) + + const appliedFiltersRaw = reactive({ + ...Object.fromEntries( + allowedFilters.value.map(key => [key, isMultiple(key) ? [] : null]), + ), + ...parsedUrl.filters, + }) + + const appliedFilters = computed(() => { + return Object.entries(appliedFiltersRaw).reduce((result, [key, value]) => { + const filter = getFilterByKey(key)! + if (filter.transform) { + const transformedValue = filter.transform(value) + + if (transformedValue) + result = { ...result, ...transformedValue } + else + result[key] = value + } + else { + result[key] = value + } + return result + }, {} as AppliedFilters) + }) + + const empty = computed(() => + Object.values(appliedFiltersRaw).every((value) => { + return Array.isArray(value) ? value.length === 0 : value !== null + }), + ) + + function parseUrl(searchString: string) { + const params = new URLSearchParams(searchString) + + parsedUrl.other = {} + parsedUrl.filters = {} + + for (const [key, value] of Array.from(params.entries())) { + if (allowedFilters.value.includes(key)) { + let newValue = isMultiple(key) ? value.split(',') : value + + if (isCalendar(key)) { + newValue = [...newValue].map(date => + dayjs(date, DATE_FORMAT).valueOf().toString(), + ) + } + + parsedUrl.filters[key] = newValue + } + else { + parsedUrl.other[key] = value + } + } + + parsedUrl.other = omit(parsedUrl.other, ['page']) + } + + function apply(p1: AppliedFilters | string, p2?: AppliedFilter) { + if (p2 && typeof p1 === 'string') { + appliedFiltersRaw[p1] = p2 + } + else if (typeof p1 === 'object') { + for (const [key, value] of Object.entries(p1)) + appliedFiltersRaw[key] = value + } + } + + function reset() { + for (const key of Object.keys(appliedFiltersRaw)) + appliedFiltersRaw[key] = isMultiple(key) ? [] : null + } + + function getFilterByKey(key: string) { + return unref(filters).find(f => f.key === key) + } + + function isMultiple(key: string) { + const filter = getFilterByKey(key) + + return filter?.multiple ?? filter?.type === 'calendar' ?? false + } + + function isCalendar(key: string) { + const filter = getFilterByKey(key) + + return filter?.type === 'calendar' ?? false + } + + provide(filtersContextKey, { + schema: filters, + appliedFiltersRaw, + appliedFilters, + empty, + apply, + reset, + }) + + return { + appliedFiltersRaw, + appliedFilters, + empty, + apply, + reset, + } +} diff --git a/apps/client/eslint.config.js b/apps/client/eslint.config.js new file mode 100644 index 0000000..fea5f37 --- /dev/null +++ b/apps/client/eslint.config.js @@ -0,0 +1,11 @@ +import antfu from '@antfu/eslint-config' + +export default await antfu({ + overrides: { + vue: { + 'vue/block-order': ['error', { + order: ['template', 'script', 'style'], + }], + }, + }, +}) diff --git a/apps/client/helpers/invoices.ts b/apps/client/helpers/invoices.ts new file mode 100644 index 0000000..5793b42 --- /dev/null +++ b/apps/client/helpers/invoices.ts @@ -0,0 +1,23 @@ +import type { AlertType } from 'ui-layer/components/alert/types' +import type { UiIcon } from '#build/types/ui/icons' + +export function getStatusType(status: string): AlertType { + switch (status) { + case 'completed': + return 'positive' + case 'expired': + return 'negative' + default: + return 'warning' + } +} +export function getStatusIcon(status: string): UiIcon { + switch (status) { + case 'completed': + return 's-check' + case 'expired': + return 's-cross' + default: + return 's-clock' + } +} diff --git a/apps/client/i18n.config.ts b/apps/client/i18n.config.ts new file mode 100644 index 0000000..29ce7ea --- /dev/null +++ b/apps/client/i18n.config.ts @@ -0,0 +1,5 @@ +export default defineI18nConfig(() => ({ + legacy: false, + locale: 'en', + globalInjection: true, +})) diff --git a/apps/client/index.d.ts b/apps/client/index.d.ts new file mode 100644 index 0000000..a864681 --- /dev/null +++ b/apps/client/index.d.ts @@ -0,0 +1,7 @@ +declare module '#app' { + interface PageMeta { + centerContent?: boolean + } +} + +export {} diff --git a/apps/client/lang/en.js b/apps/client/lang/en.js new file mode 100644 index 0000000..771926e --- /dev/null +++ b/apps/client/lang/en.js @@ -0,0 +1,122 @@ +export default { + validation: { + required: 'This field is required', + email: 'Enter an email address in the format example{\'@\'}xxxx.xxx', + confirmed: 'Passwords must match', + password: + 'Password must contain at least 8 characters, including uppercase letters, numbers, and special characters', + max: 'The value must be less than or equal to {0} characters.', + url: 'Please enter a valid URL', + }, + field_max_characters: '{0} (maximum {1} characters)', + + invoice_status: { + completed: 'Success', + expired: 'Expired', + pending: 'Pending', + awaiting_payment: 'Awaiting', + investigating: 'Investigating', + broadcasted: 'Broadcasted', + overpaid: 'Overpaid', + underpaid: 'Underpaid', + }, + + something_went_wrong: 'Something went wrong', + invalid_otp_code: 'Invalid OTP Code', + create: 'Create', + change: 'Change', + select: 'Select', + register: 'Register', + login: 'Login', + privacy_policy: 'Privacy Policy', + copyright: '© {year}, Indefiti - the best crypto processing', + support: 'Support', + network: 'Network', + maximum: 'Maximum', + continue: 'Continue', + fee: 'Fee', + login_greeting: 'Hello!', + register_greeting: 'Register with Indefiti', + to_main: 'To home page', + back: 'Back', + back_to: 'Back to {0}', + next: 'Next', + withdraw: 'Withdraw', + email: 'E-mail', + password: 'Password', + repeat_password: 'Repeat Password', + what_happened: 'What happened?', + what_todo: 'I don\'t remember what to do', + write_us: 'Write to us', + reset_password: 'Reset Password', + lost_password: 'Forgot Password?', + can_reset_password: 'Password can be reset', + fill_the_form: 'fill out this form', + reset_password_alert: + 'For security reasons, withdrawals will be prohibited for 24 hours after changing the password', + check_email: 'Check your e-mail', + email_confirmation: 'We have sent you an e-mail to {0}', + register_email_instructions: + 'To confirm your email,
follow the link in the email', + login_email_instructions: + 'To reset your password, follow the link in the email', + send_again: 'Send again', + spam: 'Spam', + + create_your_project: { + title: '{0} your first project', + create: 'Create', + content: 'This is necessary to accept payments on the site', + }, + + your_invoices_will_be_displayed_here: { + title: 'Your invoices will be displayed here', + content: 'Click on the create invoice button to start invoicing', + }, + create_an_invoice: 'Сreate an invoice', + + forgot_password_questions: { + did_not_get_mail: { + title: 'Check the {0} folder if you don\'t see the email', + content: 'Didn\'t receive the email? {0}', + }, + + forgot_password: { + title: 'Forgot my password', + content: + '{0}, if you have access to your email. If you don\'t have access, {1}.', + }, + + access_to_mail: { + title: 'No access to email', + content: 'If you don\'t have access to your email, {0}.', + }, + + no_mail: { + title: 'The website says there is no such email', + content: + 'Check which email you received receipts and other notifications to. If you are sure you are entering everything correctly, {0}.', + }, + }, + + sign_up_agreement: { + base: 'I confirm my agreement with the {0} and {1}', + privacy_policy: 'Privacy Policy', + user_agreement: 'User Agreement', + }, + apply: 'Apply', + try: 'Try', + test_functional: 'Test functional', + learn_functional: + 'Here you can familiarize yourself with the main features. To get started with payments, create your first project.', + how_does_it_works: 'How does it works', + projects: 'Projects', + account_created_successfully: 'Account created successfully', + account_verification_error: 'An error occurred during account verification', + try_again_or_contact_support: 'Try again or contact support', + we_have_sent_you_an_email_to: 'We have sent you an email to {0}', + check_spam_folder: 'Check the {0} folder if you do not see the letter', + did_not_get_mail: 'Did not get the email?', + reset_password_instructions: + 'To reset your password, follow the link from the letter', +} diff --git a/apps/client/lang/ru.js b/apps/client/lang/ru.js new file mode 100644 index 0000000..b1c6ea4 --- /dev/null +++ b/apps/client/lang/ru.js @@ -0,0 +1 @@ +export default {} diff --git a/apps/client/layouts/auth.vue b/apps/client/layouts/auth.vue new file mode 100644 index 0000000..f810526 --- /dev/null +++ b/apps/client/layouts/auth.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/apps/client/layouts/default.vue b/apps/client/layouts/default.vue new file mode 100644 index 0000000..3bc0580 --- /dev/null +++ b/apps/client/layouts/default.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/apps/client/layouts/empty.vue b/apps/client/layouts/empty.vue new file mode 100644 index 0000000..9c74d62 --- /dev/null +++ b/apps/client/layouts/empty.vue @@ -0,0 +1,5 @@ + diff --git a/apps/client/middleware/01.slash.global.ts b/apps/client/middleware/01.slash.global.ts new file mode 100644 index 0000000..d1544e9 --- /dev/null +++ b/apps/client/middleware/01.slash.global.ts @@ -0,0 +1,7 @@ +export default defineNuxtRouteMiddleware(async (to, from) => { + if (to.path === '/') + return navigateTo('/projects') + + if (to.path !== '/' && to.path.endsWith('/')) + return navigateTo(to.path.slice(0, -1)) +}) diff --git a/apps/client/middleware/02.load-user.global.ts b/apps/client/middleware/02.load-user.global.ts new file mode 100644 index 0000000..f437e40 --- /dev/null +++ b/apps/client/middleware/02.load-user.global.ts @@ -0,0 +1,17 @@ +import type { User } from '~/composables/use-auth' + +export default defineNuxtRouteMiddleware(async (to, from) => { + const session = useCookie('session') + const { authenticated, user } = useAuth() + + if (session.value && !authenticated.value) { + try { + user.value = await $api('/users/current', { + method: 'get', + }) + } + catch (e) { + console.log(e) + } + } +}) diff --git a/apps/client/middleware/auth.ts b/apps/client/middleware/auth.ts new file mode 100644 index 0000000..112530e --- /dev/null +++ b/apps/client/middleware/auth.ts @@ -0,0 +1,6 @@ +export default defineNuxtRouteMiddleware(async (to, from) => { + const { authenticated } = useAuth() + + if (!authenticated.value) + return navigateTo('/login') +}) diff --git a/apps/client/middleware/guest-only.ts b/apps/client/middleware/guest-only.ts new file mode 100644 index 0000000..c292a19 --- /dev/null +++ b/apps/client/middleware/guest-only.ts @@ -0,0 +1,6 @@ +export default defineNuxtRouteMiddleware(() => { + const { authenticated } = useAuth() + + if (authenticated.value) + return navigateTo('/projects') +}) diff --git a/apps/client/nuxt.config.ts b/apps/client/nuxt.config.ts new file mode 100644 index 0000000..885aea2 --- /dev/null +++ b/apps/client/nuxt.config.ts @@ -0,0 +1,48 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + extends: ['../../layers/shared', '../../layers/ui'], + modules: [ + '@pinia/nuxt', + [ + '@nuxtjs/i18n', + { + vueI18n: './i18n.config.ts', + lazy: true, + langDir: 'lang', + compilation: { + strictMessage: false, + }, + locales: [ + // { + // code: 'ru', + // name: 'Русский', + // file: 'ru.js', + // }, + { + code: 'en', + name: 'English', + file: 'en.js', + }, + ], + defaultLocale: 'en', + strategy: 'no_prefix', + detectBrowserLanguage: false, + }, + ], + ], + css: ['~/assets/styles.scss', 'vue-final-modal/style.css'], + runtimeConfig: { + public: { + host: process.env.NODE_ENV === 'development' + ? 'http://localhost:3000' + : 'https://app.prgms.io', + payHost: process.env.NODE_ENV === 'development' + ? 'http://localhost:3001' + : 'https://pay.prgms.io', + apiHost: + process.env.NODE_ENV === 'development' + ? '/api' + : 'https://api.prgms.io/api/v1', + }, + }, +}) diff --git a/apps/client/package.json b/apps/client/package.json new file mode 100644 index 0000000..dbe8fbc --- /dev/null +++ b/apps/client/package.json @@ -0,0 +1,35 @@ +{ + "name": "client", + "type": "module", + "version": "0.0.1", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "dependencies": { + "@pinia/nuxt": "^0.4.11", + "@vueuse/core": "^10.7.0", + "dayjs": "^1.11.10", + "decimal.js": "^10.4.3", + "defu": "^6.1.2", + "ufo": "^1.3.2", + "ui-layer": "*", + "shared-layer": "*", + "uuid": "^9.0.1", + "vue-final-modal": "^4.4.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.1.2", + "@nuxt/devtools": "latest", + "@nuxtjs/i18n": "^8.0.0-rc.5", + "eslint": "^8.54.0", + "nuxt": "latest", + "sass": "^1.69.0", + "unplugin-vue-components": "^0.25.2", + "vue": "latest", + "vue-router": "^4.2.5" + } +} diff --git a/apps/client/pages/2fa/index.vue b/apps/client/pages/2fa/index.vue new file mode 100644 index 0000000..1b4434c --- /dev/null +++ b/apps/client/pages/2fa/index.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/apps/client/pages/2fa/setup.vue b/apps/client/pages/2fa/setup.vue new file mode 100644 index 0000000..fb45e7a --- /dev/null +++ b/apps/client/pages/2fa/setup.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/apps/client/pages/_.vue b/apps/client/pages/_.vue new file mode 100644 index 0000000..c445424 --- /dev/null +++ b/apps/client/pages/_.vue @@ -0,0 +1,833 @@ + + + + + diff --git a/apps/client/pages/create/invoice/[projectId].vue b/apps/client/pages/create/invoice/[projectId].vue new file mode 100644 index 0000000..d7f5738 --- /dev/null +++ b/apps/client/pages/create/invoice/[projectId].vue @@ -0,0 +1,146 @@ + + + + + diff --git a/apps/client/pages/create/withdraw/[projectId]/[assetCode].vue b/apps/client/pages/create/withdraw/[projectId]/[assetCode].vue new file mode 100644 index 0000000..8e9102e --- /dev/null +++ b/apps/client/pages/create/withdraw/[projectId]/[assetCode].vue @@ -0,0 +1,451 @@ + + + + + diff --git a/apps/client/pages/login/index.vue b/apps/client/pages/login/index.vue new file mode 100644 index 0000000..1ce6948 --- /dev/null +++ b/apps/client/pages/login/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/apps/client/pages/projects/[projectId].vue b/apps/client/pages/projects/[projectId].vue new file mode 100644 index 0000000..a43d307 --- /dev/null +++ b/apps/client/pages/projects/[projectId].vue @@ -0,0 +1,97 @@ + + + + + diff --git a/apps/client/pages/projects/[projectId]/index.vue b/apps/client/pages/projects/[projectId]/index.vue new file mode 100644 index 0000000..c27fcd3 --- /dev/null +++ b/apps/client/pages/projects/[projectId]/index.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/apps/client/pages/projects/[projectId]/invoices.vue b/apps/client/pages/projects/[projectId]/invoices.vue new file mode 100644 index 0000000..3a5e6a6 --- /dev/null +++ b/apps/client/pages/projects/[projectId]/invoices.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/apps/client/pages/projects/[projectId]/transactions.vue b/apps/client/pages/projects/[projectId]/transactions.vue new file mode 100644 index 0000000..948579e --- /dev/null +++ b/apps/client/pages/projects/[projectId]/transactions.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/apps/client/pages/projects/create.vue b/apps/client/pages/projects/create.vue new file mode 100644 index 0000000..85d0182 --- /dev/null +++ b/apps/client/pages/projects/create.vue @@ -0,0 +1,78 @@ + + + diff --git a/apps/client/pages/projects/index.vue b/apps/client/pages/projects/index.vue new file mode 100644 index 0000000..0933e50 --- /dev/null +++ b/apps/client/pages/projects/index.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/apps/client/pages/register/email-confirmation.vue b/apps/client/pages/register/email-confirmation.vue new file mode 100644 index 0000000..3996d07 --- /dev/null +++ b/apps/client/pages/register/email-confirmation.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/client/pages/register/index.vue b/apps/client/pages/register/index.vue new file mode 100644 index 0000000..07191ba --- /dev/null +++ b/apps/client/pages/register/index.vue @@ -0,0 +1,92 @@ + + + diff --git a/apps/client/pages/report/[projectId].vue b/apps/client/pages/report/[projectId].vue new file mode 100644 index 0000000..dba612a --- /dev/null +++ b/apps/client/pages/report/[projectId].vue @@ -0,0 +1,178 @@ + + + + + diff --git a/apps/client/pages/reset-password/email-confirmation.vue b/apps/client/pages/reset-password/email-confirmation.vue new file mode 100644 index 0000000..bab78e5 --- /dev/null +++ b/apps/client/pages/reset-password/email-confirmation.vue @@ -0,0 +1,23 @@ + + + diff --git a/apps/client/pages/reset-password/index.vue b/apps/client/pages/reset-password/index.vue new file mode 100644 index 0000000..ef27207 --- /dev/null +++ b/apps/client/pages/reset-password/index.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/apps/client/pages/reset-password/new-authorized.vue b/apps/client/pages/reset-password/new-authorized.vue new file mode 100644 index 0000000..4a9b2a8 --- /dev/null +++ b/apps/client/pages/reset-password/new-authorized.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/apps/client/pages/reset-password/new.vue b/apps/client/pages/reset-password/new.vue new file mode 100644 index 0000000..53f8240 --- /dev/null +++ b/apps/client/pages/reset-password/new.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/apps/client/pages/settings.vue b/apps/client/pages/settings.vue new file mode 100644 index 0000000..be9cf83 --- /dev/null +++ b/apps/client/pages/settings.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/apps/client/pages/settings/index.vue b/apps/client/pages/settings/index.vue new file mode 100644 index 0000000..74b08d0 --- /dev/null +++ b/apps/client/pages/settings/index.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/apps/client/pages/settings/limits.vue b/apps/client/pages/settings/limits.vue new file mode 100644 index 0000000..eeecab3 --- /dev/null +++ b/apps/client/pages/settings/limits.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/apps/client/pages/settings/notifications.vue b/apps/client/pages/settings/notifications.vue new file mode 100644 index 0000000..72a2889 --- /dev/null +++ b/apps/client/pages/settings/notifications.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/apps/client/pages/settings/safety.vue b/apps/client/pages/settings/safety.vue new file mode 100644 index 0000000..7512f6a --- /dev/null +++ b/apps/client/pages/settings/safety.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/apps/client/pages/verification/index.vue b/apps/client/pages/verification/index.vue new file mode 100644 index 0000000..5c2ff1c --- /dev/null +++ b/apps/client/pages/verification/index.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/apps/client/pages/verification/processing.vue b/apps/client/pages/verification/processing.vue new file mode 100644 index 0000000..9e3458f --- /dev/null +++ b/apps/client/pages/verification/processing.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/apps/client/pages/verification/status.vue b/apps/client/pages/verification/status.vue new file mode 100644 index 0000000..e5c1d42 --- /dev/null +++ b/apps/client/pages/verification/status.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/apps/client/plugins/errors.ts b/apps/client/plugins/errors.ts new file mode 100644 index 0000000..dda6867 --- /dev/null +++ b/apps/client/plugins/errors.ts @@ -0,0 +1,5 @@ +export default defineNuxtPlugin((nuxtApp) => { + nuxtApp.hook('page:start', () => { + clearStaticError() + }) +}) diff --git a/apps/client/plugins/validation-rules.js b/apps/client/plugins/validation-rules.js new file mode 100644 index 0000000..daebb63 --- /dev/null +++ b/apps/client/plugins/validation-rules.js @@ -0,0 +1,24 @@ +import { defineRule } from 'vee-validate' +import { defineNuxtPlugin } from '#app' + +export default defineNuxtPlugin((nuxtApp) => { + const { t } = nuxtApp.$i18n + + defineRule('password', (value) => { + if (value.length < 8) + return t('validation.password') + + const uppercaseRegex = /[A-Z]/ + const digitRegex = /\d/ + const specialCharRegex = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/ + + if ( + !uppercaseRegex.test(value) + || !digitRegex.test(value) + || !specialCharRegex.test(value) + ) + return t('validation.password') + + return true + }) +}) diff --git a/apps/client/plugins/vue-final-modal.ts b/apps/client/plugins/vue-final-modal.ts new file mode 100644 index 0000000..bee92c7 --- /dev/null +++ b/apps/client/plugins/vue-final-modal.ts @@ -0,0 +1,7 @@ +import { createVfm } from 'vue-final-modal' + +export default defineNuxtPlugin((nuxtApp) => { + const vfm = createVfm() as any + + nuxtApp.vueApp.use(vfm) +}) diff --git a/apps/client/public/GetOnAppStore.svg b/apps/client/public/GetOnAppStore.svg new file mode 100644 index 0000000..4311cf6 --- /dev/null +++ b/apps/client/public/GetOnAppStore.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/client/public/GetOnGooglePlay.svg b/apps/client/public/GetOnGooglePlay.svg new file mode 100644 index 0000000..65ba988 --- /dev/null +++ b/apps/client/public/GetOnGooglePlay.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/client/public/block.jpg b/apps/client/public/block.jpg new file mode 100644 index 0000000..b2e5e59 Binary files /dev/null and b/apps/client/public/block.jpg differ diff --git a/apps/client/public/block2.jpg b/apps/client/public/block2.jpg new file mode 100644 index 0000000..d789b50 Binary files /dev/null and b/apps/client/public/block2.jpg differ diff --git a/apps/client/public/email-confirmation.svg b/apps/client/public/email-confirmation.svg new file mode 100644 index 0000000..67dfbde --- /dev/null +++ b/apps/client/public/email-confirmation.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/client/public/flag.svg b/apps/client/public/flag.svg new file mode 100644 index 0000000..00a897b --- /dev/null +++ b/apps/client/public/flag.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/client/public/no-data.svg b/apps/client/public/no-data.svg new file mode 100644 index 0000000..dd7802c --- /dev/null +++ b/apps/client/public/no-data.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/client/public/robots.txt b/apps/client/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/apps/client/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/apps/client/server/api/[...path].ts b/apps/client/server/api/[...path].ts new file mode 100644 index 0000000..4c7e4c1 --- /dev/null +++ b/apps/client/server/api/[...path].ts @@ -0,0 +1,21 @@ +export default defineEventHandler((event) => { + if (process.env.NODE_ENV !== 'development') + return + + const url = getRequestURL(event) + const path = event.path.replace('/api/', '') + + return proxyRequest(event, `https://api.prgms.io/api/v1/${path}`, { + cookieDomainRewrite: { + 'prgms.io': url.hostname, + }, + onResponse: (event, response) => { + const cookies = event.node.res.getHeader('set-cookie') + + if (!cookies) + return + + event.node.res.setHeader('set-cookie', cookies.map(cookie => cookie.replace(' Secure;', ''))) + }, + }) +}) diff --git a/apps/client/server/routes/verify-email.ts b/apps/client/server/routes/verify-email.ts new file mode 100644 index 0000000..91fb41f --- /dev/null +++ b/apps/client/server/routes/verify-email.ts @@ -0,0 +1,19 @@ +export default defineEventHandler(async (event) => { + const runtimeConfig = useRuntimeConfig() + const { verification_code } = getQuery(event) + + try { + await $fetch(`${runtimeConfig.public.apiHost}/users/verification`, { + method: 'post', + body: { verificationCode: verification_code }, + }) + + setCookie(event, 'verified', 'true') + } + catch { + setCookie(event, 'verified', 'false') + } + finally { + await sendRedirect(event, '/login') + } +}) diff --git a/apps/client/server/tsconfig.json b/apps/client/server/tsconfig.json new file mode 100644 index 0000000..b9ed69c --- /dev/null +++ b/apps/client/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/apps/client/tsconfig.json b/apps/client/tsconfig.json new file mode 100644 index 0000000..65203b6 --- /dev/null +++ b/apps/client/tsconfig.json @@ -0,0 +1,5 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json", + "module": "esnext" +} diff --git a/apps/pay/.gitignore b/apps/pay/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/apps/pay/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/apps/pay/.npmrc b/apps/pay/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/apps/pay/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/apps/pay/app.vue b/apps/pay/app.vue new file mode 100644 index 0000000..141229b --- /dev/null +++ b/apps/pay/app.vue @@ -0,0 +1,12 @@ + + + diff --git a/apps/pay/app/router.options.ts b/apps/pay/app/router.options.ts new file mode 100644 index 0000000..d358397 --- /dev/null +++ b/apps/pay/app/router.options.ts @@ -0,0 +1,11 @@ +import type { RouterConfig } from '@nuxt/schema' + +export default { + routes: _routes => [ + { + name: 'index', + path: '/:invoiceId', + component: () => import('~/pages/index.vue').then(r => r.default || r), + }, + ], +} diff --git a/apps/pay/assets/styles.scss b/apps/pay/assets/styles.scss new file mode 100644 index 0000000..8262e73 --- /dev/null +++ b/apps/pay/assets/styles.scss @@ -0,0 +1,7 @@ +body, html { + height: 100%; +} + +#__nuxt { + height: 100%; +} \ No newline at end of file diff --git a/apps/pay/components/invoice-form/amount.vue b/apps/pay/components/invoice-form/amount.vue new file mode 100644 index 0000000..af1355f --- /dev/null +++ b/apps/pay/components/invoice-form/amount.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/apps/pay/components/invoice-form/details.vue b/apps/pay/components/invoice-form/details.vue new file mode 100644 index 0000000..e27f78e --- /dev/null +++ b/apps/pay/components/invoice-form/details.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/apps/pay/components/invoice-form/instructions.vue b/apps/pay/components/invoice-form/instructions.vue new file mode 100644 index 0000000..41f4965 --- /dev/null +++ b/apps/pay/components/invoice-form/instructions.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/apps/pay/components/invoice-form/separator.vue b/apps/pay/components/invoice-form/separator.vue new file mode 100644 index 0000000..909e92c --- /dev/null +++ b/apps/pay/components/invoice-form/separator.vue @@ -0,0 +1,35 @@ + + + diff --git a/apps/pay/components/invoice-form/step/expired.vue b/apps/pay/components/invoice-form/step/expired.vue new file mode 100644 index 0000000..7eecb68 --- /dev/null +++ b/apps/pay/components/invoice-form/step/expired.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/overpaid.vue b/apps/pay/components/invoice-form/step/overpaid.vue new file mode 100644 index 0000000..904353d --- /dev/null +++ b/apps/pay/components/invoice-form/step/overpaid.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/pending.vue b/apps/pay/components/invoice-form/step/pending.vue new file mode 100644 index 0000000..a6df3cb --- /dev/null +++ b/apps/pay/components/invoice-form/step/pending.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/requisites.vue b/apps/pay/components/invoice-form/step/requisites.vue new file mode 100644 index 0000000..126e743 --- /dev/null +++ b/apps/pay/components/invoice-form/step/requisites.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/success.vue b/apps/pay/components/invoice-form/step/success.vue new file mode 100644 index 0000000..f2f6939 --- /dev/null +++ b/apps/pay/components/invoice-form/step/success.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/underpaid.vue b/apps/pay/components/invoice-form/step/underpaid.vue new file mode 100644 index 0000000..3bf9f60 --- /dev/null +++ b/apps/pay/components/invoice-form/step/underpaid.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/apps/pay/components/invoice-form/step/waiting-requisites.vue b/apps/pay/components/invoice-form/step/waiting-requisites.vue new file mode 100644 index 0000000..74a84e2 --- /dev/null +++ b/apps/pay/components/invoice-form/step/waiting-requisites.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/apps/pay/components/invoice-form/timer.vue b/apps/pay/components/invoice-form/timer.vue new file mode 100644 index 0000000..39987e2 --- /dev/null +++ b/apps/pay/components/invoice-form/timer.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/apps/pay/composables/api.ts b/apps/pay/composables/api.ts new file mode 100644 index 0000000..4ba8d51 --- /dev/null +++ b/apps/pay/composables/api.ts @@ -0,0 +1,17 @@ +import type { NitroFetchRequest } from 'nitropack' + +export function $api< + T = unknown, + R extends NitroFetchRequest = NitroFetchRequest, +>( + request: Parameters>[0], + options?: Partial>[1]>, +) { + const runtimeConfig = useRuntimeConfig() + + return $fetch(request, { + ...options, + retry: false, + baseURL: runtimeConfig.public.apiHost as string, + }) +} diff --git a/apps/pay/eslint.config.js b/apps/pay/eslint.config.js new file mode 100644 index 0000000..fea5f37 --- /dev/null +++ b/apps/pay/eslint.config.js @@ -0,0 +1,11 @@ +import antfu from '@antfu/eslint-config' + +export default await antfu({ + overrides: { + vue: { + 'vue/block-order': ['error', { + order: ['template', 'script', 'style'], + }], + }, + }, +}) diff --git a/apps/pay/i18n.config.ts b/apps/pay/i18n.config.ts new file mode 100644 index 0000000..29ce7ea --- /dev/null +++ b/apps/pay/i18n.config.ts @@ -0,0 +1,5 @@ +export default defineI18nConfig(() => ({ + legacy: false, + locale: 'en', + globalInjection: true, +})) diff --git a/apps/pay/lang/en.js b/apps/pay/lang/en.js new file mode 100644 index 0000000..7a0b03b --- /dev/null +++ b/apps/pay/lang/en.js @@ -0,0 +1,5 @@ +export default { + privacy_policy: 'Privacy Policy', + copyright: '© {year}, Indefiti - the best crypto processing', + support: 'Support', +} diff --git a/apps/pay/lang/ru.js b/apps/pay/lang/ru.js new file mode 100644 index 0000000..b1c6ea4 --- /dev/null +++ b/apps/pay/lang/ru.js @@ -0,0 +1 @@ +export default {} diff --git a/apps/pay/layouts/default.vue b/apps/pay/layouts/default.vue new file mode 100644 index 0000000..ac06aaa --- /dev/null +++ b/apps/pay/layouts/default.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/apps/pay/nuxt.config.ts b/apps/pay/nuxt.config.ts new file mode 100644 index 0000000..1569cd4 --- /dev/null +++ b/apps/pay/nuxt.config.ts @@ -0,0 +1,45 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + extends: ['../../layers/shared', '../../layers/ui'], + modules: [ + '@pinia/nuxt', + [ + '@nuxtjs/i18n', + { + vueI18n: './i18n.config.ts', + lazy: true, + langDir: 'lang', + compilation: { + strictMessage: false, + }, + locales: [ + // { + // code: 'ru', + // name: 'Русский', + // file: 'ru.js', + // }, + { + code: 'en', + name: 'English', + file: 'en.js', + }, + ], + defaultLocale: 'en', + strategy: 'no_prefix', + detectBrowserLanguage: false, + }, + ], + ], + css: ['~/assets/styles.scss', 'vue-final-modal/style.css'], + runtimeConfig: { + public: { + host: process.env.NODE_ENV === 'development' + ? 'http://localhost:3001' + : 'https://pay.prgms.io', + apiHost: + process.env.NODE_ENV === 'development' + ? '/api' + : 'https://api.prgms.io/api/v1', + }, + }, +}) diff --git a/apps/pay/package.json b/apps/pay/package.json new file mode 100644 index 0000000..17f3dca --- /dev/null +++ b/apps/pay/package.json @@ -0,0 +1,35 @@ +{ + "name": "pay", + "type": "module", + "version": "0.0.1", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev --port 3001", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "dependencies": { + "@pinia/nuxt": "^0.4.11", + "@vueuse/core": "^10.7.0", + "dayjs": "^1.11.10", + "decimal.js": "^10.4.3", + "defu": "^6.1.2", + "ufo": "^1.3.2", + "ui-layer": "*", + "shared-layer": "*", + "uuid": "^9.0.1", + "vue-final-modal": "^4.4.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.1.2", + "@nuxt/devtools": "latest", + "@nuxtjs/i18n": "^8.0.0-rc.5", + "eslint": "^8.54.0", + "nuxt": "latest", + "sass": "^1.69.0", + "unplugin-vue-components": "^0.25.2", + "vue": "latest", + "vue-router": "^4.2.5" + } +} diff --git a/apps/pay/pages/index.vue b/apps/pay/pages/index.vue new file mode 100644 index 0000000..fd575aa --- /dev/null +++ b/apps/pay/pages/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/apps/pay/public/robots.txt b/apps/pay/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/apps/pay/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/apps/pay/server/api/[...path].ts b/apps/pay/server/api/[...path].ts new file mode 100644 index 0000000..4c7e4c1 --- /dev/null +++ b/apps/pay/server/api/[...path].ts @@ -0,0 +1,21 @@ +export default defineEventHandler((event) => { + if (process.env.NODE_ENV !== 'development') + return + + const url = getRequestURL(event) + const path = event.path.replace('/api/', '') + + return proxyRequest(event, `https://api.prgms.io/api/v1/${path}`, { + cookieDomainRewrite: { + 'prgms.io': url.hostname, + }, + onResponse: (event, response) => { + const cookies = event.node.res.getHeader('set-cookie') + + if (!cookies) + return + + event.node.res.setHeader('set-cookie', cookies.map(cookie => cookie.replace(' Secure;', ''))) + }, + }) +}) diff --git a/apps/pay/tsconfig.json b/apps/pay/tsconfig.json new file mode 100644 index 0000000..65203b6 --- /dev/null +++ b/apps/pay/tsconfig.json @@ -0,0 +1,5 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json", + "module": "esnext" +} diff --git a/layers/shared/.gitignore b/layers/shared/.gitignore new file mode 100644 index 0000000..2866c97 --- /dev/null +++ b/layers/shared/.gitignore @@ -0,0 +1,21 @@ +node_modules +*.log +.nuxt +nuxt.d.ts +.output +.data +.env +package-lock.json +framework +dist +.DS_Store + +# Yarn +.yarn/cache +.yarn/*state* + +# Local History +.history + +# VSCode +.vscode/ diff --git a/layers/shared/.npmrc b/layers/shared/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/layers/shared/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/layers/shared/.nuxtrc b/layers/shared/.nuxtrc new file mode 100644 index 0000000..9eb49a5 --- /dev/null +++ b/layers/shared/.nuxtrc @@ -0,0 +1 @@ +typescript.includeWorkspace = true diff --git a/layers/shared/components/lang-switcher.vue b/layers/shared/components/lang-switcher.vue new file mode 100644 index 0000000..1f5b0c7 --- /dev/null +++ b/layers/shared/components/lang-switcher.vue @@ -0,0 +1,31 @@ + + + diff --git a/layers/shared/components/money-amount.vue b/layers/shared/components/money-amount.vue new file mode 100644 index 0000000..67f3b6b --- /dev/null +++ b/layers/shared/components/money-amount.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/layers/shared/components/text-shortener.vue b/layers/shared/components/text-shortener.vue new file mode 100644 index 0000000..dddad02 --- /dev/null +++ b/layers/shared/components/text-shortener.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/layers/shared/eslint.config.js b/layers/shared/eslint.config.js new file mode 100644 index 0000000..fea5f37 --- /dev/null +++ b/layers/shared/eslint.config.js @@ -0,0 +1,11 @@ +import antfu from '@antfu/eslint-config' + +export default await antfu({ + overrides: { + vue: { + 'vue/block-order': ['error', { + order: ['template', 'script', 'style'], + }], + }, + }, +}) diff --git a/layers/shared/nuxt.config.ts b/layers/shared/nuxt.config.ts new file mode 100644 index 0000000..8cf7dca --- /dev/null +++ b/layers/shared/nuxt.config.ts @@ -0,0 +1,14 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true }, + app: { + layoutTransition: { name: 'fade', mode: 'out-in' }, + }, + vite: { + vue: { + template: { + transformAssetUrls: false, + }, + }, + }, +}) diff --git a/layers/shared/package.json b/layers/shared/package.json new file mode 100644 index 0000000..8d05700 --- /dev/null +++ b/layers/shared/package.json @@ -0,0 +1,31 @@ +{ + "name": "shared-layer", + "type": "module", + "version": "0.0.1", + "private": true, + "main": "./nuxt.config.ts", + "scripts": { + "dev": "nuxi dev .shared-layer", + "build": "nuxt build .shared-layer", + "generate": "nuxt generate .shared-layer", + "preview": "nuxt preview .shared-layer", + "prepare": "nuxt prepare .shared-layer", + "lint": "eslint .", + "postinstall": "nuxt prepare .shared-layer" + }, + "dependencies": { + "@nuxt/kit": "^3.7.4", + "@vueuse/core": "^10.5.0", + "@vueuse/integrations": "^10.5.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.1.2", + "@types/lodash-es": "^4.17.9", + "eslint": "^8.28.0", + "nuxt": "^3.6.2", + "typescript": "^4.9.3" + } +} diff --git a/layers/shared/public/QRCode.svg b/layers/shared/public/QRCode.svg new file mode 100644 index 0000000..16accf8 --- /dev/null +++ b/layers/shared/public/QRCode.svg @@ -0,0 +1,854 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/shared/public/expired.svg b/layers/shared/public/expired.svg new file mode 100644 index 0000000..26451aa --- /dev/null +++ b/layers/shared/public/expired.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/layers/shared/public/failed.svg b/layers/shared/public/failed.svg new file mode 100644 index 0000000..3101dd1 --- /dev/null +++ b/layers/shared/public/failed.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/shared/public/favicon.ico b/layers/shared/public/favicon.ico new file mode 100644 index 0000000..5f55a0e Binary files /dev/null and b/layers/shared/public/favicon.ico differ diff --git a/layers/shared/public/logo-with-text.svg b/layers/shared/public/logo-with-text.svg new file mode 100644 index 0000000..c73a16b --- /dev/null +++ b/layers/shared/public/logo-with-text.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/shared/public/logo.svg b/layers/shared/public/logo.svg new file mode 100644 index 0000000..9fdfcff --- /dev/null +++ b/layers/shared/public/logo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/shared/public/mock-qr.svg b/layers/shared/public/mock-qr.svg new file mode 100644 index 0000000..2e21286 --- /dev/null +++ b/layers/shared/public/mock-qr.svg @@ -0,0 +1,858 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/shared/public/partially.svg b/layers/shared/public/partially.svg new file mode 100644 index 0000000..1ccaf65 --- /dev/null +++ b/layers/shared/public/partially.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/layers/shared/public/pending.svg b/layers/shared/public/pending.svg new file mode 100644 index 0000000..3beae38 --- /dev/null +++ b/layers/shared/public/pending.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/layers/shared/public/success.svg b/layers/shared/public/success.svg new file mode 100644 index 0000000..a8b3f78 --- /dev/null +++ b/layers/shared/public/success.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/layers/shared/tsconfig.json b/layers/shared/tsconfig.json new file mode 100644 index 0000000..d83fff0 --- /dev/null +++ b/layers/shared/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./.shared-layer/.nuxt/tsconfig.json" +} diff --git a/layers/shared/utils/copy.ts b/layers/shared/utils/copy.ts new file mode 100644 index 0000000..194b01b --- /dev/null +++ b/layers/shared/utils/copy.ts @@ -0,0 +1,6 @@ +export async function $copy(value: string | number) { + try { + await navigator.clipboard.writeText(value.toString()) + } + catch {} +} diff --git a/layers/shared/utils/download-file.ts b/layers/shared/utils/download-file.ts new file mode 100644 index 0000000..782ec25 --- /dev/null +++ b/layers/shared/utils/download-file.ts @@ -0,0 +1,26 @@ +export default (filename: string, content: string | File | Blob) => { + let blob: File | Blob + + if (typeof content === 'string') { + blob = new File([content], filename, { + type: 'text/plain', + }) + } + else { + blob = content + } + + const url = window.URL.createObjectURL(blob) + const link = document.createElement('a') + link.href = url + link.setAttribute( + 'download', + filename, + ) + document.body.appendChild(link) + + link.click() + + window.URL.revokeObjectURL(url) + document.body.removeChild(link) +} diff --git a/layers/shared/utils/hide-email.ts b/layers/shared/utils/hide-email.ts new file mode 100644 index 0000000..28f1a17 --- /dev/null +++ b/layers/shared/utils/hide-email.ts @@ -0,0 +1,8 @@ +export default function hideEmail(email: string) { + const atIndex = email.indexOf('@') + const username = email.substring(0, atIndex) + const domain = email.substring(atIndex + 1) + const hiddenUsername = `${username.substring(0, 2)}**` + + return `${hiddenUsername}@${domain}` +} diff --git a/layers/shared/utils/money.ts b/layers/shared/utils/money.ts new file mode 100644 index 0000000..37f1ff7 --- /dev/null +++ b/layers/shared/utils/money.ts @@ -0,0 +1,89 @@ +import Decimal from 'decimal.js' + +const CURRENCY_SYMBOL: Record = { + RUB: '₽', + USD: '$', + EUR: '€', +} + +const DEFAULT_FORMAT: string = '{amount} {currency}' +const CURRENCY_FORMAT: Record = { + USD: '{currency}{amount}', + RUB: '{amount}{currency}', + EUR: '{currency}{amount}', +} + +const DEFAULT_EXPONENT: number = 2 +const CURRENCY_EXPONENT: Record = { + BTC: 6, + USDT: 2, +} + +function getSymbol(currency: string): string { + return CURRENCY_SYMBOL[currency] ?? currency +} + +function getFormat(currency: string): string { + return CURRENCY_FORMAT[currency] ?? DEFAULT_FORMAT +} + +function getExponent(currency: string): number { + return CURRENCY_EXPONENT[currency] ?? DEFAULT_EXPONENT +} + +function format(value: Decimal.Value, currency: string): string { + const exponent = getExponent(currency) + + try { + return new Decimal(value).toFixed(exponent) + } + catch { + return new Decimal(0).toFixed(exponent) + } +} + +function fullFormat(value: Decimal.Value, currency: string, showCurrency = true, approximately = false): string { + let result = '' + let decimalValue: Decimal.Instance + const exponent = getExponent(currency) + + try { + decimalValue = new Decimal(value) + } + catch { + decimalValue = new Decimal(0) + } + + value = decimalValue.toFixed(exponent) + + if (approximately && !decimalValue.isZero()) + result = '~' + + if (showCurrency) { + const symbol = getSymbol(currency) + const format = getFormat(currency) + + result += format.replace('{amount}', value).replace('{currency}', symbol) + } + else { + result += value + } + + return result +} + +function convert(amount: Decimal.Value, rate: Decimal.Value, isTurnRate = true) { + if (isTurnRate) + return Decimal.mul(amount, rate) + else + return Decimal.div(amount, rate) +} + +export const $money = { + getSymbol, + getFormat, + getExponent, + format, + fullFormat, + convert, +} diff --git a/layers/ui/.gitignore b/layers/ui/.gitignore new file mode 100644 index 0000000..2866c97 --- /dev/null +++ b/layers/ui/.gitignore @@ -0,0 +1,21 @@ +node_modules +*.log +.nuxt +nuxt.d.ts +.output +.data +.env +package-lock.json +framework +dist +.DS_Store + +# Yarn +.yarn/cache +.yarn/*state* + +# Local History +.history + +# VSCode +.vscode/ diff --git a/layers/ui/.npmrc b/layers/ui/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/layers/ui/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/layers/ui/.nuxtrc b/layers/ui/.nuxtrc new file mode 100644 index 0000000..9eb49a5 --- /dev/null +++ b/layers/ui/.nuxtrc @@ -0,0 +1 @@ +typescript.includeWorkspace = true diff --git a/layers/ui/.ui-layer/nuxt.config.ts b/layers/ui/.ui-layer/nuxt.config.ts new file mode 100644 index 0000000..c8908aa --- /dev/null +++ b/layers/ui/.ui-layer/nuxt.config.ts @@ -0,0 +1,3 @@ +export default defineNuxtConfig({ + extends: ['..'], +}) diff --git a/layers/ui/assets/icons/Instagram.svg b/layers/ui/assets/icons/Instagram.svg new file mode 100644 index 0000000..c7c7d34 --- /dev/null +++ b/layers/ui/assets/icons/Instagram.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/access-code.svg b/layers/ui/assets/icons/access-code.svg new file mode 100644 index 0000000..e8526f4 --- /dev/null +++ b/layers/ui/assets/icons/access-code.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/actions.svg b/layers/ui/assets/icons/actions.svg new file mode 100644 index 0000000..f26c1ca --- /dev/null +++ b/layers/ui/assets/icons/actions.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/anonymous.svg b/layers/ui/assets/icons/anonymous.svg new file mode 100644 index 0000000..c082cfb --- /dev/null +++ b/layers/ui/assets/icons/anonymous.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-down.svg b/layers/ui/assets/icons/arrow-down.svg new file mode 100644 index 0000000..fbc836d --- /dev/null +++ b/layers/ui/assets/icons/arrow-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-left.svg b/layers/ui/assets/icons/arrow-left.svg new file mode 100644 index 0000000..b46d4e8 --- /dev/null +++ b/layers/ui/assets/icons/arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-receive.svg b/layers/ui/assets/icons/arrow-receive.svg new file mode 100644 index 0000000..69e25f0 --- /dev/null +++ b/layers/ui/assets/icons/arrow-receive.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-right.svg b/layers/ui/assets/icons/arrow-right.svg new file mode 100644 index 0000000..2bb19bd --- /dev/null +++ b/layers/ui/assets/icons/arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-send.svg b/layers/ui/assets/icons/arrow-send.svg new file mode 100644 index 0000000..babe749 --- /dev/null +++ b/layers/ui/assets/icons/arrow-send.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/arrow-up.svg b/layers/ui/assets/icons/arrow-up.svg new file mode 100644 index 0000000..2413072 --- /dev/null +++ b/layers/ui/assets/icons/arrow-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/ask-for-discount-filled.svg b/layers/ui/assets/icons/ask-for-discount-filled.svg new file mode 100644 index 0000000..bcadb2f --- /dev/null +++ b/layers/ui/assets/icons/ask-for-discount-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/attach.svg b/layers/ui/assets/icons/attach.svg new file mode 100644 index 0000000..b646727 --- /dev/null +++ b/layers/ui/assets/icons/attach.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/bell.svg b/layers/ui/assets/icons/bell.svg new file mode 100644 index 0000000..906544d --- /dev/null +++ b/layers/ui/assets/icons/bell.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/bookmark.svg b/layers/ui/assets/icons/bookmark.svg new file mode 100644 index 0000000..32b3e2a --- /dev/null +++ b/layers/ui/assets/icons/bookmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/cancel-filled.svg b/layers/ui/assets/icons/cancel-filled.svg new file mode 100644 index 0000000..098f8af --- /dev/null +++ b/layers/ui/assets/icons/cancel-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/cancel.svg b/layers/ui/assets/icons/cancel.svg new file mode 100644 index 0000000..8e5d8f1 --- /dev/null +++ b/layers/ui/assets/icons/cancel.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/card-add.svg b/layers/ui/assets/icons/card-add.svg new file mode 100644 index 0000000..5c4dbd3 --- /dev/null +++ b/layers/ui/assets/icons/card-add.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/card-checked.svg b/layers/ui/assets/icons/card-checked.svg new file mode 100644 index 0000000..07a17da --- /dev/null +++ b/layers/ui/assets/icons/card-checked.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/card.svg b/layers/ui/assets/icons/card.svg new file mode 100644 index 0000000..4143770 --- /dev/null +++ b/layers/ui/assets/icons/card.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/check-seen.svg b/layers/ui/assets/icons/check-seen.svg new file mode 100644 index 0000000..07c8bd1 --- /dev/null +++ b/layers/ui/assets/icons/check-seen.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/check.svg b/layers/ui/assets/icons/check.svg new file mode 100644 index 0000000..1af2c10 --- /dev/null +++ b/layers/ui/assets/icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/chevron-down.svg b/layers/ui/assets/icons/chevron-down.svg new file mode 100644 index 0000000..9192cdc --- /dev/null +++ b/layers/ui/assets/icons/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/chevron-left.svg b/layers/ui/assets/icons/chevron-left.svg new file mode 100644 index 0000000..96bb7a2 --- /dev/null +++ b/layers/ui/assets/icons/chevron-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/chevron-right.svg b/layers/ui/assets/icons/chevron-right.svg new file mode 100644 index 0000000..e7dd0ea --- /dev/null +++ b/layers/ui/assets/icons/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/chevron-up.svg b/layers/ui/assets/icons/chevron-up.svg new file mode 100644 index 0000000..96f08a3 --- /dev/null +++ b/layers/ui/assets/icons/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/circle-eror.svg b/layers/ui/assets/icons/circle-eror.svg new file mode 100644 index 0000000..bc5b339 --- /dev/null +++ b/layers/ui/assets/icons/circle-eror.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/circle-plus.svg b/layers/ui/assets/icons/circle-plus.svg new file mode 100644 index 0000000..d15e98a --- /dev/null +++ b/layers/ui/assets/icons/circle-plus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/circle-question.svg b/layers/ui/assets/icons/circle-question.svg new file mode 100644 index 0000000..bf5b5b0 --- /dev/null +++ b/layers/ui/assets/icons/circle-question.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/circle-userpic.svg b/layers/ui/assets/icons/circle-userpic.svg new file mode 100644 index 0000000..1d556d3 --- /dev/null +++ b/layers/ui/assets/icons/circle-userpic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/clock.svg b/layers/ui/assets/icons/clock.svg new file mode 100644 index 0000000..5344e6a --- /dev/null +++ b/layers/ui/assets/icons/clock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/confirmed-filled.svg b/layers/ui/assets/icons/confirmed-filled.svg new file mode 100644 index 0000000..e39e6bd --- /dev/null +++ b/layers/ui/assets/icons/confirmed-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/confirmed.svg b/layers/ui/assets/icons/confirmed.svg new file mode 100644 index 0000000..2685210 --- /dev/null +++ b/layers/ui/assets/icons/confirmed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/copy.svg b/layers/ui/assets/icons/copy.svg new file mode 100644 index 0000000..121c069 --- /dev/null +++ b/layers/ui/assets/icons/copy.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/cross-compact.svg b/layers/ui/assets/icons/cross-compact.svg new file mode 100644 index 0000000..6bd54f7 --- /dev/null +++ b/layers/ui/assets/icons/cross-compact.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/cross.svg b/layers/ui/assets/icons/cross.svg new file mode 100644 index 0000000..04d8574 --- /dev/null +++ b/layers/ui/assets/icons/cross.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/csv.svg b/layers/ui/assets/icons/csv.svg new file mode 100644 index 0000000..a40a0ef --- /dev/null +++ b/layers/ui/assets/icons/csv.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/danger-filled.svg b/layers/ui/assets/icons/danger-filled.svg new file mode 100644 index 0000000..e8eebd1 --- /dev/null +++ b/layers/ui/assets/icons/danger-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/disclosure-back-left.svg b/layers/ui/assets/icons/disclosure-back-left.svg new file mode 100644 index 0000000..e5c30d3 --- /dev/null +++ b/layers/ui/assets/icons/disclosure-back-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/disclosure-back.svg b/layers/ui/assets/icons/disclosure-back.svg new file mode 100644 index 0000000..d2f8126 --- /dev/null +++ b/layers/ui/assets/icons/disclosure-back.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/disclosure-down.svg b/layers/ui/assets/icons/disclosure-down.svg new file mode 100644 index 0000000..2be6208 --- /dev/null +++ b/layers/ui/assets/icons/disclosure-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/disclosure-up.svg b/layers/ui/assets/icons/disclosure-up.svg new file mode 100644 index 0000000..bfe15f0 --- /dev/null +++ b/layers/ui/assets/icons/disclosure-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/doc.svg b/layers/ui/assets/icons/doc.svg new file mode 100644 index 0000000..c62646d --- /dev/null +++ b/layers/ui/assets/icons/doc.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/document-check.svg b/layers/ui/assets/icons/document-check.svg new file mode 100644 index 0000000..09b4f9e --- /dev/null +++ b/layers/ui/assets/icons/document-check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/download.svg b/layers/ui/assets/icons/download.svg new file mode 100644 index 0000000..197573d --- /dev/null +++ b/layers/ui/assets/icons/download.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/edit.svg b/layers/ui/assets/icons/edit.svg new file mode 100644 index 0000000..5b00dd3 --- /dev/null +++ b/layers/ui/assets/icons/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/exchange.svg b/layers/ui/assets/icons/exchange.svg new file mode 100644 index 0000000..10fedd1 --- /dev/null +++ b/layers/ui/assets/icons/exchange.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/exclamation-filled.svg b/layers/ui/assets/icons/exclamation-filled.svg new file mode 100644 index 0000000..9723cbf --- /dev/null +++ b/layers/ui/assets/icons/exclamation-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/exclamation.svg b/layers/ui/assets/icons/exclamation.svg new file mode 100644 index 0000000..44192ca --- /dev/null +++ b/layers/ui/assets/icons/exclamation.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/excursion.svg b/layers/ui/assets/icons/excursion.svg new file mode 100644 index 0000000..a370667 --- /dev/null +++ b/layers/ui/assets/icons/excursion.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/exit.svg b/layers/ui/assets/icons/exit.svg new file mode 100644 index 0000000..f93d369 --- /dev/null +++ b/layers/ui/assets/icons/exit.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/filter.svg b/layers/ui/assets/icons/filter.svg new file mode 100644 index 0000000..2a8ac8f --- /dev/null +++ b/layers/ui/assets/icons/filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/folder.svg b/layers/ui/assets/icons/folder.svg new file mode 100644 index 0000000..7b1ba33 --- /dev/null +++ b/layers/ui/assets/icons/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/info.svg b/layers/ui/assets/icons/info.svg new file mode 100644 index 0000000..c40efbc --- /dev/null +++ b/layers/ui/assets/icons/info.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/installment-plan.svg b/layers/ui/assets/icons/installment-plan.svg new file mode 100644 index 0000000..7c7a944 --- /dev/null +++ b/layers/ui/assets/icons/installment-plan.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/invite.svg b/layers/ui/assets/icons/invite.svg new file mode 100644 index 0000000..9538e64 --- /dev/null +++ b/layers/ui/assets/icons/invite.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/invited.svg b/layers/ui/assets/icons/invited.svg new file mode 100644 index 0000000..7ef5fad --- /dev/null +++ b/layers/ui/assets/icons/invited.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/kebab-android.svg b/layers/ui/assets/icons/kebab-android.svg new file mode 100644 index 0000000..c3a3a57 --- /dev/null +++ b/layers/ui/assets/icons/kebab-android.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/kebab-ios.svg b/layers/ui/assets/icons/kebab-ios.svg new file mode 100644 index 0000000..cfe16cc --- /dev/null +++ b/layers/ui/assets/icons/kebab-ios.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/key.svg b/layers/ui/assets/icons/key.svg new file mode 100644 index 0000000..fd3dd15 --- /dev/null +++ b/layers/ui/assets/icons/key.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/language.svg b/layers/ui/assets/icons/language.svg new file mode 100644 index 0000000..289fd6c --- /dev/null +++ b/layers/ui/assets/icons/language.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/layers.svg b/layers/ui/assets/icons/layers.svg new file mode 100644 index 0000000..015b929 --- /dev/null +++ b/layers/ui/assets/icons/layers.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/legal-entity.svg b/layers/ui/assets/icons/legal-entity.svg new file mode 100644 index 0000000..de9cff9 --- /dev/null +++ b/layers/ui/assets/icons/legal-entity.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/link.svg b/layers/ui/assets/icons/link.svg new file mode 100644 index 0000000..a6882fe --- /dev/null +++ b/layers/ui/assets/icons/link.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/lock-closed-compact.svg b/layers/ui/assets/icons/lock-closed-compact.svg new file mode 100644 index 0000000..742bafe --- /dev/null +++ b/layers/ui/assets/icons/lock-closed-compact.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/lock-closed.svg b/layers/ui/assets/icons/lock-closed.svg new file mode 100644 index 0000000..fe18d2a --- /dev/null +++ b/layers/ui/assets/icons/lock-closed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/lock-open.svg b/layers/ui/assets/icons/lock-open.svg new file mode 100644 index 0000000..c814494 --- /dev/null +++ b/layers/ui/assets/icons/lock-open.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/mail.svg b/layers/ui/assets/icons/mail.svg new file mode 100644 index 0000000..7bfe9c8 --- /dev/null +++ b/layers/ui/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/merchant.svg b/layers/ui/assets/icons/merchant.svg new file mode 100644 index 0000000..8d0fd38 --- /dev/null +++ b/layers/ui/assets/icons/merchant.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/message.svg b/layers/ui/assets/icons/message.svg new file mode 100644 index 0000000..5f77c0a --- /dev/null +++ b/layers/ui/assets/icons/message.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/messenger.svg b/layers/ui/assets/icons/messenger.svg new file mode 100644 index 0000000..ae0cc58 --- /dev/null +++ b/layers/ui/assets/icons/messenger.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/minus.svg b/layers/ui/assets/icons/minus.svg new file mode 100644 index 0000000..c2d2883 --- /dev/null +++ b/layers/ui/assets/icons/minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/non-visibility.svg b/layers/ui/assets/icons/non-visibility.svg new file mode 100644 index 0000000..d36db91 --- /dev/null +++ b/layers/ui/assets/icons/non-visibility.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/overview.svg b/layers/ui/assets/icons/overview.svg new file mode 100644 index 0000000..00713e6 --- /dev/null +++ b/layers/ui/assets/icons/overview.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/pdf.svg b/layers/ui/assets/icons/pdf.svg new file mode 100644 index 0000000..db64f8b --- /dev/null +++ b/layers/ui/assets/icons/pdf.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/plus.svg b/layers/ui/assets/icons/plus.svg new file mode 100644 index 0000000..dc7ab44 --- /dev/null +++ b/layers/ui/assets/icons/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/print.svg b/layers/ui/assets/icons/print.svg new file mode 100644 index 0000000..6131f72 --- /dev/null +++ b/layers/ui/assets/icons/print.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/protection.svg b/layers/ui/assets/icons/protection.svg new file mode 100644 index 0000000..4a38088 --- /dev/null +++ b/layers/ui/assets/icons/protection.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/receipt.svg b/layers/ui/assets/icons/receipt.svg new file mode 100644 index 0000000..2728216 --- /dev/null +++ b/layers/ui/assets/icons/receipt.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/reload.svg b/layers/ui/assets/icons/reload.svg new file mode 100644 index 0000000..19176b6 --- /dev/null +++ b/layers/ui/assets/icons/reload.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/rotate-left.svg b/layers/ui/assets/icons/rotate-left.svg new file mode 100644 index 0000000..979bf18 --- /dev/null +++ b/layers/ui/assets/icons/rotate-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/rotate.svg b/layers/ui/assets/icons/rotate.svg new file mode 100644 index 0000000..8306806 --- /dev/null +++ b/layers/ui/assets/icons/rotate.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/search-history.svg b/layers/ui/assets/icons/search-history.svg new file mode 100644 index 0000000..ab9cd26 --- /dev/null +++ b/layers/ui/assets/icons/search-history.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/search.svg b/layers/ui/assets/icons/search.svg new file mode 100644 index 0000000..8249485 --- /dev/null +++ b/layers/ui/assets/icons/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/settings.svg b/layers/ui/assets/icons/settings.svg new file mode 100644 index 0000000..a6ef0db --- /dev/null +++ b/layers/ui/assets/icons/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/signin.svg b/layers/ui/assets/icons/signin.svg new file mode 100644 index 0000000..02ea050 --- /dev/null +++ b/layers/ui/assets/icons/signin.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/social-card.svg b/layers/ui/assets/icons/social-card.svg new file mode 100644 index 0000000..2433240 --- /dev/null +++ b/layers/ui/assets/icons/social-card.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/star.svg b/layers/ui/assets/icons/star.svg new file mode 100644 index 0000000..06b2344 --- /dev/null +++ b/layers/ui/assets/icons/star.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/table.svg b/layers/ui/assets/icons/table.svg new file mode 100644 index 0000000..2646656 --- /dev/null +++ b/layers/ui/assets/icons/table.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/telegram.svg b/layers/ui/assets/icons/telegram.svg new file mode 100644 index 0000000..249dee1 --- /dev/null +++ b/layers/ui/assets/icons/telegram.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/timer-filled.svg b/layers/ui/assets/icons/timer-filled.svg new file mode 100644 index 0000000..a1966d3 --- /dev/null +++ b/layers/ui/assets/icons/timer-filled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/transfer-time.svg b/layers/ui/assets/icons/transfer-time.svg new file mode 100644 index 0000000..6d9533d --- /dev/null +++ b/layers/ui/assets/icons/transfer-time.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/trash-bin.svg b/layers/ui/assets/icons/trash-bin.svg new file mode 100644 index 0000000..eb54775 --- /dev/null +++ b/layers/ui/assets/icons/trash-bin.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/twitter.svg b/layers/ui/assets/icons/twitter.svg new file mode 100644 index 0000000..6eab8ea --- /dev/null +++ b/layers/ui/assets/icons/twitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/icons/upload.svg b/layers/ui/assets/icons/upload.svg new file mode 100644 index 0000000..70f8f46 --- /dev/null +++ b/layers/ui/assets/icons/upload.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/visibility.svg b/layers/ui/assets/icons/visibility.svg new file mode 100644 index 0000000..5951733 --- /dev/null +++ b/layers/ui/assets/icons/visibility.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/wallet.svg b/layers/ui/assets/icons/wallet.svg new file mode 100644 index 0000000..d325867 --- /dev/null +++ b/layers/ui/assets/icons/wallet.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/whatsapp.svg b/layers/ui/assets/icons/whatsapp.svg new file mode 100644 index 0000000..cb76e2a --- /dev/null +++ b/layers/ui/assets/icons/whatsapp.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/xls.svg b/layers/ui/assets/icons/xls.svg new file mode 100644 index 0000000..6eb68a5 --- /dev/null +++ b/layers/ui/assets/icons/xls.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/icons/youtube.svg b/layers/ui/assets/icons/youtube.svg new file mode 100644 index 0000000..b62d1dd --- /dev/null +++ b/layers/ui/assets/icons/youtube.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/anonymous.svg b/layers/ui/assets/small-icons/anonymous.svg new file mode 100644 index 0000000..40cb676 --- /dev/null +++ b/layers/ui/assets/small-icons/anonymous.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-down-compact.svg b/layers/ui/assets/small-icons/arrow-down-compact.svg new file mode 100644 index 0000000..05b86c4 --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-down-compact.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-down.svg b/layers/ui/assets/small-icons/arrow-down.svg new file mode 100644 index 0000000..d1c1c5c --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-left.svg b/layers/ui/assets/small-icons/arrow-left.svg new file mode 100644 index 0000000..7198964 --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-right.svg b/layers/ui/assets/small-icons/arrow-right.svg new file mode 100644 index 0000000..88a1878 --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-up-compact.svg b/layers/ui/assets/small-icons/arrow-up-compact.svg new file mode 100644 index 0000000..b7c5bf5 --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-up-compact.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/arrow-up.svg b/layers/ui/assets/small-icons/arrow-up.svg new file mode 100644 index 0000000..d0608ee --- /dev/null +++ b/layers/ui/assets/small-icons/arrow-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/attach.svg b/layers/ui/assets/small-icons/attach.svg new file mode 100644 index 0000000..09c1f43 --- /dev/null +++ b/layers/ui/assets/small-icons/attach.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/bookmark.svg b/layers/ui/assets/small-icons/bookmark.svg new file mode 100644 index 0000000..3dcd3f5 --- /dev/null +++ b/layers/ui/assets/small-icons/bookmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/calendar.svg b/layers/ui/assets/small-icons/calendar.svg new file mode 100644 index 0000000..6d81916 --- /dev/null +++ b/layers/ui/assets/small-icons/calendar.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/cash-payment.svg b/layers/ui/assets/small-icons/cash-payment.svg new file mode 100644 index 0000000..19ef23a --- /dev/null +++ b/layers/ui/assets/small-icons/cash-payment.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/check-seen.svg b/layers/ui/assets/small-icons/check-seen.svg new file mode 100644 index 0000000..a9cac13 --- /dev/null +++ b/layers/ui/assets/small-icons/check-seen.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/check.svg b/layers/ui/assets/small-icons/check.svg new file mode 100644 index 0000000..b068ad6 --- /dev/null +++ b/layers/ui/assets/small-icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/chevron-down.svg b/layers/ui/assets/small-icons/chevron-down.svg new file mode 100644 index 0000000..c07c4dd --- /dev/null +++ b/layers/ui/assets/small-icons/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/chevron-left.svg b/layers/ui/assets/small-icons/chevron-left.svg new file mode 100644 index 0000000..c88a1df --- /dev/null +++ b/layers/ui/assets/small-icons/chevron-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/chevron-right.svg b/layers/ui/assets/small-icons/chevron-right.svg new file mode 100644 index 0000000..6ac1ba6 --- /dev/null +++ b/layers/ui/assets/small-icons/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/chevron-up.svg b/layers/ui/assets/small-icons/chevron-up.svg new file mode 100644 index 0000000..ca861fa --- /dev/null +++ b/layers/ui/assets/small-icons/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/circle-userpic.svg b/layers/ui/assets/small-icons/circle-userpic.svg new file mode 100644 index 0000000..9e2684b --- /dev/null +++ b/layers/ui/assets/small-icons/circle-userpic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/clock.svg b/layers/ui/assets/small-icons/clock.svg new file mode 100644 index 0000000..58d2a45 --- /dev/null +++ b/layers/ui/assets/small-icons/clock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/confirmed.svg b/layers/ui/assets/small-icons/confirmed.svg new file mode 100644 index 0000000..81a52c8 --- /dev/null +++ b/layers/ui/assets/small-icons/confirmed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/copy.svg b/layers/ui/assets/small-icons/copy.svg new file mode 100644 index 0000000..5be35f2 --- /dev/null +++ b/layers/ui/assets/small-icons/copy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/cross-compact.svg b/layers/ui/assets/small-icons/cross-compact.svg new file mode 100644 index 0000000..e98a7a8 --- /dev/null +++ b/layers/ui/assets/small-icons/cross-compact.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/cross.svg b/layers/ui/assets/small-icons/cross.svg new file mode 100644 index 0000000..989badb --- /dev/null +++ b/layers/ui/assets/small-icons/cross.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/disclosure-back.svg b/layers/ui/assets/small-icons/disclosure-back.svg new file mode 100644 index 0000000..864c270 --- /dev/null +++ b/layers/ui/assets/small-icons/disclosure-back.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/disclosure.svg b/layers/ui/assets/small-icons/disclosure.svg new file mode 100644 index 0000000..c5dd22c --- /dev/null +++ b/layers/ui/assets/small-icons/disclosure.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/down-left.svg b/layers/ui/assets/small-icons/down-left.svg new file mode 100644 index 0000000..3fa947f --- /dev/null +++ b/layers/ui/assets/small-icons/down-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/exchange.svg b/layers/ui/assets/small-icons/exchange.svg new file mode 100644 index 0000000..6867f40 --- /dev/null +++ b/layers/ui/assets/small-icons/exchange.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/exclamation.svg b/layers/ui/assets/small-icons/exclamation.svg new file mode 100644 index 0000000..90d795d --- /dev/null +++ b/layers/ui/assets/small-icons/exclamation.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/excursion.svg b/layers/ui/assets/small-icons/excursion.svg new file mode 100644 index 0000000..720e701 --- /dev/null +++ b/layers/ui/assets/small-icons/excursion.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/exit.svg b/layers/ui/assets/small-icons/exit.svg new file mode 100644 index 0000000..0d0fb0c --- /dev/null +++ b/layers/ui/assets/small-icons/exit.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/eye-closed.svg b/layers/ui/assets/small-icons/eye-closed.svg new file mode 100644 index 0000000..e0eaf5e --- /dev/null +++ b/layers/ui/assets/small-icons/eye-closed.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/eye-open.svg b/layers/ui/assets/small-icons/eye-open.svg new file mode 100644 index 0000000..52bfede --- /dev/null +++ b/layers/ui/assets/small-icons/eye-open.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/folder.svg b/layers/ui/assets/small-icons/folder.svg new file mode 100644 index 0000000..69344da --- /dev/null +++ b/layers/ui/assets/small-icons/folder.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/heart.svg b/layers/ui/assets/small-icons/heart.svg new file mode 100644 index 0000000..f8261e2 --- /dev/null +++ b/layers/ui/assets/small-icons/heart.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/info.svg b/layers/ui/assets/small-icons/info.svg new file mode 100644 index 0000000..136da11 --- /dev/null +++ b/layers/ui/assets/small-icons/info.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/invite.svg b/layers/ui/assets/small-icons/invite.svg new file mode 100644 index 0000000..d365d2a --- /dev/null +++ b/layers/ui/assets/small-icons/invite.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/kebab-android.svg b/layers/ui/assets/small-icons/kebab-android.svg new file mode 100644 index 0000000..3fe4be3 --- /dev/null +++ b/layers/ui/assets/small-icons/kebab-android.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/kebab-ios.svg b/layers/ui/assets/small-icons/kebab-ios.svg new file mode 100644 index 0000000..8879635 --- /dev/null +++ b/layers/ui/assets/small-icons/kebab-ios.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/link.svg b/layers/ui/assets/small-icons/link.svg new file mode 100644 index 0000000..21267c5 --- /dev/null +++ b/layers/ui/assets/small-icons/link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/lock-closed.svg b/layers/ui/assets/small-icons/lock-closed.svg new file mode 100644 index 0000000..884eca6 --- /dev/null +++ b/layers/ui/assets/small-icons/lock-closed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/lock-open.svg b/layers/ui/assets/small-icons/lock-open.svg new file mode 100644 index 0000000..7694e36 --- /dev/null +++ b/layers/ui/assets/small-icons/lock-open.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/assets/small-icons/minus.svg b/layers/ui/assets/small-icons/minus.svg new file mode 100644 index 0000000..1c3912e --- /dev/null +++ b/layers/ui/assets/small-icons/minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/overview.svg b/layers/ui/assets/small-icons/overview.svg new file mode 100644 index 0000000..8a2ec2d --- /dev/null +++ b/layers/ui/assets/small-icons/overview.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/plus.svg b/layers/ui/assets/small-icons/plus.svg new file mode 100644 index 0000000..88d448c --- /dev/null +++ b/layers/ui/assets/small-icons/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/protection.svg b/layers/ui/assets/small-icons/protection.svg new file mode 100644 index 0000000..6951066 --- /dev/null +++ b/layers/ui/assets/small-icons/protection.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/restore.svg b/layers/ui/assets/small-icons/restore.svg new file mode 100644 index 0000000..9373a27 --- /dev/null +++ b/layers/ui/assets/small-icons/restore.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/search.svg b/layers/ui/assets/small-icons/search.svg new file mode 100644 index 0000000..6a626c7 --- /dev/null +++ b/layers/ui/assets/small-icons/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/settings.svg b/layers/ui/assets/small-icons/settings.svg new file mode 100644 index 0000000..0868986 --- /dev/null +++ b/layers/ui/assets/small-icons/settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/share-android.svg b/layers/ui/assets/small-icons/share-android.svg new file mode 100644 index 0000000..9ea3f89 --- /dev/null +++ b/layers/ui/assets/small-icons/share-android.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/share-universal.svg b/layers/ui/assets/small-icons/share-universal.svg new file mode 100644 index 0000000..59a6a49 --- /dev/null +++ b/layers/ui/assets/small-icons/share-universal.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/social-card.svg b/layers/ui/assets/small-icons/social-card.svg new file mode 100644 index 0000000..a32f5a6 --- /dev/null +++ b/layers/ui/assets/small-icons/social-card.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/assets/small-icons/up-right.svg b/layers/ui/assets/small-icons/up-right.svg new file mode 100644 index 0000000..a4422b3 --- /dev/null +++ b/layers/ui/assets/small-icons/up-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/layers/ui/components/accordion/constants.ts b/layers/ui/components/accordion/constants.ts new file mode 100644 index 0000000..f250c25 --- /dev/null +++ b/layers/ui/components/accordion/constants.ts @@ -0,0 +1,5 @@ +import type { InjectionKey } from 'vue' +import type { AccordionContext } from './types' + +export const accordionContextKey: InjectionKey + = Symbol('UI_ACCORDION') diff --git a/layers/ui/components/accordion/index.vue b/layers/ui/components/accordion/index.vue new file mode 100644 index 0000000..d476b15 --- /dev/null +++ b/layers/ui/components/accordion/index.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/layers/ui/components/accordion/item.vue b/layers/ui/components/accordion/item.vue new file mode 100644 index 0000000..219cea4 --- /dev/null +++ b/layers/ui/components/accordion/item.vue @@ -0,0 +1,79 @@ + + + diff --git a/layers/ui/components/accordion/styles.scss b/layers/ui/components/accordion/styles.scss new file mode 100644 index 0000000..8ade471 --- /dev/null +++ b/layers/ui/components/accordion/styles.scss @@ -0,0 +1,96 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-accordion { + display: flex; + flex-direction: column; + gap: 16px; +} + +.ui-accordion-item { + $self: &; + + --border-color: var(--accordion-item-border-color); + --border-width: 1px; + + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); + border-radius: 12px; + background: $clr-white; + transition: .2s ease-out; + transition-property: outline-color, background-color, color; + -webkit-tap-highlight-color: transparent; + + &:hover { + --border-width: 2px; + } + + &.is-focused { + --border-width: 2px; + } + + &.is-active { + --border-width: 2px; + --border-color: #{$clr-grey-500}; + } + + &__head { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + text-align: left; + border: none; + padding: var(--accordion-head-padding, 24px); + background: transparent; + transition: padding .2s ease-in-out; + cursor: pointer; + outline: none; + user-select: none; + + #{$self}.is-active & { + padding: var(--accordion-head-active-padding, 24px 24px 4.5px); + } + + #{$self}.is-disabled & { + cursor: default; + } + } + + &__title { + color: $clr-grey-600; + } + + &__icon { + color: $clr-grey-600; + } + + &__wrapper { + will-change: height; + overflow: hidden; + } + + &__content { + @include txt-i; + + color: $clr-grey-600; + padding: var(--accordion-content-padding, 0 24px 24px); + } + + @include element-variant('accordion-item', '', ( + 'border-color': $clr-grey-300, + )) +} + +.ui-accordion-transition { + transition: .2s height ease-in-out, + .2s padding-top ease-in-out, + .2s padding-bottom ease-in-out; +} + +.ui-accordion-transition-leave-active, +.ui-accordion-transition-enter-active { + transition: .2s max-height ease-in-out, + .2s padding-top ease-in-out, + .2s padding-bottom ease-in-out; +} \ No newline at end of file diff --git a/layers/ui/components/accordion/transition.vue b/layers/ui/components/accordion/transition.vue new file mode 100644 index 0000000..fa8858f --- /dev/null +++ b/layers/ui/components/accordion/transition.vue @@ -0,0 +1,85 @@ + + + diff --git a/layers/ui/components/accordion/types.ts b/layers/ui/components/accordion/types.ts new file mode 100644 index 0000000..12d644a --- /dev/null +++ b/layers/ui/components/accordion/types.ts @@ -0,0 +1,14 @@ +import type { Ref } from 'vue' +import type { UiIcon } from '#build/types/ui/icons' + +export type AccordionActiveId = string | number +export type AccordionModelValue = AccordionActiveId | AccordionActiveId[] + +export interface AccordionContext { + activeItems: Ref + handleItemClick: (id: AccordionActiveId) => void + isActive: (id: AccordionActiveId) => boolean + inactiveIcon: Ref + activeIcon: Ref + disabled: Ref +} diff --git a/layers/ui/components/alert/index.vue b/layers/ui/components/alert/index.vue new file mode 100644 index 0000000..50a392c --- /dev/null +++ b/layers/ui/components/alert/index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/layers/ui/components/alert/styles.scss b/layers/ui/components/alert/styles.scss new file mode 100644 index 0000000..0f60b8c --- /dev/null +++ b/layers/ui/components/alert/styles.scss @@ -0,0 +1,83 @@ +@use '../../styles/mixins' as *; +@use '../../styles/variables' as *; + +.ui-alert { + $self: &; + + --icon-color: var(--alert-icon-color); + + display: flex; + align-items: center; + padding: 8px 16px; + border-radius: 12px; + background-color: var(--alert-background); + text-align: left; + + &__title { + @include txt-i-b('alert-title'); + + grid-area: title; + margin-bottom: var(--alert-title-margin, 4px); + margin-top: 2px; + } + + &__text { + @include txt-i-m('alert-text'); + + grid-area: text; + color: $clr-black; + + #{$self}.has-title & { + color: var(--alert-text-color, $clr-grey-500); + } + + #{$self}.has-action & { + margin-bottom: 4px; + } + } + + &__icon { + grid-area: icon; + align-self: center; + color: var(--icon-color); + padding: 8px; + + #{$self}.has-title &, + #{$self}.has-action & { + align-self: flex-start + } + } + + &__content{ + flex: 1; + } + + @include element-variant('alert', 'large', ( + 'padding': 16px, + )); + + @include element-variant('alert', 'neutral', ( + 'icon-color': $clr-grey-500, + 'background': $clr-grey-200, + )); + + @include element-variant('alert', 'positive', ( + 'icon-color': $clr-green-500, + 'background': $clr-green-100, + )); + + @include element-variant('alert', 'warning', ( + 'icon-color': $clr-warn-500, + 'background': $clr-warn-100, + )); + + @include element-variant('alert', 'negative', ( + 'icon-color': $clr-red-500, + 'background': $clr-red-100, + )); + + @include element-variant('alert', 'marketing', ( + 'icon-color': $clr-market-500, + 'background': $clr-market-100, + )); +} \ No newline at end of file diff --git a/layers/ui/components/alert/types.ts b/layers/ui/components/alert/types.ts new file mode 100644 index 0000000..bce7ddf --- /dev/null +++ b/layers/ui/components/alert/types.ts @@ -0,0 +1,16 @@ +export const ALERT_TYPES = [ + 'neutral', + 'positive', + 'warning', + 'negative', + 'marketing', +] as const + +export type AlertType = (typeof ALERT_TYPES)[number] + +export interface AlertProps { + type?: AlertType + title?: string + text?: string + size?: string +} diff --git a/layers/ui/components/badge/index.vue b/layers/ui/components/badge/index.vue new file mode 100644 index 0000000..1f0356a --- /dev/null +++ b/layers/ui/components/badge/index.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/layers/ui/components/badge/styles.scss b/layers/ui/components/badge/styles.scss new file mode 100644 index 0000000..427c0b8 --- /dev/null +++ b/layers/ui/components/badge/styles.scss @@ -0,0 +1,47 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; +@use 'sass:selector'; + +.ui-badge { + @include txt-s-m; + + display: inline-flex; + align-items: center; + + gap: 4px; + padding: 4.5px 8.73px; + border-radius: 8px; + color: var(--badge-color); + background-color: var(--badge-background); + white-space: nowrap; + + @include element-variant('badge', 'neutral', ( + 'color': $clr-cyan-500, + 'background': $clr-grey-300, + )); + + @include element-variant('badge', 'positive', ( + 'color': $clr-green-500, + 'background': $clr-green-100, + )); + + @include element-variant('badge', 'warning', ( + 'color': $clr-warn-500, + 'background': $clr-warn-200, + )); + + @include element-variant('badge', 'negative', ( + 'color': $clr-red-500, + 'background': $clr-red-100, + )); + + @include element-variant('badge', 'marketing', ( + 'color': $clr-white, + 'background': $clr-cyan-300, + )); + + @include element-variant('badge', 'extended', ( + 'color': $clr-cyan-500, + 'background': $clr-white, + )); +} \ No newline at end of file diff --git a/layers/ui/components/badge/types.ts b/layers/ui/components/badge/types.ts new file mode 100644 index 0000000..71f8a1c --- /dev/null +++ b/layers/ui/components/badge/types.ts @@ -0,0 +1,16 @@ +export const BADGE_TYPES = [ + 'neutral', + 'positive', + 'warning', + 'negative', + 'marketing', + 'extended', +] as const + +export type BadgeType = (typeof BADGE_TYPES)[number] + +export interface AlertProps { + type?: BadgeType + title?: string + text?: string +} diff --git a/layers/ui/components/button/index.vue b/layers/ui/components/button/index.vue new file mode 100644 index 0000000..b1d4ff2 --- /dev/null +++ b/layers/ui/components/button/index.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/layers/ui/components/button/styles.scss b/layers/ui/components/button/styles.scss new file mode 100644 index 0000000..bdf15c8 --- /dev/null +++ b/layers/ui/components/button/styles.scss @@ -0,0 +1,240 @@ +@use "sass:list"; +@use '../../styles/mixins' as *; +@use '../../styles/variables' as *; + +$button-types: 'filled', 'outlined', 'ghost', 'link'; +$button-colors: 'primary', 'secondary'; + +/* prettier-ignore */ +$button-variants: [ + [ + 'filled', + 'primary', + ( + 'color': $clr-white, + 'background': $clr-cyan-500, + 'hover-background': $clr-cyan-400, + 'active-background': $clr-cyan-600, + 'disabled-background': $clr-cyan-200, + 'disabled-color': $clr-cyan-300 + ) + ], + [ + 'filled', + 'secondary', + ( + 'color': $clr-cyan-500, + 'background': $clr-white, + 'hover-background': $clr-grey-200, + 'active-background': $clr-grey-300, + 'disabled-background': $clr-grey-100, + 'disabled-color': $clr-grey-400 + ) + ], + [ + 'outlined', + 'primary', + ( + 'color': $clr-cyan-500, + 'border-color': $clr-cyan-500, + 'hover-color': $clr-white, + 'hover-background': $clr-cyan-500, + 'active-color': $clr-white, + 'active-background': $clr-cyan-600, + 'disabled-border-color': $clr-cyan-300, + 'disabled-color': $clr-cyan-300 + ) + ], + [ + 'outlined', + 'secondary', + ( + 'color': $clr-grey-500, + 'icon-color': $clr-grey-400, + 'border-color': $clr-grey-300, + 'hover-color': $clr-grey-600, + 'hover-background': $clr-grey-200, + 'active-color': $clr-cyan-700, + 'active-background': $clr-grey-300, + 'disabled-border-color': $clr-grey-300, + 'disabled-color': $clr-grey-400 + ) + ], + [ + 'ghost', + 'primary', + ( + 'color': $clr-cyan-400, + 'hover-color': $clr-cyan-500, + 'hover-background': $clr-grey-200, + 'active-color': $clr-cyan-600, + 'active-background': $clr-grey-300, + 'disabled-color': $clr-cyan-300 + ) + ], + [ + 'ghost', + 'secondary', + ( + 'color': $clr-grey-500, + 'icon-color': $clr-grey-400, + 'hover-color': $clr-grey-600, + 'hover-background': $clr-grey-200, + 'active-color': $clr-cyan-700, + 'active-background': $clr-grey-300, + 'disabled-color': $clr-grey-400 + ) + ], + [ + 'link', + 'primary', + ( + 'color': $clr-cyan-500, + 'hover-color': $clr-cyan-400, + 'active-color': $clr-cyan-600, + 'disabled-color': $clr-cyan-300 + ) + ], + [ + 'link', + 'secondary', + ( + 'color': $clr-grey-500, + 'icon-color': $clr-grey-400, + 'hover-color': $clr-cyan-500, + 'active-color': $clr-cyan-600, + 'disabled-color': $clr-grey-400 + ) + ] +]; + +.ui-button { + $self: &; + + @include txt-i-m('button'); + + --spinner-size: 20px; + + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + position: relative; + cursor: pointer; + outline: none; + + padding: 7px 15px; + background: var(--button-background, transparent); + color: var(--button-color, inherit); + border-radius: var(--button-border-radius, 12px); + width: var(--button-width, unset); + height: var(--button-height, 40px); + border: 1px solid var(--button-border-color, transparent); + white-space: nowrap; + transition: 0.2s ease-out; + transition-property: background-color, border-color, color; + + &:visited { + color: var(--button-color, inherit); + } + + &:hover, + &:focus-visible, + &.is-hover { + --button-icon-color: var(--button-hover-color, var(--button-color)); + + background: var(--button-hover-background, var(--button-background)); + color: var(--button-hover-color, var(--button-color)); + border-color: var(--button-hover-border-color, transparent); + } + + &:active, + &.is-active { + --button-icon-color: var(--button-active-color, var(--button-color)); + + background: var(--button-active-background, var(--button-background)); + color: var(--button-active-color, var(--button-color)); + border-color: var(--button-active-border-color, transparent); + } + + &.is-disabled { + --button-icon-color: var(--button-icon-disabled-color, var(--button-color)); + + background: var(--button-disabled-background, transparent); + color: var(--button-disabled-color); + border-color: var(--button-disabled-border-color, transparent); + cursor: not-allowed; + } + + &__icon { + color: var(--button-icon-color, inherit); + line-height: 1; + transition: color .2s ease-out; + + #{$self}.is-one-icon-only:not(#{$self}--link) & { + color: inherit; + } + } + + &__loader { + cursor: wait; + + #{$self}--small & { + --spinner-size: 16px; + } + } + + &.is-one-icon-only { + padding: 0; + + width: var(--button-width, var(--button-height, 40px)); + } + + &--small { + @include txt-s-m; + + --button-height: 32px; + + padding: 7px 11px; + border-radius: 8px; + } + + &--large { + @include txt-m-m; + + --button-height: 48px; + + padding: 11px 23px; + } + + @each $variant in $button-variants { + $type: list.nth($variant, 1); + $color: list.nth($variant, 2); + $scheme: list.nth($variant, 3); + + &--#{$type}_#{$color} { + @each $property, $value in $scheme { + --button-#{$property}: var(--button-#{$type}-#{$color}-#{$property}); + } + } + + /* prettier-ignore */ + @include element-variant('button', $type + '-' + $color, $scheme); + } + + &--link { + &_primary, + &_secondary { + width: auto !important; + height: auto !important; + padding: 0 !important; + border: none !important; + background: none !important; + text-decoration: none; + } + } + + &--link#{$self}--small { + @include txt-r-m; + } +} diff --git a/layers/ui/components/calendar/index.vue b/layers/ui/components/calendar/index.vue new file mode 100644 index 0000000..fdea25f --- /dev/null +++ b/layers/ui/components/calendar/index.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/layers/ui/components/calendar/styles.scss b/layers/ui/components/calendar/styles.scss new file mode 100644 index 0000000..194e8f4 --- /dev/null +++ b/layers/ui/components/calendar/styles.scss @@ -0,0 +1,140 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-calendar { + display: inline-block; + width: fit-content; + background-color: var(--calendar-background); + color: var(--calendar-color); + padding: 16px 16px 24px 16px; + + &__header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 12px; + + i { + &:hover { + cursor: pointer; + } + } + } + + &__title { + @include txt-i-sb; + + text-transform: capitalize; + } + + &__week-days, + &__days { + display: grid; + grid-template-columns: repeat(7, 32px); + color: var(--calendar-day-color); + + div { + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + } + } + + &__week-days { + @include txt-s; + + grid-auto-rows: 24px; + text-transform: capitalize; + } + + &__days { + @include txt-i-m; + + grid-auto-rows: 32px; + } + + &__apply-button { + width: 100%; + margin-top: 16px; + } + + &__cell { + transition: 0.2s ease-out; + transition-property: background-color; + + &:not(&--period-start, &--period-end, &--period):hover { + background: var(--calendar-day-background-hover-color); + border-radius: 8px; + } + &--current-month { + color: var(--calendar-current-month-day-color); + } + + &--current-day { + color: var(--calendar-today-color); + } + + &--period { + background-color: var(--calendar-period-background); + } + + &--period-start, + &--period-end { + border-radius: 8px; + position: relative; + color: var(--calendar-period-start-end-color); + z-index: 2; + + &::before, + &::after { + content: ''; + position: absolute; + top: 0; + height: 100%; + z-index: -1; + } + + &::before { + width: 50%; + background-color: var(--calendar-period-background); + } + + &::after { + width: 100%; + background-color: var(--calendar-period-start-end-background); + border-radius: inherit; + left: 0; + } + } + &--period-start { + &::before { + right: 0; + } + } + + &--period-end { + &::before { + left: 0; + } + } + } + + /* prettier-ignore */ + @include element-variant( + 'calendar', + '', + ( + 'color': $clr-black, + 'background': $clr-white, + 'day-color': $clr-grey-500, + 'current-month-day-color': $clr-black, + 'today-color': $clr-cyan-500, + 'arrow-color': $clr-grey-600, + 'period-start-end-color': $clr-white, + 'period-start-end-background': $clr-cyan-500, + 'period-background': $clr-grey-100, + 'day-background-hover-color': $clr-grey-100 + ) + ); +} \ No newline at end of file diff --git a/layers/ui/components/checkbox/index.vue b/layers/ui/components/checkbox/index.vue new file mode 100644 index 0000000..5dfea66 --- /dev/null +++ b/layers/ui/components/checkbox/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/layers/ui/components/checkbox/styles.scss b/layers/ui/components/checkbox/styles.scss new file mode 100644 index 0000000..44fb918 --- /dev/null +++ b/layers/ui/components/checkbox/styles.scss @@ -0,0 +1,98 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-checkbox { + $self: &; + + --size: 16px; + + display: flex; + + &__wrapper { + display: inline-flex; + position: relative; + } + + &__input { + width: 0; + height: 0; + opacity: 0; + cursor: pointer; + z-index: -1; + margin: 0; + } + + &__checkmark { + --border-color: var(--checkbox-border-color); + --border-width: 1px; + + width: var(--size); + height: var(--size); + border-radius: 4px; + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); + color: transparent; + cursor: pointer; + transition: .2s ease-out; + transition-property: outline-color, background-color, color; + + #{$self}.has-label & { + margin-top: 1px; + } + + #{$self}__input:focus-visible + &, + #{$self}:not(.is-disabled):not(.is-checked) &:hover { + --border-width: 2px; + } + + #{$self}.is-checked & { + --border-width: 0px; + + color: var(--checkbox-checked-color); + background-color: var(--checkbox-checked-background); + } + + #{$self}.is-checked #{$self}__input:focus-visible + &, + #{$self}:not(.is-disabled).is-checked &:hover { + color: var(--checkbox-checked-hover-color); + } + + #{$self}.is-invalid & { + --border-color: var(--checkbox-invalid-border-color); + } + + #{$self}.is-disabled & { + --border-color: var(--checkbox-disabled-border-color); + + cursor: not-allowed; + } + + #{$self}.is-disabled.is-checked & { + color: var(--checkbox-disabled-checked-color); + } + } + + &__label { + @include txt-i-m; + + margin-left: 8px; + color: var(--checkbox-label-color); + + #{$self}.is-disabled & { + color: var(--checkbox-label-disabled-color); + cursor: not-allowed; + } + } + + @include element-variant('checkbox', '', ( + 'border-color': $clr-grey-400, + 'checked-color': $clr-grey-600, + 'checked-background': $clr-grey-300, + 'checked-hover-color': $clr-grey-500, + 'invalid-border-color': $clr-red-500, + 'disabled-border-color': $clr-grey-300, + 'disabled-checked-color': $clr-grey-400, + 'label-color': $clr-black, + 'label-disabled-color': $clr-grey-400 + )) +} \ No newline at end of file diff --git a/layers/ui/components/code-input/index.vue b/layers/ui/components/code-input/index.vue new file mode 100644 index 0000000..dc0700b --- /dev/null +++ b/layers/ui/components/code-input/index.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/layers/ui/components/coin/available-coins.json b/layers/ui/components/coin/available-coins.json new file mode 100644 index 0000000..868c891 --- /dev/null +++ b/layers/ui/components/coin/available-coins.json @@ -0,0 +1 @@ +["1inch", "aave", "abcoin", "abrub", "ach", "acrub", "ada", "advcusd", "alfauah", "algo", "ankr", "ant", "atom", "avax", "avbrub", "bat", "bch", "btc", "btcbep20", "btg", "btt", "busd", "cardrub", "cashrub", "dai", "dash", "dent", "doge", "dot", "eos", "etc", "eth", "euro", "exmrub", "fantom", "gala", "gbp", "gcmtrub", "ghst", "gno", "gpbrub", "grntxrub", "hcbrub", "icx", "imx", "iota", "kmd", "kukrub", "link", "lsk", "ltc", "mana", "mir", "mircrub", "mkr", "monobuah", "mtsbrub", "mwrub", "near", "neo", "omg", "ont", "opnbrub", "osdbuah", "p24uah", "pmbbuah", "pmusd", "polygon", "postbrub", "prrub", "psbrub", "qtum", "quick", "qwrub", "rep", "rfbrub", "rnkbrub", "rosbrub", "rshbrub", "russtrub", "rvn", "sberrub", "sberuah", "sbprub", "shib", "sol", "stellar", "tbrub", "tcsbrub", "ton", "tru", "trx", "tusd", "uni", "usbuah", "usd coin", "usd", "usdp", "usdtomni", "vet", "waves", "wbtc", "weth", "wirerub", "wmz", "xem", "xlm", "xmr", "xrp", "xtz", "xvg", "yamrub", "yfi", "zec", "zrx"] diff --git a/layers/ui/components/coin/index.vue b/layers/ui/components/coin/index.vue new file mode 100644 index 0000000..20edbbb --- /dev/null +++ b/layers/ui/components/coin/index.vue @@ -0,0 +1,117 @@ + + + + + + + diff --git a/layers/ui/components/coin/styles.scss b/layers/ui/components/coin/styles.scss new file mode 100644 index 0000000..b54ddd9 --- /dev/null +++ b/layers/ui/components/coin/styles.scss @@ -0,0 +1,23 @@ +.ui-coin { + --size: var(--coin-size, 32px); + + position: relative; + display: inline-block; + width: var(--size); + height: var(--size); + border-radius: var(--coin-border-radius, 6px); + outline: 1px solid var(--coin-border-color, rgba(255, 255, 255, 0.24)); + outline-offset: -1px; + + &.is-fallback { + overflow: hidden; + } + + &.is-empty { + visibility: hidden; + } + + &.is-circle { + border-radius: 50%; + } +} \ No newline at end of file diff --git a/layers/ui/components/copy-button/index.vue b/layers/ui/components/copy-button/index.vue new file mode 100644 index 0000000..51a981d --- /dev/null +++ b/layers/ui/components/copy-button/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/layers/ui/components/copy-button/styles.scss b/layers/ui/components/copy-button/styles.scss new file mode 100644 index 0000000..07b8315 --- /dev/null +++ b/layers/ui/components/copy-button/styles.scss @@ -0,0 +1,52 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-copy-button { + $self: &; + + @include txt-r-m; + + display: inline-block; + position: relative; + height: 16px; + text-align: left; + width: min-content; + user-select: none; + vertical-align: middle; + + &__default, + &__copied { + transition: .2s ease-in-out; + transition-property: transform, opacity; + transform-origin: center; + + #{$self}.is-active & { + transform: translateY(-16px); + } + } + + &__default { + opacity: 1; + + #{$self}.is-active & { + opacity: 0; + pointer-events: none; + } + } + + &__copied { + @include txt-r-m; + + display: inline-flex; + align-items: center; + gap: 8px; + white-space: nowrap; + color: $clr-cyan-500; + opacity: 0; + pointer-events: none; + + #{$self}.is-active & { + opacity: 1; + } + } +} \ No newline at end of file diff --git a/layers/ui/components/dropdown/constants.ts b/layers/ui/components/dropdown/constants.ts new file mode 100644 index 0000000..28e142d --- /dev/null +++ b/layers/ui/components/dropdown/constants.ts @@ -0,0 +1,5 @@ +import type { InjectionKey } from 'vue' +import type { DropdownContext } from './types' + +export const dropdownContextKey: InjectionKey + = Symbol('UI_DROPDOWN') diff --git a/layers/ui/components/dropdown/index.vue b/layers/ui/components/dropdown/index.vue new file mode 100644 index 0000000..b193dcf --- /dev/null +++ b/layers/ui/components/dropdown/index.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/layers/ui/components/dropdown/item.vue b/layers/ui/components/dropdown/item.vue new file mode 100644 index 0000000..07da4cb --- /dev/null +++ b/layers/ui/components/dropdown/item.vue @@ -0,0 +1,42 @@ + + + diff --git a/layers/ui/components/dropdown/separator.vue b/layers/ui/components/dropdown/separator.vue new file mode 100644 index 0000000..b2604e6 --- /dev/null +++ b/layers/ui/components/dropdown/separator.vue @@ -0,0 +1,7 @@ + + + diff --git a/layers/ui/components/dropdown/styles.scss b/layers/ui/components/dropdown/styles.scss new file mode 100644 index 0000000..03c87fa --- /dev/null +++ b/layers/ui/components/dropdown/styles.scss @@ -0,0 +1,79 @@ +@use '../../styles/mixins' as *; +@use '../../styles/variables' as *; +@use 'sass:color'; + +.ui-dropdown { + $self: &; + + position: relative; + display: inline-flex; + + &__overlay { + position: fixed; + z-index: 6999; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + pointer-events: none; + transition: background-color .2s ease-out; + + &.is-active { + background-color: color.change($clr-black, $alpha: 0.15); + } + } + + &__popper { + min-width: 170px; + z-index: 7000; + } + + &__dropdown { + //overflow: hidden; + border-radius: 12px; + background-color: $clr-white; + list-style: none; + padding: 0; + margin: 0; + + &::-webkit-scrollbar { + display: none; + } + } +} + +.ui-dropdown-item { + @include txt-m-m('dropdown-item'); + + display: flex; + align-items: center; + padding: var(--dropdown-item-padding, 12px 16px); + background-color: $clr-white; + transition: background-color .2s ease-out; + cursor: pointer; + user-select: none; + border-radius: 8px; + outline: none; + + &:hover, + &:focus { + background-color: $clr-grey-200; + } + + &:active, + &.is-active { + background-color: $clr-grey-300; + } + + &__icon { + margin-right: 8px; + } +} + +.ui-dropdown-separator { + height: 1px; + width: 100%; + background-color: $clr-grey-200; + margin-block: 12px; +} + diff --git a/layers/ui/components/dropdown/types.ts b/layers/ui/components/dropdown/types.ts new file mode 100644 index 0000000..b9bd5d7 --- /dev/null +++ b/layers/ui/components/dropdown/types.ts @@ -0,0 +1,3 @@ +export interface DropdownContext { + handleItemClick: () => void +} diff --git a/layers/ui/components/input/index.vue b/layers/ui/components/input/index.vue new file mode 100644 index 0000000..8083c20 --- /dev/null +++ b/layers/ui/components/input/index.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/layers/ui/components/input/styles.scss b/layers/ui/components/input/styles.scss new file mode 100644 index 0000000..605a148 --- /dev/null +++ b/layers/ui/components/input/styles.scss @@ -0,0 +1,139 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; +@use 'sass:selector'; + +.ui-input { + $self: &; + overflow: hidden; + + &__wrapper { + --border-color: var(--input-border-color); + --border-width: 1px; + + display: block; + overflow: hidden; + position: relative; + background: var(--input-background); + border-radius: 12px; + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); + padding-inline: 16px; + transition: outline-color .2s ease-out; + + #{$self}:not(.is-disabled) & { + cursor: text; + } + + #{$self}:not(.is-disabled):not(.is-readonly) &:hover { + --border-width: 2px; + } + + #{$self}:not(.is-readonly).is-focused & { + --border-width: 2px; + --border-color: var(--input-focused-border-color); + } + + #{$self}.is-readonly & { + cursor: default; + } + + #{$self}.is-invalid & { + --border-color: var(--input-invalid-border-color); + } + + #{$self}.is-disabled & { + --border-color: var(--input-disabled-border-color); + + background: var(--input-disabled-background); + } + } + + &__content { + position: relative; + display: flex; + align-items: center; + } + + &__control { + @include txt-i-m; + + padding: 22px 0 8px; + width: 100%; + outline: none; + vertical-align: middle; + background-color: transparent; + border: none; + caret-color: var(--input-caret-color); + color: var(--input-color); + + &::-ms-reveal, + &::-ms-clear { + display: none; + } + + &:-webkit-autofill { + -webkit-background-clip: text; + -webkit-text-fill-color: var(--input-color); + } + + #{$self}.is-readonly & { + pointer-events: none; + } + + #{$self}.is-disabled & { + color: var(--input-disabled-color); + } + } + + &__label { + @include txt-i-m; + + position: absolute; + pointer-events: none; + top: 15px; + left: 0; + color: var(--input-label-color); + transform-origin: 0 0; + transition-duration: .2s; + transition-property: transform, color; + transition-timing-function: linear, ease-out; + + #{$self}.is-focused &, + #{$self}.has-value & { + transform: translateY(-7px) scale(0.78); + color: var(--input-label-filled-color); + } + } + + &__bottom { + @include txt-s-m; + + margin-top: 4px; + padding-inline: 16px; + min-height: 14px; + } + + &__validation-message { + color: var(--input-validation-message-color); + } + + &__caption { + color: var(--input-caption-color); + } + + @include element-variant('input', '', ( + 'border-color': $clr-grey-300, + 'background': $clr-white, + 'caret-color': $clr-cyan-500, + 'color': $clr-black, + 'focused-border-color': $clr-cyan-500, + 'invalid-border-color': $clr-red-500, + 'disabled-border-color': $clr-grey-300, + 'disabled-background': $clr-grey-100, + 'disabled-color': $clr-grey-500, + 'label-color': $clr-grey-400, + 'label-filled-color': $clr-grey-500, + 'validation-message-color': $clr-red-500, + 'caption-color': $clr-grey-600 + )) +} diff --git a/layers/ui/components/notification/notification.vue b/layers/ui/components/notification/notification.vue new file mode 100644 index 0000000..3fd9225 --- /dev/null +++ b/layers/ui/components/notification/notification.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/layers/ui/components/notification/notify.ts b/layers/ui/components/notification/notify.ts new file mode 100644 index 0000000..f32454d --- /dev/null +++ b/layers/ui/components/notification/notify.ts @@ -0,0 +1,134 @@ +import { createVNode, render } from 'vue' +import { defu } from 'defu' +import NotificationConstructor from './notification.vue' +import type { + NotificationOptions, + NotificationPlacement, + NotificationQueue, +} from './types' + +const notifications: Record = { + 'top-left': [], + 'top-right': [], + 'bottom-left': [], + 'bottom-right': [], +} + +const GAP_SIZE = 16 +let SEED = 1 + +const DEFAULT_OPTIONS: NotificationOptions = { + text: '', + placement: 'top-right', + duration: 5000, + onClose: () => {}, +} + +const notify = function (options: NotificationOptions, context = null) { + // if (process.server) return { close: () => undefined }; + + options = defu(options, DEFAULT_OPTIONS) + + const orientedNotifications = notifications[options.placement!] + const id = options.id + ? `${options.placement!}_${options.id}` + : `notification_${SEED++}` + + const idx = orientedNotifications.findIndex( + ({ vm }) => vm.component?.props.id === id, + ) + if (idx > -1) + return + + let verticalOffset = options.offset || 103 + notifications[options.placement!].forEach(({ vm }) => { + verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE + }) + verticalOffset += GAP_SIZE + + const userOnClose = options.onClose + const props = { + ...options, + offset: verticalOffset, + id, + onClose: () => { + close(id, options.placement!, userOnClose) + }, + } + + const container = document.createElement('div') + + const vm = createVNode( + NotificationConstructor, + props, + options.text + ? { + default: () => options.text, + } + : null, + ) + vm.appContext = context ?? notify._context + vm.props!.onDestroy = () => { + render(null, container) + } + + render(vm, container) + notifications[options.placement!].push({ vm }) + document.body.appendChild(container.firstElementChild!) + + return { + close: () => { + vm.component!.exposed!.close() + }, + } +} + +export function close( + id: NotificationOptions['id'], + placement: NotificationOptions['placement'], + userOnClose: NotificationOptions['onClose'], +) { + const orientedNotifications = notifications[placement!] + const idx = orientedNotifications.findIndex( + ({ vm }) => vm.component?.props.id === id, + ) + if (idx === -1) + return + + const { vm } = orientedNotifications[idx] + + if (!vm) + return + + userOnClose?.(vm) + + const removedHeight = vm.el!.offsetHeight + const verticalPos = placement!.split('-')[0] + orientedNotifications.splice(idx, 1) + + if (orientedNotifications.length < 1) + return + + for (let i = idx; i < orientedNotifications.length; i++) { + const { el, component } = orientedNotifications[i].vm + const styles = getComputedStyle(el as Element) + const pos = Number.parseInt(styles.getPropertyValue(verticalPos), 10) + + component!.props.offset = pos - removedHeight - GAP_SIZE + } +} + +export function closeAll() { + for (const orientedNotifications of Object.values(notifications)) { + orientedNotifications.forEach(({ vm }) => { + vm.component!.exposed!.close() + }) + } +} + +notify.closeAll = closeAll +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-expect-error +notify._context = null + +export default notify diff --git a/layers/ui/components/notification/types.ts b/layers/ui/components/notification/types.ts new file mode 100644 index 0000000..f5e6eca --- /dev/null +++ b/layers/ui/components/notification/types.ts @@ -0,0 +1,27 @@ +import type { VNode } from 'vue' +import type { AlertType } from '../alert/types' + +export type NotificationType = AlertType + +export type NotificationPlacement = + | 'top-right' + | 'top-left' + | 'bottom-right' + | 'bottom-left' + +export interface NotificationOptions { + type?: NotificationType + text: string + title?: string + duration?: number + placement?: NotificationPlacement + id?: string | number + offset?: number + onClose?: (vm?: VNode) => void +} + +export interface NotificationItem { + vm: VNode +} + +export type NotificationQueue = NotificationItem[] diff --git a/layers/ui/components/plain-table/index.vue b/layers/ui/components/plain-table/index.vue new file mode 100644 index 0000000..7c403b5 --- /dev/null +++ b/layers/ui/components/plain-table/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/layers/ui/components/progress-bar/index.vue b/layers/ui/components/progress-bar/index.vue new file mode 100644 index 0000000..f53bd9b --- /dev/null +++ b/layers/ui/components/progress-bar/index.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/layers/ui/components/progress-bar/styles.scss b/layers/ui/components/progress-bar/styles.scss new file mode 100644 index 0000000..ced3f6e --- /dev/null +++ b/layers/ui/components/progress-bar/styles.scss @@ -0,0 +1,33 @@ +@use '../../styles/mixins' as *; +@use '../../styles/variables' as *; + +.ui-progress-bar { + background-color: var(--progress-bar-background-color); + border-radius: 2px; + height: 4px; + overflow: hidden; + + &__bar { + height: 100%; + background-color: var(--progress-bar-color); + transition: ease-out; + transition-property: width, background-color; + transition-duration: .1s, .2s; + } + + @include element-variant('progress-bar', 'normal', ( + 'background-color': $clr-grey-300, + 'color': $clr-cyan-500, + )); + + @include element-variant('progress-bar', 'middle', ( + 'background-color': $clr-warn-200, + 'color': $clr-warn-500, + )); + + @include element-variant('progress-bar', 'high', ( + 'background-color': $clr-red-100, + 'color': $clr-red-500, + )); + +} \ No newline at end of file diff --git a/layers/ui/components/qr-code/index.vue b/layers/ui/components/qr-code/index.vue new file mode 100644 index 0000000..e0e004e --- /dev/null +++ b/layers/ui/components/qr-code/index.vue @@ -0,0 +1,29 @@ + + + diff --git a/layers/ui/components/radio/index.vue b/layers/ui/components/radio/index.vue new file mode 100644 index 0000000..a224436 --- /dev/null +++ b/layers/ui/components/radio/index.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/layers/ui/components/radio/styles.scss b/layers/ui/components/radio/styles.scss new file mode 100644 index 0000000..ad06e59 --- /dev/null +++ b/layers/ui/components/radio/styles.scss @@ -0,0 +1,82 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-radio { + $self: &; + + --size: 20px; + + display: flex; + + &__wrapper { + display: inline-flex; + position: relative; + } + + &__input { + width: 0; + height: 0; + opacity: 0; + cursor: pointer; + z-index: -1; + margin: 0; + } + + &__inner { + --border-color: var(--radio-border-color); + --border-width: 1px; + + width: var(--size); + height: var(--size); + border-radius: 50%; + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); + font-size: 10px; + cursor: pointer; + background-clip: content-box; + padding: 5px; + transition: .2s ease-out; + transition-property: outline-color, background-color; + + #{$self}__input:focus-visible + &, + #{$self}:not(.is-disabled) &:hover { + --border-width: 2px; + } + + #{$self}.is-checked & { + background-color: var(--radio-checked-background); + } + + #{$self}.is-disabled & { + --border-color: var(--radio-disabled-border-color); + + cursor: not-allowed; + } + + #{$self}.is-disabled.is-checked & { + background-color: var(--radio-disabled-checked-background); + } + } + + &__label { + @include txt-i-m; + + margin-left: 8px; + margin-top: 1px; + color: var(--radio-label-color); + + #{$self}.is-disabled & { + color: var(--radio-label-disabled-color); + cursor: not-allowed; + } + } + + @include element-variant('radio', '', ( + 'border-color': $clr-grey-400, + 'checked-background': $clr-grey-400, + 'disabled-border-color': $clr-grey-300, + 'disabled-checked-background': $clr-grey-300, + 'label-color': $clr-black, + 'label-disabled-color': $clr-grey-400 + )) +} \ No newline at end of file diff --git a/layers/ui/components/renderless/index.vue b/layers/ui/components/renderless/index.vue new file mode 100644 index 0000000..ad9655c --- /dev/null +++ b/layers/ui/components/renderless/index.vue @@ -0,0 +1,69 @@ + diff --git a/layers/ui/components/search/index.vue b/layers/ui/components/search/index.vue new file mode 100644 index 0000000..7772f78 --- /dev/null +++ b/layers/ui/components/search/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/layers/ui/components/search/styles.scss b/layers/ui/components/search/styles.scss new file mode 100644 index 0000000..435fc0c --- /dev/null +++ b/layers/ui/components/search/styles.scss @@ -0,0 +1,125 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-search { + $self: &; + + &__wrapper { + --border-color: var(--search-border-color); + --border-width: 1px; + + display: flex; + align-items: center; + padding: 8px 16px; + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); + color: var(--search-color); + border-radius: 12px; + flex: 1; + + #{$self}--large & { + height: 48px; + } + + #{$self}--small & { + padding: 8px 12px; + border-radius: 8px; + } + + #{$self}:not(.is-disabled) & { + cursor: text; + } + + #{$self}:not(.is-disabled) &:hover, + #{$self}.is-focused & { + --border-width: 2px; + } + + #{$self}.is-disabled & { + --border-color: var(--search-disabled-border-color); + background: var(--search-disabled-background); + } + } + + &__icon { + color: var(--search-icon-color); + margin-right: 8px; + pointer-events: none; + transition: color .2s ease-out; + + #{$self}--small & { + margin-right: 4px; + } + + #{$self}.is-focused & { + color: var(--search-active-icon-color); + } + } + + &__input { + @include txt-i-m; + + flex: 1; + width: 100%; + height: 100%; + border: none; + background: none; + outline: none; + padding: 0; + color: var(--search-value-color); + caret-color: var(--search-caret-color); + appearance: none; + + &::-webkit-search-decoration, + &::-webkit-search-cancel-button, + &::-webkit-search-results-button, + &::-webkit-search-results-decoration { + -webkit-appearance: none; + } + + &::-ms-reveal, + &::-ms-clear { + display: none; + } + + &:-webkit-autofill { + -webkit-background-clip: text; + -webkit-text-fill-color: var(--search-color); + } + + &::placeholder { + color: var(--search-placeholder-color); + } + + #{$self}--small & { + @include txt-r-m; + } + + #{$self}.is-disabled & { + color: $clr-grey-400; + } + } + + &__clear { + margin-left: 8px; + + #{$self}--small & { + margin-left: 4px; + } + } + + /* prettier-ignore */ + @include element-variant( + 'search', + '', + ( + 'border-color': $clr-grey-300, + 'color': $clr-black, + 'placeholder-color': $clr-grey-400, + 'icon-color': $clr-grey-400, + 'active-icon-color': $clr-grey-500, + 'disabled-background': $clr-grey-100, + 'disabled-border-color': $clr-grey-300 + ) + ); +} \ No newline at end of file diff --git a/layers/ui/components/select/index.vue b/layers/ui/components/select/index.vue new file mode 100644 index 0000000..35cdf07 --- /dev/null +++ b/layers/ui/components/select/index.vue @@ -0,0 +1,460 @@ + + + + + diff --git a/layers/ui/components/select/option.vue b/layers/ui/components/select/option.vue new file mode 100644 index 0000000..46a87cf --- /dev/null +++ b/layers/ui/components/select/option.vue @@ -0,0 +1,48 @@ + + + diff --git a/layers/ui/components/select/styles.scss b/layers/ui/components/select/styles.scss new file mode 100644 index 0000000..ea53127 --- /dev/null +++ b/layers/ui/components/select/styles.scss @@ -0,0 +1,194 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-select { + $self: &; + + position: relative; + width: 169px; + + &__wrapper { + display: grid; + grid-template-areas: 'label chevron' 'content chevron'; + grid-template-columns: 1fr auto; + column-gap: 8px; + align-items: center; + padding: 8px 16px; + border-radius: 12px; + cursor: pointer; + background-color: var(--select-background); + transition: .2s ease-out; + transition-property: background-color, border-radius, box-shadow; + outline: none; + + &:focus-visible, + &:hover { + background-color: var(--select-hover-background); + } + + &:active { + background-color: var(--select-active-background); + } + + #{$self}.is-active & { + border-radius: 12px 12px 0 0; + box-shadow: 0 4px 4px 0 #6C86AD40; + } + } + + &__label { + @include txt-s-m; + + grid-area: label; + color: var(--select-label-color); + transition: color .2s ease-out; + user-select: none; + + #{$self}.is-active &, + #{$self}__wrapper:hover &, + #{$self}__wrapper:focus-visible & { + color: var(--select-label-hover-color); + } + } + + &__content { + display: flex; + grid-area: content; + } + + &__control { + @include txt-i-m; + + background: none; + color: var(--select-color); + padding: 0; + border: none; + width: 100%; + outline: none; + cursor: pointer; + user-select: none; + pointer-events: none; + appearance: none; + + &::placeholder { + color: var(--select-color); + } + } + + &__clear { + color: var(--select-clear-color); + transition: color .2s ease-out; + + &:hover { + color: var(--select-clear-hover-color); + } + } + + &__chevron { + color: var(--select-chevron-color); + grid-area: chevron; + } + + &__popper { + width: 100%; + z-index: 6500; + } + + &__dropdown { + border-radius: 0 0 12px 12px; + overflow: hidden; + background-color: $clr-white; + box-shadow: 0 4px 4px 0 #6C86AD40; + } + + &__search { + padding: 8px 16px; + } + + &__items-scroller { + max-height: calc(44px * 4); + overflow-y: auto; + + &::-webkit-scrollbar { + display: none; + } + } + + &__bottom { + @include txt-s-m; + + margin-top: 4px; + padding-inline: 16px; + } + + &__validation-message { + color: var(--input-validation-message-color); + } + + &__caption { + color: var(--input-caption-color); + } + + @include element-variant('select', '', ( + 'label-color': $clr-grey-500, + 'label-hover-color': $clr-grey-600, + 'color': $clr-black, + 'background': $clr-white, + 'hover-background': $clr-grey-200, + 'active-background': $clr-grey-300, + 'chevron-color': $clr-black, + 'clear-color': $clr-black, + 'clear-hover-color': $clr-cyan-500, + )); +} + +.ui-select-option { + $self: &; + + @include txt-m-m; + + display: flex; + align-items: center; + padding: 12px 16px; + background-color: $clr-white; + transition: background-color .2s ease-out; + cursor: pointer; + user-select: none; + outline: none; + + &:hover, + &:focus { + background-color: $clr-grey-200; + } + + &:active, + &.is-selected { + background-color: $clr-grey-300; + } + + &__icon { + margin-right: 8px; + } + + &__label { + flex: 1; + } + + &__checkbox { + width: 16px; + height: 16px; + border-radius: 4px; + outline: 1px solid $clr-grey-400; + outline-offset: -1px; + transition: .2s ease-out; + transition-property: background-color, outline-color; + pointer-events: none; + color: transparent; + + #{$self}.is-selected & { + outline-color: transparent; + background-color: $clr-grey-200; + color: $clr-grey-600; + } + } +} \ No newline at end of file diff --git a/layers/ui/components/select/types.ts b/layers/ui/components/select/types.ts new file mode 100644 index 0000000..38880f5 --- /dev/null +++ b/layers/ui/components/select/types.ts @@ -0,0 +1,19 @@ +export interface Props { + id: string + disabled?: boolean + label: string + placeholder?: string + modelValue?: unknown + required?: boolean + searchable?: boolean + clearable?: boolean + options: unknown[] + optionValue?: string + optionLabel?: string + optionDisabled?: string + optionCoin?: string + emitValue?: boolean + mapOptions?: boolean + multiple?: boolean + caption?: string +} diff --git a/layers/ui/components/spinner/index.vue b/layers/ui/components/spinner/index.vue new file mode 100644 index 0000000..2769f11 --- /dev/null +++ b/layers/ui/components/spinner/index.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/layers/ui/components/spinner/styles.scss b/layers/ui/components/spinner/styles.scss new file mode 100644 index 0000000..6291fca --- /dev/null +++ b/layers/ui/components/spinner/styles.scss @@ -0,0 +1,93 @@ +.ui-spinner { + --length: calc(2 * 3.14 * (var(--spinner-size, 20px) * 0.45)); + + display: flex; + align-items: center; + justify-content: center; + position: relative; + width: var(--spinner-size, 20px); + height: var(--spinner-size, 20px); + border-radius: var(--spinner-border-radius, 50%); + pointer-events: none; + + &__circle-wrapper { + position: relative; + width: 100%; + height: 100%; + transform: rotateZ(-90deg); + } + + &__circle, + &__inner { + fill: none; + stroke-width: 10%; + stroke-linecap: round; + } + + &__circle { + stroke: var(--spinner-color, currentColor); + opacity: var(--spinner-circle-opacity, 0.5); + } + + &__inner { + stroke: var(--spinner-color, currentColor); + stroke-dasharray: var(--length); + stroke-dashoffset: 0; + } + + &__remaining-time { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + font-size: 12px; + stroke: var(--c-text-gray); + transition: 0.5s ease; + color: var(--spinner-color, currentColor); + -webkit-background-clip: initial; + background-clip: initial; + -webkit-text-fill-color: initial; + text-align: center; + } + + &.is-timer { + .ui-spinner__inner { + animation: timer v-bind('delay + "s"') linear; + } + } + + &.is-indeterminate { + animation: indeterminate var(--spinner-speed, 1.5s) linear infinite; + + .ui-spinner__inner { + stroke-dashoffset: calc(var(--length) * 0.75); + } + } +} + +@keyframes indeterminate { + from { + -ms-transform: rotate(0deg); + -moz-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + -o-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -ms-transform: rotate(360deg); + -moz-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + -o-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes timer { + from { + stroke-dashoffset: var(--length); + } + to { + stroke-dashoffset: 0; + } +} \ No newline at end of file diff --git a/layers/ui/components/switch/index.vue b/layers/ui/components/switch/index.vue new file mode 100644 index 0000000..46e2aa1 --- /dev/null +++ b/layers/ui/components/switch/index.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/layers/ui/components/switch/styles.scss b/layers/ui/components/switch/styles.scss new file mode 100644 index 0000000..0f57f7e --- /dev/null +++ b/layers/ui/components/switch/styles.scss @@ -0,0 +1,93 @@ +@use '../../styles/mixins' as *; +@use '../../styles/variables' as *; + +.ui-switch { + $self: &; + + display: inline-flex; + + &__control { + position: relative; + border-radius: 5px; + background: var(--switch-background); + width: 28px; + height: 10px; + cursor: pointer; + transition: background 0.2s ease; + outline: none; + + #{$self}.is-loading & { + cursor: wait; + } + + #{$self}.is-disabled & { + cursor: not-allowed; + background-color: var(--switch-disabled-background); + } + } + + &__input { + position: absolute; + width: 0; + height: 0; + opacity: 0; + margin: 0; + pointer-events: none; + } + + &__action { + --action-size: var(--switch-action-size, 16px); + + position: absolute; + top: -3px; + left: 0; + width: var(--action-size); + height: var(--action-size); + background: var(--switch-off-action-background); + border-radius: 50%; + transition: .2s ease; + transition-property: background-color, left; + + #{$self}.is-focused &, + #{$self}__control:hover & { + background: var(--switch-off-action-hover-background); + } + + #{$self}.is-checked & { + background: var(--switch-on-action-background); + left: calc(100% - var(--action-size)); + } + + #{$self}:not(.is-disabled).is-checked.is-focused &, + #{$self}:not(.is-disabled).is-checked #{$self}__control:hover & { + background-color: var(--switch-on-action-hover-background); + } + + #{$self}.is-disabled & { + background-color: var(--switch-off-action-disabled-background); + } + + #{$self}.is-disabled.is-checked & { + background-color: var(--switch-on-action-disabled-background); + } + } + + &__spinner { + --spinner-size: 12px; + --spinner-color: #{$clr-white}; + + margin: 2px; + } + + /* prettier-ignore */ + @include element-variant('switch', '', ( + 'background': $clr-grey-300, + 'disabled-background': $clr-grey-200, + 'off-action-background': $clr-grey-400, + 'off-action-hover-background': $clr-grey-500, + 'off-action-disabled-background': $clr-grey-300, + 'on-action-background': $clr-cyan-500, + 'on-action-hover-background': $clr-cyan-400, + 'on-action-disabled-background': $clr-cyan-300 + )); +} \ No newline at end of file diff --git a/layers/ui/components/switcher/index.vue b/layers/ui/components/switcher/index.vue new file mode 100644 index 0000000..b5b14e0 --- /dev/null +++ b/layers/ui/components/switcher/index.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/layers/ui/components/switcher/option.vue b/layers/ui/components/switcher/option.vue new file mode 100644 index 0000000..c7c1c3e --- /dev/null +++ b/layers/ui/components/switcher/option.vue @@ -0,0 +1,26 @@ + + + diff --git a/layers/ui/components/switcher/styles.scss b/layers/ui/components/switcher/styles.scss new file mode 100644 index 0000000..6a435e4 --- /dev/null +++ b/layers/ui/components/switcher/styles.scss @@ -0,0 +1,23 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-switcher { + display: flex; + padding: 4px; + border-radius: 12px; + gap: 8px; + + &--blue { + background-color: $clr-grey-200; + } + + &--white { + background-color: $clr-grey-100; + } +} + +.ui-switcher-option { + --button-border-radius: 8px; + + flex: 1; +} \ No newline at end of file diff --git a/layers/ui/components/switcher/types.ts b/layers/ui/components/switcher/types.ts new file mode 100644 index 0000000..47d3563 --- /dev/null +++ b/layers/ui/components/switcher/types.ts @@ -0,0 +1,21 @@ +import type { Props as ButtonProps } from '../button/index.vue' +import type { UiIcon } from '#build/types/ui/icons' + +export type ModelValue = string | number | boolean + +export interface OptionProps { + id: string + label?: string + icon?: UiIcon + value: ModelValue + size?: ButtonProps['size'] +} + +export interface Props { + id: string + options: Pick[] + modelValue?: ModelValue + required?: boolean + color?: 'blue' | 'white' + size?: ButtonProps['size'] +} diff --git a/layers/ui/components/tabs/constants.ts b/layers/ui/components/tabs/constants.ts new file mode 100644 index 0000000..26c0f67 --- /dev/null +++ b/layers/ui/components/tabs/constants.ts @@ -0,0 +1,5 @@ +import type { InjectionKey } from 'vue' +import type { TabsContext } from './types' + +export const tabsContextKey: InjectionKey + = Symbol('UI_TABS') diff --git a/layers/ui/components/tabs/index.vue b/layers/ui/components/tabs/index.vue new file mode 100644 index 0000000..331d6b6 --- /dev/null +++ b/layers/ui/components/tabs/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/layers/ui/components/tabs/option.vue b/layers/ui/components/tabs/option.vue new file mode 100644 index 0000000..7716001 --- /dev/null +++ b/layers/ui/components/tabs/option.vue @@ -0,0 +1,27 @@ + + + diff --git a/layers/ui/components/tabs/styles.scss b/layers/ui/components/tabs/styles.scss new file mode 100644 index 0000000..a464966 --- /dev/null +++ b/layers/ui/components/tabs/styles.scss @@ -0,0 +1,7 @@ +@use '../../styles/variables' as *; +@use '../../styles/mixins' as *; + +.ui-tabs { + display: flex; + gap: 8px; +} \ No newline at end of file diff --git a/layers/ui/components/tabs/types.ts b/layers/ui/components/tabs/types.ts new file mode 100644 index 0000000..db38dce --- /dev/null +++ b/layers/ui/components/tabs/types.ts @@ -0,0 +1,22 @@ +import type { Props as ButtonProps } from '../button/index.vue' +import type { UiIcon } from '#build/types/ui/icons' + +export type ModelValue = string | number + +export interface OptionProps { + label?: string + icon?: UiIcon + value: ModelValue + size?: ButtonProps['size'] +} + +export interface Props { + options: Omit[] + modelValue?: ModelValue + size?: ButtonProps['size'] +} + +export interface TabsContext { + modelValue?: ModelValue + handleOptionClick: (value: ModelValue) => void +} diff --git a/layers/ui/composables/use-checkbox.ts b/layers/ui/composables/use-checkbox.ts new file mode 100644 index 0000000..7a4580f --- /dev/null +++ b/layers/ui/composables/use-checkbox.ts @@ -0,0 +1,44 @@ +import { useField } from 'vee-validate' +import { computed, ref, toRef } from 'vue' +import type { ComponentInternalInstance } from 'vue' + +interface Props { + id: string + label?: string + disabled?: boolean + modelValue?: boolean | string | number + trueValue?: boolean | string | number + falseValue?: boolean | string | number + required?: boolean +} + +export default (props: Props, slots: ComponentInternalInstance['slots']) => { + const { checked, errorMessage, handleChange } = useField( + toRef(props, 'id'), + computed(() => ({ + required: props.required, + })), + { + type: 'checkbox', + initialValue: props.modelValue, + checkedValue: props.trueValue ?? true, + uncheckedValue: props.falseValue ?? false, + syncVModel: true, + }, + ) + + const focused = ref(false) + + const active = computed(() => !props.disabled) + const invalid = computed(() => active.value && !!errorMessage.value) + const hasLabel = computed(() => !!props.label || slots.default) + + return { + focused, + checked, + active, + invalid, + hasLabel, + handleChange, + } +} diff --git a/layers/ui/composables/use-classname.ts b/layers/ui/composables/use-classname.ts new file mode 100644 index 0000000..628874a --- /dev/null +++ b/layers/ui/composables/use-classname.ts @@ -0,0 +1,63 @@ +const namespace = 'ui' +const statePrefix = 'is-' + +function _bem(namespace: string, block: string, blockSuffix: string, element: string, modifier: string) { + let cls = `${block}` + if (blockSuffix) + cls += `-${blockSuffix}` + + if (element) + cls += `__${element}` + + if (modifier) + cls += `--${modifier}` + + return cls +} + +export default (block: string) => { + const b = (blockSuffix: string = '') => _bem(namespace, block, blockSuffix, '', '') + const e = (element: string) => + element ? _bem(namespace, block, '', element, '') : '' + const m = (modifier: string) => + modifier ? _bem(namespace, block, '', '', modifier) : '' + const be = (blockSuffix: string, element: string) => + blockSuffix && element + ? _bem(namespace, block, blockSuffix, element, '') + : '' + const em = (element: string, modifier: string) => + element && modifier ? _bem(namespace, block, '', element, modifier) : '' + const bm = (blockSuffix: string, modifier: string) => + blockSuffix && modifier + ? _bem(namespace, block, blockSuffix, '', modifier) + : '' + const bem = (blockSuffix: string, element: string, modifier: string) => + blockSuffix && element && modifier + ? _bem(namespace, block, blockSuffix, element, modifier) + : '' + const is = (name: string, ...args: any[]) => { + const state = args.length >= 1 ? args[0] : true + return name && state ? `${statePrefix}${name}` : '' + } + const has = (name: string, ...args: any[]) => { + const state = args.length >= 1 ? args[0] : true + return name && state ? `has-${name}` : '' + } + const exp = (condition: boolean, trueState: string, falseState: string = '') => { + return condition ? trueState : falseState + } + + return { + namespace, + b, + e, + m, + be, + em, + bm, + bem, + is, + has, + exp, + } +} diff --git a/layers/ui/composables/use-fuse-search.js b/layers/ui/composables/use-fuse-search.js new file mode 100644 index 0000000..27e53f8 --- /dev/null +++ b/layers/ui/composables/use-fuse-search.js @@ -0,0 +1,56 @@ +import Fuse from 'fuse.js' +import { isRef, ref, unref, watch } from 'vue' + +export default (items, options, term) => { + const fuse = ref(null) + const result = ref(unref(items)) + + watch(items, (value) => { + if (fuse.value) { + fuse.value.setCollection(unref(value)) + result.value = unref(items) + } + }) + + watch( + () => options, + (value) => { + fuse.value = new Fuse(unref(items), { minMatchCharLength: 2, ...value }) + }, + { immediate: true }, + ) + + if (isRef(term)) { + watch(term, (value) => { + search(value) + }) + } + + const search = (term = '') => { + if (!fuse.value) + return + + term = term.trim() + + if (term.length < 2) { + result.value = unref(items) + + return + } + + const documents = fuse.value.search(term) + + result.value = documents.map(doc => doc.item) + } + + const reset = () => { + result.value = unref(items) + } + + return { + fuse, + result, + search, + reset, + } +} diff --git a/layers/ui/composables/use-global-config.ts b/layers/ui/composables/use-global-config.ts new file mode 100644 index 0000000..eb55759 --- /dev/null +++ b/layers/ui/composables/use-global-config.ts @@ -0,0 +1,27 @@ +import { computed, getCurrentInstance, inject, provide, unref } from 'vue' +import type { MaybeRef, Ref } from 'vue' + +export function useGlobalConfig( + key: string, + defaultValue: unknown = undefined, +): Ref { + const config = inject('GLOBAL_CONFIG') as MaybeRef + + if (key) + return computed(() => unref(config)?.[key] ?? defaultValue) + else + return config +} + +export function provideGlobalConfig(config, app) { + const inSetup = !!getCurrentInstance() + + const provideFn = app?.provide ?? (inSetup ? provide : undefined) + + if (!provideFn) + return + + provideFn('GLOBAL_CONFIG', config) + + return config +} diff --git a/layers/ui/composables/use-notify.ts b/layers/ui/composables/use-notify.ts new file mode 100644 index 0000000..0461e3c --- /dev/null +++ b/layers/ui/composables/use-notify.ts @@ -0,0 +1,3 @@ +import notify from '../components/notification/notify' + +export default () => notify diff --git a/layers/ui/composables/use-radio.ts b/layers/ui/composables/use-radio.ts new file mode 100644 index 0000000..5d1f7b0 --- /dev/null +++ b/layers/ui/composables/use-radio.ts @@ -0,0 +1,40 @@ +import { useField } from 'vee-validate' +import { computed, ref, toRef } from 'vue' +import type { ComponentInternalInstance } from 'vue' + +interface Props { + id: string + value: string | number + label?: string + disabled?: boolean + modelValue?: string | number + required?: boolean +} + +export default (props: Props, slots: ComponentInternalInstance['slots']) => { + const { checked, handleChange } = useField( + toRef(props, 'id'), + computed(() => ({ + required: props.required, + })), + { + type: 'radio', + initialValue: props.modelValue, + checkedValue: props.value, + syncVModel: true, + }, + ) + + const focused = ref(false) + + const active = computed(() => !props.disabled) + const hasLabel = computed(() => !!props.label || slots.default) + + return { + focused, + active, + checked, + hasLabel, + handleChange, + } +} diff --git a/layers/ui/composables/use-timer.js b/layers/ui/composables/use-timer.js new file mode 100644 index 0000000..2b7e586 --- /dev/null +++ b/layers/ui/composables/use-timer.js @@ -0,0 +1,61 @@ +import { computed, onMounted, onUnmounted, ref, unref, watch } from 'vue' + +export default function useTimer(expirationTime) { + const now = ref(Date.now()) + const remainingTime = ref(calcRemainingTime()) + const requestId = ref() + + const isPaused = computed(() => !requestId.value) + const isPassed = computed(() => remainingTime.value === 0) + + function calcRemainingTime() { + return Math.max(Math.ceil((unref(expirationTime) - now.value) / 1000), 0) + } + + function update() { + now.value = Date.now() + + const newRemainingTime = calcRemainingTime() + + if (newRemainingTime !== remainingTime.value) + remainingTime.value = newRemainingTime + + if (remainingTime.value > 0) + requestId.value = window.requestAnimationFrame(update) + } + + function start() { + requestId.value = requestAnimationFrame(update) + } + + function stop() { + cancelAnimationFrame(requestId.value) + + requestId.value = null + } + + watch(expirationTime, () => { + if (!isPaused.value) { + remainingTime.value = calcRemainingTime() + + stop() + start() + } + }) + + onMounted(() => { + start() + }) + + onUnmounted(() => { + stop() + }) + + return { + remainingTime, + isPaused, + isPassed, + start, + stop, + } +} diff --git a/layers/ui/eslint.config.js b/layers/ui/eslint.config.js new file mode 100644 index 0000000..fea5f37 --- /dev/null +++ b/layers/ui/eslint.config.js @@ -0,0 +1,11 @@ +import antfu from '@antfu/eslint-config' + +export default await antfu({ + overrides: { + vue: { + 'vue/block-order': ['error', { + order: ['template', 'script', 'style'], + }], + }, + }, +}) diff --git a/layers/ui/modules/icons.ts b/layers/ui/modules/icons.ts new file mode 100644 index 0000000..d7bb708 --- /dev/null +++ b/layers/ui/modules/icons.ts @@ -0,0 +1,94 @@ +import { + addComponent, + addTemplate, + addTypeTemplate, + createResolver, + defineNuxtModule, + installModule, +} from '@nuxt/kit' +import { globby } from 'globby' +import { FileSystemIconLoader } from 'unplugin-icons/loaders' +import IconsResolver from 'unplugin-icons/resolver' + +export default defineNuxtModule({ + async setup(_, nuxt) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + const resolver = createResolver(import.meta.url) + + const svgTransformer = (svg: string) => { + return svg.replace(/^ icon.replace('.svg', '')) + + const iconComponents = icons.map((icon) => { + const name = `ui-icon-${icon}` + const component = resolveIcon(name) + + return addComponent({ + name, + filePath: component, + global: 'sync', + }) + }) + await Promise.all(iconComponents) + + // Small icons + const smallIcons = ( + await globby('**/*.svg', { + cwd: resolver.resolve('../assets/small-icons'), + }) + ).map(icon => `s-${icon.replace('.svg', '')}`) + + const smallIconComponents = smallIcons.map((icon) => { + const name = `ui-icon-${icon}` + const component = resolveIcon(name) + + return addComponent({ + name, + filePath: component, + global: 'sync', + }) + }) + await Promise.all(smallIconComponents) + + addTemplate({ + filename: 'ui/available-icons.mjs', + getContents: () => + `export default ${JSON.stringify([icons, smallIcons].flat())}`, + }) + + addTypeTemplate({ + filename: 'types/ui/icons.d.ts', + getContents: () => ` + const icons = ${JSON.stringify([icons, smallIcons].flat())} as const; + export type UiIcon = typeof icons[number]; + `, + }) + }, +}) diff --git a/layers/ui/nuxt.config.ts b/layers/ui/nuxt.config.ts new file mode 100644 index 0000000..9ffb32a --- /dev/null +++ b/layers/ui/nuxt.config.ts @@ -0,0 +1,56 @@ +import { createResolver } from '@nuxt/kit' + +const { resolve } = createResolver(import.meta.url) + +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true }, + app: { + head: { + link: [ + { + rel: 'preconnect', + href: 'https://fonts.googleapis.com', + }, + { + rel: 'preconnect', + href: 'https://fonts.gstatic.com', + crossorigin: 'anonymous', + }, + { + rel: 'stylesheet', + href: 'https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&display=swap', + }, + ], + }, + }, + components: { + dirs: [ + { + path: resolve('./components'), + global: true, + prefix: 'Ui', + extensions: ['.vue'], + ignore: [ + '**/accordion/transition.vue', + '**/switcher/option.vue', + '**/tabs/option.vue', + '**/select/option.vue', + ], + }, + ], + }, + css: [resolve('./styles/index.scss')], + vite: { + css: { + preprocessorOptions: { + scss: { + additionalData: ` + @use "${resolve('./styles/mixins')}" as *; + @use "${resolve('./styles/variables')}" as *; + `, + }, + }, + }, + }, +}) diff --git a/layers/ui/package.json b/layers/ui/package.json new file mode 100644 index 0000000..4e8fe85 --- /dev/null +++ b/layers/ui/package.json @@ -0,0 +1,44 @@ +{ + "name": "ui-layer", + "type": "module", + "version": "0.0.1", + "private": true, + "main": "./nuxt.config.ts", + "scripts": { + "dev": "nuxi dev .ui-layer", + "build": "nuxt build .ui-layer", + "generate": "nuxt generate .ui-layer", + "preview": "nuxt preview .ui-layer", + "prepare": "nuxt prepare .ui-layer", + "lint": "eslint .", + "postinstall": "nuxt prepare .ui-layer" + }, + "dependencies": { + "@floating-ui/vue": "^1.0.2", + "@nuxt/kit": "^3.7.4", + "@tanstack/vue-table": "^8.10.7", + "@tanstack/vue-virtual": "^3.0.0-beta.65", + "@vee-validate/rules": "^4.12.4", + "@vueuse/core": "^10.5.0", + "@vueuse/integrations": "^10.5.0", + "focus-trap": "^7.5.4", + "fuse.js": "^6.6.2", + "imask": "^7.1.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "overlayscrollbars": "^2.4.2", + "overlayscrollbars-vue": "^0.5.6", + "qrcode": "^1.5.3", + "uuid": "^9.0.1", + "vee-validate": "^4.12.4" + }, + "devDependencies": { + "@antfu/eslint-config": "^2.1.2", + "@types/lodash-es": "^4.17.9", + "eslint": "^8.28.0", + "globby": "^13.2.2", + "nuxt": "^3.6.2", + "typescript": "^4.9.3", + "unplugin-icons": "^0.17.4" + } +} diff --git a/layers/ui/plugins/dayjs.ts b/layers/ui/plugins/dayjs.ts new file mode 100644 index 0000000..3d34539 --- /dev/null +++ b/layers/ui/plugins/dayjs.ts @@ -0,0 +1,16 @@ +import dayjs from 'dayjs' +import dayjsLocaleDataPlugin from 'dayjs/plugin/localeData' +import dayjsTodayPlugin from 'dayjs/plugin/isToday' +import dayjsIsBetweenPlugin from 'dayjs/plugin/isBetween' +import dayjsUpdateLocalePlugin from 'dayjs/plugin/updateLocale' +import dayjsCustomParseFormatPlugin from 'dayjs/plugin/customParseFormat' + +export default defineNuxtPlugin(() => { + dayjs.extend(dayjsLocaleDataPlugin) + dayjs.extend(dayjsTodayPlugin) + dayjs.extend(dayjsIsBetweenPlugin) + dayjs.extend(dayjsUpdateLocalePlugin) + dayjs.extend(dayjsCustomParseFormatPlugin) + + return {} +}) diff --git a/layers/ui/plugins/global-config.ts b/layers/ui/plugins/global-config.ts new file mode 100644 index 0000000..fd620d4 --- /dev/null +++ b/layers/ui/plugins/global-config.ts @@ -0,0 +1,13 @@ +import { NuxtLink } from '#components' +import { provideGlobalConfig } from '#imports' + +export default defineNuxtPlugin((nuxtApp) => { + provideGlobalConfig( + computed(() => ({ + LINK_COMPONENT: NuxtLink, + })), + nuxtApp.vueApp, + ) + + return {} +}) diff --git a/layers/ui/plugins/i18n.ts b/layers/ui/plugins/i18n.ts new file mode 100644 index 0000000..31b5d4f --- /dev/null +++ b/layers/ui/plugins/i18n.ts @@ -0,0 +1,21 @@ +import type { Composer } from 'vue-i18n' + +export default defineNuxtPlugin((nuxtApp) => { + const i18n = nuxtApp.$i18n as Composer + + if (i18n) { + i18n.mergeLocaleMessage('ru', { + 'ui.select.selected': 'Выбрано: {0}', + 'ui.select.select_option': 'Выбрать', + 'ui.search': 'Поиск', + }) + + i18n.mergeLocaleMessage('en', { + 'ui.select.selected': 'Selected: {0}', + 'ui.select.select_option': 'Select', + 'ui.search': 'Search', + }) + } + + return {} +}) diff --git a/layers/ui/plugins/notify.ts b/layers/ui/plugins/notify.ts new file mode 100644 index 0000000..908a001 --- /dev/null +++ b/layers/ui/plugins/notify.ts @@ -0,0 +1,7 @@ +import notify from '../components/notification/notify' + +export default defineNuxtPlugin((nuxtApp) => { + notify._context = nuxtApp.vueApp._context + + return {} +}) diff --git a/layers/ui/plugins/vee-validate.ts b/layers/ui/plugins/vee-validate.ts new file mode 100644 index 0000000..2a31c3e --- /dev/null +++ b/layers/ui/plugins/vee-validate.ts @@ -0,0 +1,33 @@ +import * as defaultRules from '@vee-validate/rules' +import { configure, defineRule } from 'vee-validate' +import type { Composer } from 'vue-i18n' + +export default defineNuxtPlugin((nuxtApp) => { + for (const rule in defaultRules) { + if (['default', 'url'].includes(rule)) + continue + + defineRule(rule, defaultRules[rule]) + } + + defineRule('url', (value, params): boolean => { + const optionalProtocol = Array.isArray(params) ? params[0] : params.optionalProtocol + + if (optionalProtocol) + return /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(value) + + return defaultRules.url(value, params) + }) + + const i18n = nuxtApp.$i18n as Composer + + if (i18n) { + configure({ + generateMessage: (context) => { + return i18n.t(`validation.${context.rule!.name}`, context.rule!.params) + }, + }) + } + + return {} +}) diff --git a/layers/ui/public/coins/1inch.svg b/layers/ui/public/coins/1inch.svg new file mode 100644 index 0000000..91f3b5f --- /dev/null +++ b/layers/ui/public/coins/1inch.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/aave.svg b/layers/ui/public/coins/aave.svg new file mode 100644 index 0000000..9587851 --- /dev/null +++ b/layers/ui/public/coins/aave.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/abcoin.svg b/layers/ui/public/coins/abcoin.svg new file mode 100644 index 0000000..f2bbbb9 --- /dev/null +++ b/layers/ui/public/coins/abcoin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/abrub.svg b/layers/ui/public/coins/abrub.svg new file mode 100644 index 0000000..ca5c364 --- /dev/null +++ b/layers/ui/public/coins/abrub.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/ach.svg b/layers/ui/public/coins/ach.svg new file mode 100644 index 0000000..ef96f90 --- /dev/null +++ b/layers/ui/public/coins/ach.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/acrub.svg b/layers/ui/public/coins/acrub.svg new file mode 100644 index 0000000..168edee --- /dev/null +++ b/layers/ui/public/coins/acrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/ada.svg b/layers/ui/public/coins/ada.svg new file mode 100644 index 0000000..986350a --- /dev/null +++ b/layers/ui/public/coins/ada.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/advcusd.svg b/layers/ui/public/coins/advcusd.svg new file mode 100644 index 0000000..e7c3f72 --- /dev/null +++ b/layers/ui/public/coins/advcusd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/alfauah.svg b/layers/ui/public/coins/alfauah.svg new file mode 100644 index 0000000..9e006a5 --- /dev/null +++ b/layers/ui/public/coins/alfauah.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/algo.svg b/layers/ui/public/coins/algo.svg new file mode 100644 index 0000000..fe84e19 --- /dev/null +++ b/layers/ui/public/coins/algo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/ankr.svg b/layers/ui/public/coins/ankr.svg new file mode 100644 index 0000000..faf7ad3 --- /dev/null +++ b/layers/ui/public/coins/ankr.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/ant.svg b/layers/ui/public/coins/ant.svg new file mode 100644 index 0000000..c76bd52 --- /dev/null +++ b/layers/ui/public/coins/ant.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/atom.svg b/layers/ui/public/coins/atom.svg new file mode 100644 index 0000000..871c40f --- /dev/null +++ b/layers/ui/public/coins/atom.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/layers/ui/public/coins/avax.svg b/layers/ui/public/coins/avax.svg new file mode 100644 index 0000000..4a952de --- /dev/null +++ b/layers/ui/public/coins/avax.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/avbrub.svg b/layers/ui/public/coins/avbrub.svg new file mode 100644 index 0000000..e32d830 --- /dev/null +++ b/layers/ui/public/coins/avbrub.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/bat.svg b/layers/ui/public/coins/bat.svg new file mode 100644 index 0000000..57370f5 --- /dev/null +++ b/layers/ui/public/coins/bat.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/bch.svg b/layers/ui/public/coins/bch.svg new file mode 100644 index 0000000..f1f6961 --- /dev/null +++ b/layers/ui/public/coins/bch.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/btc.svg b/layers/ui/public/coins/btc.svg new file mode 100644 index 0000000..78c7b51 --- /dev/null +++ b/layers/ui/public/coins/btc.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/btcbep20.svg b/layers/ui/public/coins/btcbep20.svg new file mode 100644 index 0000000..a2deb08 --- /dev/null +++ b/layers/ui/public/coins/btcbep20.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/btg.svg b/layers/ui/public/coins/btg.svg new file mode 100644 index 0000000..3ff59d4 --- /dev/null +++ b/layers/ui/public/coins/btg.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/btt.svg b/layers/ui/public/coins/btt.svg new file mode 100644 index 0000000..d2e7676 --- /dev/null +++ b/layers/ui/public/coins/btt.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/busd.svg b/layers/ui/public/coins/busd.svg new file mode 100644 index 0000000..2739a90 --- /dev/null +++ b/layers/ui/public/coins/busd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/cake.svg b/layers/ui/public/coins/cake.svg new file mode 100644 index 0000000..3044d0c --- /dev/null +++ b/layers/ui/public/coins/cake.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/cardrub.svg b/layers/ui/public/coins/cardrub.svg new file mode 100644 index 0000000..6ee6206 --- /dev/null +++ b/layers/ui/public/coins/cardrub.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/cashrub.svg b/layers/ui/public/coins/cashrub.svg new file mode 100644 index 0000000..1be9745 --- /dev/null +++ b/layers/ui/public/coins/cashrub.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/dai.svg b/layers/ui/public/coins/dai.svg new file mode 100644 index 0000000..ee9989b --- /dev/null +++ b/layers/ui/public/coins/dai.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/dash.svg b/layers/ui/public/coins/dash.svg new file mode 100644 index 0000000..3886540 --- /dev/null +++ b/layers/ui/public/coins/dash.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/dent.svg b/layers/ui/public/coins/dent.svg new file mode 100644 index 0000000..39e2941 --- /dev/null +++ b/layers/ui/public/coins/dent.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/doge.svg b/layers/ui/public/coins/doge.svg new file mode 100644 index 0000000..3bd3535 --- /dev/null +++ b/layers/ui/public/coins/doge.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/dot.svg b/layers/ui/public/coins/dot.svg new file mode 100644 index 0000000..494ff2f --- /dev/null +++ b/layers/ui/public/coins/dot.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/eos.svg b/layers/ui/public/coins/eos.svg new file mode 100644 index 0000000..b78b29b --- /dev/null +++ b/layers/ui/public/coins/eos.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/etc.svg b/layers/ui/public/coins/etc.svg new file mode 100644 index 0000000..d28b66e --- /dev/null +++ b/layers/ui/public/coins/etc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/eth.svg b/layers/ui/public/coins/eth.svg new file mode 100644 index 0000000..1cab869 --- /dev/null +++ b/layers/ui/public/coins/eth.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/euro.svg b/layers/ui/public/coins/euro.svg new file mode 100644 index 0000000..083ee37 --- /dev/null +++ b/layers/ui/public/coins/euro.svg @@ -0,0 +1,4 @@ + + + + diff --git a/layers/ui/public/coins/exmrub.svg b/layers/ui/public/coins/exmrub.svg new file mode 100644 index 0000000..42fa318 --- /dev/null +++ b/layers/ui/public/coins/exmrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/fantom.svg b/layers/ui/public/coins/fantom.svg new file mode 100644 index 0000000..58fdc2d --- /dev/null +++ b/layers/ui/public/coins/fantom.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/gala.svg b/layers/ui/public/coins/gala.svg new file mode 100644 index 0000000..c85e7f3 --- /dev/null +++ b/layers/ui/public/coins/gala.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/gbp.svg b/layers/ui/public/coins/gbp.svg new file mode 100644 index 0000000..8237449 --- /dev/null +++ b/layers/ui/public/coins/gbp.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/gcmtrub.svg b/layers/ui/public/coins/gcmtrub.svg new file mode 100644 index 0000000..a2dbc28 --- /dev/null +++ b/layers/ui/public/coins/gcmtrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/ghst.svg b/layers/ui/public/coins/ghst.svg new file mode 100644 index 0000000..ba02b70 --- /dev/null +++ b/layers/ui/public/coins/ghst.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/gno.svg b/layers/ui/public/coins/gno.svg new file mode 100644 index 0000000..7669eb0 --- /dev/null +++ b/layers/ui/public/coins/gno.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/gpbrub.svg b/layers/ui/public/coins/gpbrub.svg new file mode 100644 index 0000000..e381f3c --- /dev/null +++ b/layers/ui/public/coins/gpbrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/grntxrub.svg b/layers/ui/public/coins/grntxrub.svg new file mode 100644 index 0000000..7370e18 --- /dev/null +++ b/layers/ui/public/coins/grntxrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/hcbrub.svg b/layers/ui/public/coins/hcbrub.svg new file mode 100644 index 0000000..a4ae55b --- /dev/null +++ b/layers/ui/public/coins/hcbrub.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/icx.svg b/layers/ui/public/coins/icx.svg new file mode 100644 index 0000000..74751ef --- /dev/null +++ b/layers/ui/public/coins/icx.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/imx.svg b/layers/ui/public/coins/imx.svg new file mode 100644 index 0000000..3f18e90 --- /dev/null +++ b/layers/ui/public/coins/imx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/iota.svg b/layers/ui/public/coins/iota.svg new file mode 100644 index 0000000..9b7c210 --- /dev/null +++ b/layers/ui/public/coins/iota.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/kmd.svg b/layers/ui/public/coins/kmd.svg new file mode 100644 index 0000000..23ca4f1 --- /dev/null +++ b/layers/ui/public/coins/kmd.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/kukrub.svg b/layers/ui/public/coins/kukrub.svg new file mode 100644 index 0000000..4fdbf67 --- /dev/null +++ b/layers/ui/public/coins/kukrub.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/link.svg b/layers/ui/public/coins/link.svg new file mode 100644 index 0000000..6e0ff8a --- /dev/null +++ b/layers/ui/public/coins/link.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/lsk.svg b/layers/ui/public/coins/lsk.svg new file mode 100644 index 0000000..f3fb87f --- /dev/null +++ b/layers/ui/public/coins/lsk.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/ltc.svg b/layers/ui/public/coins/ltc.svg new file mode 100644 index 0000000..97f9473 --- /dev/null +++ b/layers/ui/public/coins/ltc.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/mana.svg b/layers/ui/public/coins/mana.svg new file mode 100644 index 0000000..5b326b9 --- /dev/null +++ b/layers/ui/public/coins/mana.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/mir.svg b/layers/ui/public/coins/mir.svg new file mode 100644 index 0000000..a202546 --- /dev/null +++ b/layers/ui/public/coins/mir.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/mircrub.svg b/layers/ui/public/coins/mircrub.svg new file mode 100644 index 0000000..762dd33 --- /dev/null +++ b/layers/ui/public/coins/mircrub.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/mkr.svg b/layers/ui/public/coins/mkr.svg new file mode 100644 index 0000000..1b2662d --- /dev/null +++ b/layers/ui/public/coins/mkr.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/monobuah.svg b/layers/ui/public/coins/monobuah.svg new file mode 100644 index 0000000..b061feb --- /dev/null +++ b/layers/ui/public/coins/monobuah.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/mtsbrub.svg b/layers/ui/public/coins/mtsbrub.svg new file mode 100644 index 0000000..265ec54 --- /dev/null +++ b/layers/ui/public/coins/mtsbrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/mwrub.svg b/layers/ui/public/coins/mwrub.svg new file mode 100644 index 0000000..3c514e3 --- /dev/null +++ b/layers/ui/public/coins/mwrub.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/near.svg b/layers/ui/public/coins/near.svg new file mode 100644 index 0000000..226c410 --- /dev/null +++ b/layers/ui/public/coins/near.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/neo.svg b/layers/ui/public/coins/neo.svg new file mode 100644 index 0000000..7c63514 --- /dev/null +++ b/layers/ui/public/coins/neo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/omg.svg b/layers/ui/public/coins/omg.svg new file mode 100644 index 0000000..50c9b3d --- /dev/null +++ b/layers/ui/public/coins/omg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/ont.svg b/layers/ui/public/coins/ont.svg new file mode 100644 index 0000000..330ab9a --- /dev/null +++ b/layers/ui/public/coins/ont.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/opnbrub.svg b/layers/ui/public/coins/opnbrub.svg new file mode 100644 index 0000000..22f6f11 --- /dev/null +++ b/layers/ui/public/coins/opnbrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/osdbuah.svg b/layers/ui/public/coins/osdbuah.svg new file mode 100644 index 0000000..bd81c99 --- /dev/null +++ b/layers/ui/public/coins/osdbuah.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/p24uah.svg b/layers/ui/public/coins/p24uah.svg new file mode 100644 index 0000000..7bd44e1 --- /dev/null +++ b/layers/ui/public/coins/p24uah.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/pmbbuah.svg b/layers/ui/public/coins/pmbbuah.svg new file mode 100644 index 0000000..46ee571 --- /dev/null +++ b/layers/ui/public/coins/pmbbuah.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/pmusd.svg b/layers/ui/public/coins/pmusd.svg new file mode 100644 index 0000000..169b85c --- /dev/null +++ b/layers/ui/public/coins/pmusd.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/polygon.svg b/layers/ui/public/coins/polygon.svg new file mode 100644 index 0000000..503c86b --- /dev/null +++ b/layers/ui/public/coins/polygon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/postbrub.svg b/layers/ui/public/coins/postbrub.svg new file mode 100644 index 0000000..0478fd4 --- /dev/null +++ b/layers/ui/public/coins/postbrub.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/prrub.svg b/layers/ui/public/coins/prrub.svg new file mode 100644 index 0000000..944aa15 --- /dev/null +++ b/layers/ui/public/coins/prrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/psbrub.svg b/layers/ui/public/coins/psbrub.svg new file mode 100644 index 0000000..61360c9 --- /dev/null +++ b/layers/ui/public/coins/psbrub.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/qtum.svg b/layers/ui/public/coins/qtum.svg new file mode 100644 index 0000000..d3751f1 --- /dev/null +++ b/layers/ui/public/coins/qtum.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/quick.svg b/layers/ui/public/coins/quick.svg new file mode 100644 index 0000000..08aee40 --- /dev/null +++ b/layers/ui/public/coins/quick.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/qwrub.svg b/layers/ui/public/coins/qwrub.svg new file mode 100644 index 0000000..13a1db4 --- /dev/null +++ b/layers/ui/public/coins/qwrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/rep.svg b/layers/ui/public/coins/rep.svg new file mode 100644 index 0000000..63498fc --- /dev/null +++ b/layers/ui/public/coins/rep.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/rfbrub.svg b/layers/ui/public/coins/rfbrub.svg new file mode 100644 index 0000000..ac35b00 --- /dev/null +++ b/layers/ui/public/coins/rfbrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/rnkbrub.svg b/layers/ui/public/coins/rnkbrub.svg new file mode 100644 index 0000000..fc7009f --- /dev/null +++ b/layers/ui/public/coins/rnkbrub.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/rosbrub.svg b/layers/ui/public/coins/rosbrub.svg new file mode 100644 index 0000000..b2b9ac9 --- /dev/null +++ b/layers/ui/public/coins/rosbrub.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/rshbrub.svg b/layers/ui/public/coins/rshbrub.svg new file mode 100644 index 0000000..e472ceb --- /dev/null +++ b/layers/ui/public/coins/rshbrub.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/russtrub.svg b/layers/ui/public/coins/russtrub.svg new file mode 100644 index 0000000..de22afd --- /dev/null +++ b/layers/ui/public/coins/russtrub.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/rvn.svg b/layers/ui/public/coins/rvn.svg new file mode 100644 index 0000000..c77e9cf --- /dev/null +++ b/layers/ui/public/coins/rvn.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/sberrub.svg b/layers/ui/public/coins/sberrub.svg new file mode 100644 index 0000000..2f9275b --- /dev/null +++ b/layers/ui/public/coins/sberrub.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/sberuah.svg b/layers/ui/public/coins/sberuah.svg new file mode 100644 index 0000000..2f3cf37 --- /dev/null +++ b/layers/ui/public/coins/sberuah.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/sbprub.svg b/layers/ui/public/coins/sbprub.svg new file mode 100644 index 0000000..bdf0c69 --- /dev/null +++ b/layers/ui/public/coins/sbprub.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/shib.svg b/layers/ui/public/coins/shib.svg new file mode 100644 index 0000000..7f22614 --- /dev/null +++ b/layers/ui/public/coins/shib.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/sol.svg b/layers/ui/public/coins/sol.svg new file mode 100644 index 0000000..72f277d --- /dev/null +++ b/layers/ui/public/coins/sol.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/stellar.svg b/layers/ui/public/coins/stellar.svg new file mode 100644 index 0000000..e8a0e0a --- /dev/null +++ b/layers/ui/public/coins/stellar.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/tbrub.svg b/layers/ui/public/coins/tbrub.svg new file mode 100644 index 0000000..1ac9964 --- /dev/null +++ b/layers/ui/public/coins/tbrub.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/tcsbrub.svg b/layers/ui/public/coins/tcsbrub.svg new file mode 100644 index 0000000..1e1eb2a --- /dev/null +++ b/layers/ui/public/coins/tcsbrub.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/ton.svg b/layers/ui/public/coins/ton.svg new file mode 100644 index 0000000..dbd575f --- /dev/null +++ b/layers/ui/public/coins/ton.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/tru.svg b/layers/ui/public/coins/tru.svg new file mode 100644 index 0000000..d6c3fb2 --- /dev/null +++ b/layers/ui/public/coins/tru.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/trx.svg b/layers/ui/public/coins/trx.svg new file mode 100644 index 0000000..2830983 --- /dev/null +++ b/layers/ui/public/coins/trx.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/tusd.svg b/layers/ui/public/coins/tusd.svg new file mode 100644 index 0000000..bff459e --- /dev/null +++ b/layers/ui/public/coins/tusd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/uni.svg b/layers/ui/public/coins/uni.svg new file mode 100644 index 0000000..0bbc085 --- /dev/null +++ b/layers/ui/public/coins/uni.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/usbuah.svg b/layers/ui/public/coins/usbuah.svg new file mode 100644 index 0000000..61e6a13 --- /dev/null +++ b/layers/ui/public/coins/usbuah.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/usd coin.svg b/layers/ui/public/coins/usd coin.svg new file mode 100644 index 0000000..a93f24a --- /dev/null +++ b/layers/ui/public/coins/usd coin.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/usd.svg b/layers/ui/public/coins/usd.svg new file mode 100644 index 0000000..d28644a --- /dev/null +++ b/layers/ui/public/coins/usd.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/usdp.svg b/layers/ui/public/coins/usdp.svg new file mode 100644 index 0000000..21eee2e --- /dev/null +++ b/layers/ui/public/coins/usdp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/usdtomni.svg b/layers/ui/public/coins/usdtomni.svg new file mode 100644 index 0000000..a3e3651 --- /dev/null +++ b/layers/ui/public/coins/usdtomni.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/vet.svg b/layers/ui/public/coins/vet.svg new file mode 100644 index 0000000..c1f6f74 --- /dev/null +++ b/layers/ui/public/coins/vet.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/waves.svg b/layers/ui/public/coins/waves.svg new file mode 100644 index 0000000..f08ecbd --- /dev/null +++ b/layers/ui/public/coins/waves.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/wbtc.svg b/layers/ui/public/coins/wbtc.svg new file mode 100644 index 0000000..87f25b4 --- /dev/null +++ b/layers/ui/public/coins/wbtc.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/weth.svg b/layers/ui/public/coins/weth.svg new file mode 100644 index 0000000..7b03816 --- /dev/null +++ b/layers/ui/public/coins/weth.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/wirerub.svg b/layers/ui/public/coins/wirerub.svg new file mode 100644 index 0000000..8d7f0d6 --- /dev/null +++ b/layers/ui/public/coins/wirerub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/wmz.svg b/layers/ui/public/coins/wmz.svg new file mode 100644 index 0000000..68f6e33 --- /dev/null +++ b/layers/ui/public/coins/wmz.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/xem.svg b/layers/ui/public/coins/xem.svg new file mode 100644 index 0000000..da96db6 --- /dev/null +++ b/layers/ui/public/coins/xem.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/xlm.svg b/layers/ui/public/coins/xlm.svg new file mode 100644 index 0000000..282d517 --- /dev/null +++ b/layers/ui/public/coins/xlm.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/layers/ui/public/coins/xmr.svg b/layers/ui/public/coins/xmr.svg new file mode 100644 index 0000000..88a2cca --- /dev/null +++ b/layers/ui/public/coins/xmr.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/xrp.svg b/layers/ui/public/coins/xrp.svg new file mode 100644 index 0000000..f8533de --- /dev/null +++ b/layers/ui/public/coins/xrp.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/xtz.svg b/layers/ui/public/coins/xtz.svg new file mode 100644 index 0000000..57e8728 --- /dev/null +++ b/layers/ui/public/coins/xtz.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/xvg.svg b/layers/ui/public/coins/xvg.svg new file mode 100644 index 0000000..82d7157 --- /dev/null +++ b/layers/ui/public/coins/xvg.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/layers/ui/public/coins/yamrub.svg b/layers/ui/public/coins/yamrub.svg new file mode 100644 index 0000000..26f7851 --- /dev/null +++ b/layers/ui/public/coins/yamrub.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/yfi.svg b/layers/ui/public/coins/yfi.svg new file mode 100644 index 0000000..4bc2229 --- /dev/null +++ b/layers/ui/public/coins/yfi.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/layers/ui/public/coins/zec.svg b/layers/ui/public/coins/zec.svg new file mode 100644 index 0000000..102001e --- /dev/null +++ b/layers/ui/public/coins/zec.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/public/coins/zrx.svg b/layers/ui/public/coins/zrx.svg new file mode 100644 index 0000000..de9f6c8 --- /dev/null +++ b/layers/ui/public/coins/zrx.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/layers/ui/styles/index.scss b/layers/ui/styles/index.scss new file mode 100644 index 0000000..fd9a251 --- /dev/null +++ b/layers/ui/styles/index.scss @@ -0,0 +1,26 @@ +@use "normalize"; +@use "utility"; +@use "typography"; +@use "transitions"; + +* { + box-sizing: border-box; +} + +body { + @include txt-i('body'); + + font-family: var(--body-font-family, "Onest", sans-serif); + color: $clr-black; + background-color: $clr-grey-100; +} + +html body .os-small-theme { + --os-size: 6px; + --os-handle-bg: #{$clr-cyan-500}; + --os-handle-bg-hover: #{$clr-cyan-400}; + --os-handle-bg-active: #{$clr-cyan-600}; + --os-handle-border-radius: 2px; + --os-padding-axis: 12px 4px; + --os-padding-perpendicular: 12px 0; +} \ No newline at end of file diff --git a/layers/ui/styles/mixins/border.scss b/layers/ui/styles/mixins/border.scss new file mode 100644 index 0000000..57d1c60 --- /dev/null +++ b/layers/ui/styles/mixins/border.scss @@ -0,0 +1,7 @@ +@mixin border($namespace) { + --border-color: var(--input-border-color); + --border-width: 1px; + + outline: var(--border-width) solid var(--border-color); + outline-offset: calc(var(--border-width) * -1); +} \ No newline at end of file diff --git a/layers/ui/styles/mixins/element-variant.scss b/layers/ui/styles/mixins/element-variant.scss new file mode 100644 index 0000000..1758413 --- /dev/null +++ b/layers/ui/styles/mixins/element-variant.scss @@ -0,0 +1,48 @@ +@use "sass:meta"; +@use "sass:list"; +@use "sass:string"; + +@mixin element-variant( + $namespace, + $variant: '', + $map: () +) { + @if meta.type-of($map) == 'map' { + $withDarkVariant: false; + $variantPrefix: if(string.length($variant) > 0, '-' + $variant, ''); + + @at-root { + :root, .light-theme { + @each $property, $value in $map { + @if meta.type-of($value) == 'list' { + @if $withDarkVariant == false and list.length($value) > 1 { + $withDarkVariant: true; + } + + $value: list.nth($value, 1); + } + + --#{$namespace}#{$variantPrefix}-#{$property}: #{$value}; + } + } + + @if $withDarkVariant { + .dark-theme { + @each $property, $value in $map { + @if meta.type-of($value) == 'list' and list.length($value) > 1 { + --#{$namespace}#{$variantPrefix}-#{$property}: #{list.nth($value, 2)}; + } + } + } + } + } + + @if (string.length($variant) > 0) { + &-#{$variantPrefix} { + @each $property, $value in $map { + --#{$namespace}-#{$property}: var(--#{$namespace}#{$variantPrefix}-#{$property}); + } + } + } + } +} diff --git a/layers/ui/styles/mixins/index.scss b/layers/ui/styles/mixins/index.scss new file mode 100644 index 0000000..eeefaca --- /dev/null +++ b/layers/ui/styles/mixins/index.scss @@ -0,0 +1,3 @@ +@forward "typography"; +@forward "input"; +@forward "element-variant"; \ No newline at end of file diff --git a/layers/ui/styles/mixins/input.scss b/layers/ui/styles/mixins/input.scss new file mode 100644 index 0000000..baaf6c2 --- /dev/null +++ b/layers/ui/styles/mixins/input.scss @@ -0,0 +1,200 @@ +//@use '../variables' as *; +//@use 'typography' as *; +//@use 'element-variant' as *; +// +////noinspection ALL +//@mixin input( +// $namespace, +// $flexWrapper: true, +// $placeholderSelector: '__control::placeholder', +// $withValidationIcons: true, +// $clearAppearance: true, +// $focusedSelector: '&:focus-within, &.is-filled' +//) { +// $self: &; +// +// position: relative; +// width: var(--#{$namespace}-width, 100%); +// text-align: left; +// +// &__label { +// @include txt-s-m(#{$namespace}-label); +// +// display: block; +// background: var(--#{$namespace}-label-background); +// color: var(--#{$namespace}-label-color); +// margin: var(--#{$namespace}-label-margin, 0 0 8px); +// transition: 0.2s ease-out; +// transition-property: opacity, color; +// } +// +// &__wrapper { +// @if $flexWrapper { +// display: flex; +// align-items: center; +// width: var(--#{$namespace}-control-width, 100%); +// height: var(--#{$namespace}-control-height, 40px); +// } +// +// position: relative; +// background: var(--#{$namespace}-background); +// border-radius: var(--#{$namespace}-border-radius, 16px); +// border: var(--#{$namespace}-border, 1px solid var(--#{$namespace}-border-color)); +// padding: var(--#{$namespace}-wrapper-padding, 0 15px 0 19px); +// color: var(--#{$namespace}-color); +// transition: 0.2s ease-out; +// transition-property: border-color, border-radius, background-color, color; +// +// > *:not(:first-child) { +// margin-left: var(--#{$namespace}-icons-gap, 8px); +// } +// } +// +// &__control { +// @if $flexWrapper { +// flex: 1; +// height: 100%; +// } +// +// @include txt-i-m(#{$namespace}-control); +// +// width: 100%; +// color: var(--#{$namespace}-control-color); +// border: none; +// background: transparent; +// padding: var(--#{$namespace}-control-padding, 9px 0); +// caret-color: var(--#{$namespace}-caret-color); +// +// @if $clearAppearance { +// appearance: none; +// } +// +// &:focus { +// outline: none; +// } +// } +// +// &#{$placeholderSelector} { +// @include txt-i-m(#{$namespace}-placeholder); +// +// color: var(--#{$namespace}-placeholder-color, var(--#{$namespace}-control-color)); +// } +// +// &__loader { +// --spinner-color: var(--#{$namespace}-color); +// } +// +// @if $withValidationIcons { +// &__valid-icon, +// &__invalid-icon { +// pointer-events: none; +// } +// } +// +// &__bottom { +// display: flex; +// justify-content: flex-end; +// margin: var(--#{$namespace}-bottom-margin, 8px 0 0); +// } +// +// &__validation-message { +// //color: var(--#{$namespace}-validation-message-color, $clr-red-500); +// flex: 1; +// } +// +// &__extra { +// margin-left: 8px; +// } +// +// &.is-loading { +// #{$self}__wrapper, +// #{$self}__control { +// cursor: wait; +// } +// } +// +// &.is-filled { +// --#{$namespace}-label-color: var(--#{$namespace}-filled-label-color); +// } +// +// &.is-invalid { +// --#{$namespace}-border-color: var(--#{$namespace}-invalid-border-color); +// } +// +// &:focus-within:not(.is-readonly):not(.is-disabled):not(.is-loading) { +// --#{$namespace}-border-color: var(--#{$namespace}-focus-border-color); +// --#{$namespace}-label-color: var(--#{$namespace}-focus-label-color); +// } +// +// &.is-disabled { +// opacity: var(--#{$namespace}--disabled-opacity, 0.56); +// +// #{$self}__wrapper, +// #{$self}__label, +// #{$self}__control { +// cursor: not-allowed; +// } +// } +// +// &.is-readonly { +// #{$self}__wrapper, +// #{$self}__control { +// cursor: default; +// } +// } +// +// @content; +// +// &--secondary, +// &--tertiary { +// +// #{$self}__label { +// opacity: 0; +// position: absolute; +// z-index: 1; +// } +// +// #{$focusedSelector} { +// #{$self}__label { +// opacity: 1; +// } +// } +// +// #{$self}__wrapper:hover:not(.is-readonly):not(.is-disabled):not(.is-loading) { +// --#{$namespace}-border-color: var(--#{$namespace}-hover-border-color); +// } +// } +// +// &--tertiary { +// --#{$namespace}-wrapper-padding: 0 15px; +// --#{$namespace}-control-height: 48px; +// +// #{$focusedSelector} { +// --#{$namespace}-control-padding: 19px 0 7px; +// } +// +// #{$self}__label { +// left: 16px; +// top: 8px; +// } +// } +// +// &--large { +// --#{$namespace}-control-height: 48px; +// --#{$namespace}-control-padding: 13px 0; +// } +// +// @include element-variant($namespace, '', ( +// 'background': ($clr-white-100, $clr-black-300), +// 'border-color': ($clr-white-700, $clr-black-200), +// 'label-color': ($clr-black-150, $clr-black-100), +// 'color': ($clr-black-500, $clr-white-100), +// 'placeholder-color': ($clr-black-100, $clr-black-150), +// 'hover-border-color': ($clr-purple-500, $clr-purple-400), +// 'focus-border-color': ($clr-purple-500, $clr-purple-400), +// 'focus-label-color': ($clr-black-150, $clr-black-100), +// 'filled-label-color': ($clr-black-150, $clr-black-100), +// 'invalid-border-color': $clr-red-500, +// 'caret-color': $clr-purple-500, +// )); +//} diff --git a/layers/ui/styles/mixins/typography.scss b/layers/ui/styles/mixins/typography.scss new file mode 100644 index 0000000..c064b00 --- /dev/null +++ b/layers/ui/styles/mixins/typography.scss @@ -0,0 +1,141 @@ +@mixin font($size, $weight, $lineHeight, $namespace: null, $onlyVars: false) { + @if ($namespace) { + @if ($onlyVars) { + --#{$namespace}-font-size: #{$size}; + --#{$namespace}-font-weight: #{$weight}; + --#{$namespace}-line-height: #{$lineHeight}; + } @else { + font-size: var(--#{$namespace}-font-size, $size); + font-weight: var(--#{$namespace}-font-weight, $weight); + line-height: var(--#{$namespace}-line-height, $lineHeight); + } + } @else { + font-size: $size; + font-weight: $weight; + line-height: $lineHeight; + } +} + +/* Headline */ +@mixin h1($namespace: null, $onlyVars: false) { + @include font(32px, 700, 41px, $namespace, $onlyVars); +} +@mixin h2($namespace: null, $onlyVars: false) { + @include font(24px, 700, 31px, $namespace, $onlyVars); +} +@mixin h3($namespace: null, $onlyVars: false) { + @include font(18px, 600, 23px, $namespace, $onlyVars); +} +@mixin h4($namespace: null, $onlyVars: false) { + @include font(14px, 500, 18px, $namespace, $onlyVars); +} +@mixin h5($namespace: null, $onlyVars: false) { + @include font(12px, 500, 15px, $namespace, $onlyVars); +} + +/** +Text + +Format: +txt-{size}-{weight} + +Sizes: +l - Large +m - Medium +i - Interim +r - Regular +s - Small +t - Tiny + +Weights: +r - Regular (or leaved empty) +m - Medium +sb - Semibold +b - Bold + */ +@mixin txt-l($namespace: null, $onlyVars: false) { + @include font(18px, 400, 23px, $namespace, $onlyVars); +} +@mixin txt-l-m($namespace: null, $onlyVars: false) { + @include font(18px, 500, 23px, $namespace, $onlyVars); +} +@mixin txt-l-sb($namespace: null, $onlyVars: false) { + @include font(18px, 600, 23px, $namespace, $onlyVars); +} +@mixin txt-l-b($namespace: null, $onlyVars: false) { + @include font(18px, 700, 23px, $namespace, $onlyVars); +} + +@mixin txt-m($namespace: null, $onlyVars: false) { + @include font(16px, 400, 20px, $namespace, $onlyVars); +} +@mixin txt-m-m($namespace: null, $onlyVars: false) { + @include font(16px, 500, 20px, $namespace, $onlyVars); +} +@mixin txt-m-sb($namespace: null, $onlyVars: false) { + @include font(16px, 600, 20px, $namespace, $onlyVars); +} +@mixin txt-m-b($namespace: null, $onlyVars: false) { + @include font(16px, 700, 20px, $namespace, $onlyVars); +} + +@mixin txt-i($namespace: null, $onlyVars: false) { + @include font(14px, 400, 18px, $namespace, $onlyVars); +} +@mixin txt-i-m($namespace: null, $onlyVars: false) { + @include font(14px, 500, 18px, $namespace, $onlyVars); +} +@mixin txt-i-sb($namespace: null, $onlyVars: false) { + @include font(14px, 600, 18px, $namespace, $onlyVars); +} +@mixin txt-i-b($namespace: null, $onlyVars: false) { + @include font(14px, 700, 18px, $namespace, $onlyVars); +} + +@mixin txt-r($namespace: null, $onlyVars: false) { + @include font(12px, 400, 15px, $namespace, $onlyVars); +} +@mixin txt-r-m($namespace: null, $onlyVars: false) { + @include font(12px, 500, 15px, $namespace, $onlyVars); +} +@mixin txt-r-sb($namespace: null, $onlyVars: false) { + @include font(12px, 600, 15px, $namespace, $onlyVars); +} +@mixin txt-r-b($namespace: null, $onlyVars: false) { + @include font(12px, 700, 15px, $namespace, $onlyVars); +} + +@mixin txt-s($namespace: null, $onlyVars: false) { + @include font(11px, 400, 14px, $namespace, $onlyVars); +} +@mixin txt-s-m($namespace: null, $onlyVars: false) { + @include font(11px, 500, 14px, $namespace, $onlyVars); +} +@mixin txt-s-sb($namespace: null, $onlyVars: false) { + @include font(11px, 600, 14px, $namespace, $onlyVars); +} +@mixin txt-s-b($namespace: null, $onlyVars: false) { + @include font(11px, 700, 14px, $namespace, $onlyVars); +} + +@mixin txt-t($namespace: null, $onlyVars: false) { + @include font(10px, 400, 13px, $namespace, $onlyVars); +} +@mixin txt-t-m($namespace: null, $onlyVars: false) { + @include font(10px, 500, 13px, $namespace, $onlyVars); +} +@mixin txt-t-sb($namespace: null, $onlyVars: false) { + @include font(10px, 600, 13px, $namespace, $onlyVars); +} +@mixin txt-t-b($namespace: null, $onlyVars: false) { + @include font(10px, 700, 13px, $namespace, $onlyVars); +} + +@mixin text-gradient { + @content; + + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + text-fill-color: transparent; +} diff --git a/layers/ui/styles/normalize.scss b/layers/ui/styles/normalize.scss new file mode 100644 index 0000000..b6be997 --- /dev/null +++ b/layers/ui/styles/normalize.scss @@ -0,0 +1,355 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bold; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; + vertical-align: middle; + font-style: italic; +} + +svg { + vertical-align: middle; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/layers/ui/styles/transitions.scss b/layers/ui/styles/transitions.scss new file mode 100644 index 0000000..a612a55 --- /dev/null +++ b/layers/ui/styles/transitions.scss @@ -0,0 +1,82 @@ +// Fade +.fade-enter-active, +.fade-leave-active { + transition: all 0.2s ease; +} + +.fade-enter-to, +.fade-leave-from { + opacity: 1; +} + +.fade-enter-from, +.fade-leave-to { + opacity: 0; +} + +// Shift +.shift-enter-active, +.shift-leave-active { + transition: all 0.2s ease; +} + +.shift-enter-to, +.shift-leave-from { + opacity: 1; +} + +.shift-enter-from, +.shift-leave-to { + opacity: 0; +} + +.shift-enter-from { + transform: translateY(-15px); +} + +.shift-leave-to { + transform: translateY(15px); +} + +.ui-notification-enter-from { + &.left { + transform: translateX(-100%); + } + + &.right { + transform: translateX(100%); + } +} + +.ui-notification-enter-to, +.ui-notification-leave-from { + opacity: 1; +} + +.ui-notification-enter-from, +.ui-notification-leave-to { + opacity: 0; +} + +.ui-notification-leave-to { + transform: scale(0.9); +} + +.dropdown-enter-active, +.dropdown-leave-active { + transition: opacity .2s ease-in-out; + + [role="listbox"] { + pointer-events: none; + transition: transform .2s ease-in-out; + } +} + +.dropdown-enter-from, +.dropdown-leave-to { + opacity: 0; + + [role="listbox"] { + transform: translateY(-12px); + } +} \ No newline at end of file diff --git a/layers/ui/styles/typography.scss b/layers/ui/styles/typography.scss new file mode 100644 index 0000000..040f159 --- /dev/null +++ b/layers/ui/styles/typography.scss @@ -0,0 +1,29 @@ +@use "./mixins" as *; + +p, h1, h2, h3, h4, h5, h6 { + margin: 0; +} + +h1 { + @include h1('h1'); +} + +h2 { + @include h2('h2'); +} + +h3 { + @include h3('h3'); +} + +h4 { + @include h4('h4'); +} + +h5 { + @include h5('h5'); +} + +a { + text-decoration: none; +} \ No newline at end of file diff --git a/layers/ui/styles/utility.scss b/layers/ui/styles/utility.scss new file mode 100644 index 0000000..7b33fd1 --- /dev/null +++ b/layers/ui/styles/utility.scss @@ -0,0 +1,285 @@ +@use "sass:meta"; +@use './variables' as *; +@use './mixins' as *; +@use './variables/clr' as clr; + +$indents: 0 4 6 8 10 12 16 18 20 21 22 24 25 26 27 28 32 40 47 50 56; + +@each $i in $indents { + .m-#{$i} { + margin: #{$i}px; + } + + .mx-#{$i} { + margin-left: #{$i}px; + margin-right: #{$i}px; + } + + .my-#{$i} { + margin-top: #{$i}px; + margin-bottom: #{$i}px; + } + + .mt-#{$i} { + margin-top: #{$i}px; + } + + .mb-#{$i} { + margin-bottom: #{$i}px; + } + + .ml-#{$i} { + margin-left: #{$i}px; + } + + .mr-#{$i} { + margin-right: #{$i}px; + } + + .p-#{$i} { + padding: #{$i}px; + } + + .px-#{$i} { + padding-left: #{$i}px; + padding-right: #{$i}px; + } + + .py-#{$i} { + padding-top: #{$i}px; + padding-bottom: #{$i}px; + } + + .pt-#{$i} { + padding-top: #{$i}px; + } + + .pb-#{$i} { + padding-bottom: #{$i}px; + } + + .pl-#{$i} { + padding-left: #{$i}px; + } + + .pr-#{$i} { + padding-right: #{$i}px; + } +} + +.ml-a { + margin-left: auto; +} + +.mr-a { + margin-left: auto; +} + +.mx-a { + margin-left: auto; + margin-right: auto; +} + +@each $align in ('left', 'right', 'center') { + .text-align-#{$align} { + text-align: #{$align}; + } +} + +@each $name, $value in meta.module-variables('clr') { + .text-#{$name} { + color: #{$value}; + } + + .bg-#{$name} { + background-color: #{$value}; + } +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.flex-1 { + flex: 1; +} + +.flex-auto { + flex: auto; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-items-start { + justify-items: flex-start !important; +} + +.justify-items-end { + justify-items: flex-end !important; +} + +.justify-items-center { + justify-items: center !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} \ No newline at end of file diff --git a/layers/ui/styles/variables/clr.scss b/layers/ui/styles/variables/clr.scss new file mode 100644 index 0000000..84aa9a6 --- /dev/null +++ b/layers/ui/styles/variables/clr.scss @@ -0,0 +1,32 @@ +$clr-cyan-200: #EBF7FF; +$clr-cyan-300: #93BEFF; +$clr-cyan-400: #317AFF; +$clr-cyan-500: #005BFF; +$clr-cyan-600: #1464D3; +$clr-cyan-700: #083D7E; + +$clr-white: #FFFFFF; + +$clr-grey-100: #F4F6FF; +$clr-grey-200: #EEF1FF; +$clr-grey-300: #DFE5FF; +$clr-grey-400: #A7B9D5; +$clr-grey-500: #6C86AD; +$clr-grey-600: #5B708F; + +$clr-black: #262A41; + +$clr-red-100: #F5ECF1; +$clr-red-200: #F3C4DE; +$clr-red-500: #EE3275; + +$clr-warn-100: #FFFAE8; +$clr-warn-200: #FDEEE8; +$clr-warn-500: #FFA800; + +$clr-green-100: #E3FCEC; +$clr-green-200: #B7F1CC; +$clr-green-500: #10C44C; + +$clr-market-100: #F2F1FD; +$clr-market-500: #5B51DE; \ No newline at end of file diff --git a/layers/ui/styles/variables/index.scss b/layers/ui/styles/variables/index.scss new file mode 100644 index 0000000..614ac49 --- /dev/null +++ b/layers/ui/styles/variables/index.scss @@ -0,0 +1 @@ +@forward "clr"; \ No newline at end of file diff --git a/layers/ui/tsconfig.json b/layers/ui/tsconfig.json new file mode 100644 index 0000000..6e7c68f --- /dev/null +++ b/layers/ui/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./.ui-layer/.nuxt/tsconfig.json" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..882e27e --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "private": true, + "scripts": { + "client": "yarn workspace client", + "dev:client": "turbo run dev --filter=...client", + "build:client": "turbo run build --filter=...client", + "pay": "yarn workspace pay", + "dev:pay": "turbo run dev --filter=...pay", + "build:pay": "turbo run build --filter=...pay", + "ui-layer": "yarn workspace ui-layer", + "shared-layer": "yarn workspace shared-layer" + }, + "devDependencies": { + "prettier": "^3.0.3", + "turbo": "^1.11.3" + }, + "name": "indefiti", + "packageManager": "yarn@1.22.19", + "workspaces": [ + "apps/*", + "layers/*" + ] +} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..ec4d016 --- /dev/null +++ b/turbo.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://turbo.build/schema.json", + "globalDependencies": ["**/.env.*local"], + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": [".next/**", "!.next/cache/**"] + }, + "lint": {}, + "dev": { + "cache": false, + "persistent": true + } + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..7f6eafd --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7989 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@antfu/eslint-config@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@antfu/eslint-config/-/eslint-config-2.1.2.tgz#cfcd7ed2e7349b502e1744d09e9334861aeadfde" + integrity sha512-eOkXtRcj3pAqkdbqNYEBUgFKTcDYYwAAAnGEs+DTTcJJJReIlrPx4WJIE02whOsi+5oKcJ7EK/swS6PcdcCIog== + dependencies: + "@antfu/eslint-define-config" "^1.23.0-2" + "@antfu/install-pkg" "^0.3.0" + "@eslint-types/jsdoc" "46.8.2-1" + "@eslint-types/typescript-eslint" "^6.12.0" + "@eslint-types/unicorn" "^49.0.0" + "@stylistic/eslint-plugin" "^1.4.1" + "@typescript-eslint/eslint-plugin" "^6.13.1" + "@typescript-eslint/parser" "^6.13.1" + eslint-config-flat-gitignore "^0.1.1" + eslint-plugin-antfu "^1.0.11" + eslint-plugin-eslint-comments "^3.2.0" + eslint-plugin-i "^2.29.0" + eslint-plugin-jsdoc "^46.9.0" + eslint-plugin-jsonc "^2.10.0" + eslint-plugin-markdown "^3.0.1" + eslint-plugin-n "^16.3.1" + eslint-plugin-no-only-tests "^3.1.0" + eslint-plugin-perfectionist "^2.5.0" + eslint-plugin-unicorn "^49.0.0" + eslint-plugin-unused-imports "^3.0.0" + eslint-plugin-vitest "^0.3.10" + eslint-plugin-vue "^9.19.1" + eslint-plugin-yml "^1.10.0" + globals "^13.23.0" + jsonc-eslint-parser "^2.4.0" + local-pkg "^0.5.0" + parse-gitignore "^2.0.0" + picocolors "^1.0.0" + prompts "^2.4.2" + vue-eslint-parser "^9.3.2" + yaml-eslint-parser "^1.2.2" + yargs "^17.7.2" + +"@antfu/eslint-define-config@^1.23.0-2": + version "1.23.0-2" + resolved "https://registry.yarnpkg.com/@antfu/eslint-define-config/-/eslint-define-config-1.23.0-2.tgz#05681d45b7fd24e4666750b6fd8da2bd8bf30a1f" + integrity sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ== + +"@antfu/install-pkg@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz#157bb04f0de8100b9e4c01734db1a6c77e98bbb5" + integrity sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ== + dependencies: + execa "^5.1.1" + find-up "^5.0.0" + +"@antfu/install-pkg@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.3.0.tgz#d60e3cac470222fe6bc00e30b14020dbd8cc0e9f" + integrity sha512-hzTVgEFGBBMXUjsNhIRDdt9jvAkZzPbMLQW8q2wXz455+1zxGFtM0nxPl2pukFWHXcC/Bn/UCHV9rd0+pwYsmw== + dependencies: + execa "^8.0.1" + find-up "^7.0.0" + +"@antfu/utils@^0.7.5", "@antfu/utils@^0.7.6": + version "0.7.6" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.6.tgz#30a046419b9e1ecd276e53d41ab68fb6c558c04d" + integrity sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w== + +"@babel/code-frame@^7.0.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== + +"@babel/core@^7.22.10", "@babel/core@^7.22.9", "@babel/core@^7.23.0", "@babel/core@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" + integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== + dependencies: + "@babel/types" "^7.23.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-compilation-targets@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.22.14", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.22.7", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== + +"@babel/plugin-proposal-decorators@^7.23.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.3.tgz#c609ca70be908d187ee36ff49f1250c56cc98f15" + integrity sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/plugin-syntax-decorators" "^7.23.3" + +"@babel/plugin-syntax-decorators@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" + integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.22.10", "@babel/plugin-transform-typescript@^7.22.15": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz#ce806e6cb485d468c48c4f717696719678ab0138" + integrity sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" + integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/runtime-corejs3@^7.22.6": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz#a5cd9d8b408fb946b2f074b21ea40c04e516795c" + integrity sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/standalone@^7.22.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.23.3.tgz#9c442bb374a365e0dc5006689824ad468ab5b00f" + integrity sha512-ZfB6wyLVqr9ANl1F0l/0aqoNUE1/kcWlQHmk0wF9OTEKDK1whkXYLruRMt53zY556yS2+84EsOpr1hpjZISTRg== + +"@babel/template@^7.22.15", "@babel/template@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" + integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@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.3" + "@babel/types" "^7.23.3" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@cloudflare/kv-asset-handler@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.0.tgz#11f0af0749a400ddadcca16dcd6f4696d7036991" + integrity sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ== + dependencies: + mime "^3.0.0" + +"@es-joy/jsdoccomment@~0.41.0": + version "0.41.0" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz#4a2f7db42209c0425c71a1476ef1bdb6dcd836f6" + integrity sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw== + dependencies: + comment-parser "1.4.1" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" + integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== + +"@esbuild/android-arm64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz#646156aea43e8e6723de6e94a4ac07c5aed41be1" + integrity sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-arm@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" + integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== + +"@esbuild/android-arm@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.7.tgz#0827b49aed813c33ea18ee257c1728cdc4a01030" + integrity sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/android-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" + integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== + +"@esbuild/android-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.7.tgz#fa294ed5214d88219d519e0ab1bbb0253a89b864" + integrity sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" + integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== + +"@esbuild/darwin-arm64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz#e24d2ed545749ff251eabe8bce11fefa688892d3" + integrity sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/darwin-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" + integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== + +"@esbuild/darwin-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz#02d1f8a572874c90d8f55dde8a859e5145bd06f6" + integrity sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" + integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== + +"@esbuild/freebsd-arm64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz#bc6a69b9a7915da278f0a5ebaec069c813982c22" + integrity sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/freebsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" + integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== + +"@esbuild/freebsd-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz#ec3708488625d70e565968ceea1355e7c8613865" + integrity sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" + integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== + +"@esbuild/linux-arm64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz#8e04b66c306858f92d4f90f8222775270755e88a" + integrity sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-arm@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" + integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== + +"@esbuild/linux-arm@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz#12d5b65e089029ee1fe4c591b60969c9b1a85355" + integrity sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-ia32@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" + integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== + +"@esbuild/linux-ia32@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz#01eabc2a3ad9039e115db650268e4f48f910dbe2" + integrity sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-loong64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" + integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== + +"@esbuild/linux-loong64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz#70681113632970e6a5766607bbdb98aa18cf4d5f" + integrity sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-mips64el@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" + integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== + +"@esbuild/linux-mips64el@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz#f63c022a71a3d70c482d1943a27cb8997021e230" + integrity sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-ppc64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" + integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== + +"@esbuild/linux-ppc64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz#614eafd08b0c50212f287b948b3c08d6e60f221f" + integrity sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-riscv64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" + integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== + +"@esbuild/linux-riscv64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz#31d3b63f92f65968268a8e61ba59872538e80e88" + integrity sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-s390x@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" + integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== + +"@esbuild/linux-s390x@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz#be94974e0caa0783ae05f9477fd7170b9ac29cb0" + integrity sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/linux-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" + integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== + +"@esbuild/linux-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz#84e8018a913dd4ecee954623e395984aef3d0007" + integrity sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/netbsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" + integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== + +"@esbuild/netbsd-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz#98898ba8800374c9df9bb182ca4f69fcecaf4411" + integrity sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/openbsd-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" + integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== + +"@esbuild/openbsd-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz#46dc4eda2adb51f16361b1ad10e9b3f4938c4573" + integrity sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/sunos-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" + integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== + +"@esbuild/sunos-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz#1650d40dd88412ecc11490119cd23cbaf661a591" + integrity sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-arm64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" + integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== + +"@esbuild/win32-arm64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz#e61de6c4eb204d83fd912f3ae6812cc8c7d32d25" + integrity sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-ia32@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" + integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== + +"@esbuild/win32-ia32@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz#3d9c159d42c67e37a433e44ef8217c661cb6f6d0" + integrity sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@esbuild/win32-x64@0.19.5": + version "0.19.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" + integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== + +"@esbuild/win32-x64@0.19.7": + version "0.19.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz#02c4446f802706098d8e6ee70cf2b7aba96ded0b" + integrity sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ== + +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint-types/jsdoc@46.8.2-1": + version "46.8.2-1" + resolved "https://registry.yarnpkg.com/@eslint-types/jsdoc/-/jsdoc-46.8.2-1.tgz#c1d9ec9ce032f0ad3a943613c346a648bcad9063" + integrity sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg== + +"@eslint-types/typescript-eslint@^6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@eslint-types/typescript-eslint/-/typescript-eslint-6.12.0.tgz#627fa63eb84ad6fc9279210fccf379599e4f53fb" + integrity sha512-N8cbOYjyFl2BFgDhDgHhTGpgiMkFg0CoITG5hdBm9ZGmcEgUvFBnHvHG7qJl3qVEmFnoKUdfSAcr7MRb2/Jxvw== + +"@eslint-types/unicorn@^49.0.0": + version "49.0.0" + resolved "https://registry.yarnpkg.com/@eslint-types/unicorn/-/unicorn-49.0.0.tgz#54a236ba569d3f4ff0d3c57466cd81269b18a342" + integrity sha512-NfXSZIsPFRD2fwTDZQj8SaXqS/rXjB5foxMraLovyrYGXiQK2y0780drDKYYSVbqvco29QIYoZNmnKTUkzZMvQ== + +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.53.0": + version "8.53.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d" + integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w== + +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== + +"@fastify/busboy@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" + integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== + +"@floating-ui/core@^1.4.2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + dependencies: + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/dom@^1.4.5": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" + integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== + dependencies: + "@floating-ui/core" "^1.4.2" + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== + +"@floating-ui/vue@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@floating-ui/vue/-/vue-1.0.2.tgz#ebd704843c2f3b780c1ce6652a7245873278563f" + integrity sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A== + dependencies: + "@floating-ui/dom" "^1.4.5" + vue-demi ">=0.13.0" + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + dependencies: + "@humanwhocodes/object-schema" "^2.0.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== + +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^2.1.11": + version "2.1.11" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.1.11.tgz#15cf9e15dfeb8e6dd79181dc3994dc1115d042e5" + integrity sha512-M/w3PkN8zQYXi8N6qK/KhnYMfEbbb6Sk8RZVn8g+Pmmu5ybw177RpsaGwpziyHeUsu4etrexYSWq3rwnIqzYCg== + dependencies: + "@antfu/install-pkg" "^0.1.1" + "@antfu/utils" "^0.7.5" + "@iconify/types" "^2.0.0" + debug "^4.3.4" + kolorist "^1.8.0" + local-pkg "^0.4.3" + +"@intlify/bundle-utils@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-7.4.0.tgz#b4dc41026d2d98d2e8a2bd83851c1883a48f1254" + integrity sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w== + dependencies: + "@intlify/message-compiler" "^9.4.0" + "@intlify/shared" "^9.4.0" + acorn "^8.8.2" + escodegen "^2.0.0" + estree-walker "^2.0.2" + jsonc-eslint-parser "^2.3.0" + magic-string "^0.30.0" + mlly "^1.2.0" + source-map-js "^1.0.1" + yaml-eslint-parser "^1.2.2" + +"@intlify/core-base@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.5.0.tgz#cbb17a27029ccfd0a83a837931baee08b887af60" + integrity sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w== + dependencies: + "@intlify/message-compiler" "9.5.0" + "@intlify/shared" "9.5.0" + +"@intlify/message-compiler@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.5.0.tgz#1b4916bf11ca7024f9c15be0d6b4de7be5317808" + integrity sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g== + dependencies: + "@intlify/shared" "9.5.0" + source-map-js "^1.0.2" + +"@intlify/message-compiler@^9.4.0": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.6.5.tgz#3a33882497417c63b23b012731d60a485c8e5558" + integrity sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q== + dependencies: + "@intlify/shared" "9.6.5" + source-map-js "^1.0.2" + +"@intlify/shared@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.5.0.tgz#185d9ab9f6b4bb4f4d133cfdd51432e9b94c2c44" + integrity sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA== + +"@intlify/shared@9.6.5", "@intlify/shared@^9.4.0", "@intlify/shared@^9.4.1": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.6.5.tgz#a81f384d804e99ceac55bb061c344f156bd96590" + integrity sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ== + +"@intlify/unplugin-vue-i18n@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.5.0.tgz#fe2e67d50beefc4b67702a7bcec23062123cb52d" + integrity sha512-jW0MCCdwxybxcwjEfCunAcKjVoxyO3i+cnLL6v+MNGRLUHqrpELF6zQAJUhgAK2afhY7mCliy8RxTFWKdXm26w== + dependencies: + "@intlify/bundle-utils" "^7.4.0" + "@intlify/shared" "^9.4.0" + "@rollup/pluginutils" "^5.0.2" + "@vue/compiler-sfc" "^3.2.47" + debug "^4.3.3" + fast-glob "^3.2.12" + js-yaml "^4.1.0" + json5 "^2.2.3" + pathe "^1.0.0" + picocolors "^1.0.0" + source-map-js "^1.0.2" + unplugin "^1.1.0" + +"@intlify/vue-i18n-bridge@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@intlify/vue-i18n-bridge/-/vue-i18n-bridge-1.0.1.tgz#7d8b124ab5d792f3ce4fe556f1afde022d161a73" + integrity sha512-MJ1uC39/P8sCsvSs8pdXClbBCKYp5g+DbvNyIPvsKdAH/yBXP4r0s4GIsrOgxrvAO6wABZIIZ/glHAZJZfj4nw== + +"@intlify/vue-router-bridge@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@intlify/vue-router-bridge/-/vue-router-bridge-1.0.1.tgz#117f74ff12add8106f533197b99f10e075f235f2" + integrity sha512-P8XjgUZ7dYXhDpGGXmAA/l9VEG4LHIt0mESd0377tRBupDLIEhmZ1IahG8Al1VzG+5yHmwb568pGIJoFEJZEMA== + dependencies: + vue-demi "^0.13.5" + +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.3": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" + integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kwsites/file-exists@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99" + integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== + dependencies: + debug "^4.1.1" + +"@kwsites/promise-deferred@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919" + integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== + +"@mapbox/node-pre-gyp@^1.0.5": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@mizchi/sucrase@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@mizchi/sucrase/-/sucrase-4.1.0.tgz#630042f2bc3494a88f2aa887fea3a0f01d65cbbd" + integrity sha512-AaN8HSGdXmNqEqIb0IQPIQL+MI/8Xr1QTOcVnA6k0u2afqfYhlre05hSxRybOFpq34oF8EqMTrYovYZxEV1FLw== + dependencies: + lines-and-columns "^1.1.6" + +"@netlify/functions@^2.3.0", "@netlify/functions@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-2.4.0.tgz#14cc222c44881e7fb3769a458e72a9f1216aff21" + integrity sha512-dIqhdj5u4Lu/8qbYwtYpn8NfvIyPHbSTV2lAP4ocL+iwC9As06AXT0wa/xOpO2vRWJa0IMxdZaqCPnkyHlHiyg== + dependencies: + "@netlify/serverless-functions-api" "1.11.0" + is-promise "^4.0.0" + +"@netlify/node-cookies@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@netlify/node-cookies/-/node-cookies-0.1.0.tgz#dda912ba618527695cf519fafa221c5e6777c612" + integrity sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g== + +"@netlify/serverless-functions-api@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.11.0.tgz#b6fd1909933e50037e37573cb054706465e03a6e" + integrity sha512-3splAsr2CekL7VTwgo6yTvzD2+f269/s+TJafYazonqMNNo31yzvFxD5HpLtni4DNE1ppymVKZ4X/rLN3yl0vQ== + dependencies: + "@netlify/node-cookies" "^0.1.0" + urlpattern-polyfill "8.0.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/agent@^2.0.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44" + integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.1" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.3.tgz#ad3ede0994bcf716ddb63d361f3ea16cb72d878c" + integrity sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/installed-package-contents@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz#fd1c64ed4ff2341e503e1f390c62640a6540df09" + integrity sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ== + dependencies: + which "^4.0.0" + +"@npmcli/run-script@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.2.tgz#497e7f058799497889df65900c711312252276d3" + integrity sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/promise-spawn" "^7.0.0" + node-gyp "^10.0.0" + read-package-json-fast "^3.0.0" + which "^4.0.0" + +"@nuxt/devalue@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-2.0.2.tgz#5749f04df13bda4c863338d8dabaf370f45ef7c7" + integrity sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA== + +"@nuxt/devtools-kit@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nuxt/devtools-kit/-/devtools-kit-1.0.0.tgz#c59d0323a3405cb2f000895e72430dbb3e9ca2bc" + integrity sha512-cNloBepQYCBW6x/ctfCvyYRZudxhfgh5w5JDswpCzn7KXmm8U6abG2jyT0FXIaceW1d5QYMpGCN1RUw24wSvOA== + dependencies: + "@nuxt/kit" "^3.7.4" + "@nuxt/schema" "^3.7.4" + execa "^7.2.0" + +"@nuxt/devtools-kit@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@nuxt/devtools-kit/-/devtools-kit-1.0.3.tgz#10b101476e6c19ee93a1a3c1a6a72f6c19e0b733" + integrity sha512-a/ZAVmrD5yOfUYhRVfC9afMkczzL8J8zdf0h6QHbTd33rJW/jmjwTn++RTdnbSD2gg2fSBRi/h8y17RmqIdb9g== + dependencies: + "@nuxt/kit" "^3.8.1" + "@nuxt/schema" "^3.8.1" + execa "^7.2.0" + +"@nuxt/devtools-wizard@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nuxt/devtools-wizard/-/devtools-wizard-1.0.0.tgz#1ad96a6d4194b025c2d5a62af406764847fe3e52" + integrity sha512-9OeZM2/Y4VuI06gdlDjmYM8yUzdfnywy4t2u2VAEfA2Lk7vk3U1lYn51IAqr+Gits9tp/Q9OiktMWmPLLNGgFw== + dependencies: + consola "^3.2.3" + diff "^5.1.0" + execa "^7.2.0" + global-dirs "^3.0.1" + magicast "^0.3.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + prompts "^2.4.2" + rc9 "^2.1.1" + semver "^7.5.4" + +"@nuxt/devtools-wizard@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@nuxt/devtools-wizard/-/devtools-wizard-1.0.3.tgz#918b5e9d21051c96f10d8f02be08cfcaf541d8d0" + integrity sha512-iningPOhBVMYov+7hDX5yr1tAVVA6AmJ7EgRkNfmHqPX2rerhD4eIN7Ao4KwkjGmQJ7qdM7k8w+NiL8OQOpdFQ== + dependencies: + consola "^3.2.3" + diff "^5.1.0" + execa "^7.2.0" + global-directory "^4.0.1" + magicast "^0.3.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + prompts "^2.4.2" + rc9 "^2.1.1" + semver "^7.5.4" + +"@nuxt/devtools@^1.0.0", "@nuxt/devtools@latest": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@nuxt/devtools/-/devtools-1.0.0.tgz#7d30a64bb9f69931a34103aaad8c45433fafd2dd" + integrity sha512-pM5AvystXlFPYOsGbH8PBxEYkttiEWHsZnGw660iMw8QedB6mAweT21XX9LDS69cqnRY5uTFqVOmO9Y4EYL3hg== + dependencies: + "@antfu/utils" "^0.7.6" + "@nuxt/devtools-kit" "1.0.0" + "@nuxt/devtools-wizard" "1.0.0" + "@nuxt/kit" "^3.7.4" + birpc "^0.2.14" + consola "^3.2.3" + destr "^2.0.1" + error-stack-parser-es "^0.1.1" + execa "^7.2.0" + fast-glob "^3.3.1" + flatted "^3.2.9" + get-port-please "^3.1.1" + global-dirs "^3.0.1" + h3 "^1.8.2" + hookable "^5.5.3" + image-meta "^0.1.1" + is-installed-globally "^0.4.0" + launch-editor "^2.6.1" + local-pkg "^0.5.0" + magicast "^0.3.0" + nitropack "^2.6.3" + nypm "^0.3.3" + ofetch "^1.3.3" + ohash "^1.1.3" + pacote "^17.0.4" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + rc9 "^2.1.1" + scule "^1.0.0" + semver "^7.5.4" + simple-git "^3.20.0" + sirv "^2.0.3" + unimport "^3.4.0" + vite-plugin-inspect "^0.7.40" + vite-plugin-vue-inspector "^4.0.0" + which "^3.0.1" + ws "^8.14.2" + +"@nuxt/devtools@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@nuxt/devtools/-/devtools-1.0.3.tgz#176e6c1fd0be398d48c773cffa22111875459f5e" + integrity sha512-2mXvQiS3KTMF0fO80Y9WLx95yubRoIp2wSCarmhhqInPe8/0K9VZ4TUiTGF20ti45h0ky3OAxiVSmLfViwDWjg== + dependencies: + "@antfu/utils" "^0.7.6" + "@nuxt/devtools-kit" "1.0.3" + "@nuxt/devtools-wizard" "1.0.3" + "@nuxt/kit" "^3.8.1" + birpc "^0.2.14" + consola "^3.2.3" + destr "^2.0.2" + error-stack-parser-es "^0.1.1" + execa "^7.2.0" + fast-glob "^3.3.2" + flatted "^3.2.9" + get-port-please "^3.1.1" + h3 "^1.9.0" + hookable "^5.5.3" + image-meta "^0.2.0" + is-installed-globally "^1.0.0" + launch-editor "^2.6.1" + local-pkg "^0.5.0" + magicast "^0.3.2" + nitropack "^2.7.2" + nypm "^0.3.3" + ofetch "^1.3.3" + ohash "^1.1.3" + pacote "^17.0.4" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + rc9 "^2.1.1" + scule "^1.1.0" + semver "^7.5.4" + simple-git "^3.21.0" + sirv "^2.0.3" + unimport "^3.5.0" + vite-plugin-inspect "^0.7.42" + vite-plugin-vue-inspector "^4.0.0" + which "^3.0.1" + ws "^8.14.2" + +"@nuxt/kit@3.8.1", "@nuxt/kit@^3.5.0", "@nuxt/kit@^3.7.4": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.8.1.tgz#64b3f161fdf56175af0f535c465b0c76b9730da0" + integrity sha512-DrhG1Z85iH68QOTkgfb0HVfM2g7+CfcMWrFWMDwck9ofyM2RXQUZyfmvMedwBnui1AjjpgpLO9078yZM+RqNUg== + dependencies: + "@nuxt/schema" "3.8.1" + c12 "^1.5.1" + consola "^3.2.3" + defu "^6.1.3" + globby "^13.2.2" + hash-sum "^2.0.0" + ignore "^5.2.4" + jiti "^1.21.0" + knitwork "^1.0.0" + mlly "^1.4.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + scule "^1.0.0" + semver "^7.5.4" + ufo "^1.3.1" + unctx "^2.3.1" + unimport "^3.4.0" + untyped "^1.4.0" + +"@nuxt/kit@3.8.2", "@nuxt/kit@^3.8.1": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.8.2.tgz#f4548f3449d2566dbd2febe2b84f47060f7c668c" + integrity sha512-LrXCm8hAkw+zpX8teUSD/LqXRarlXjbRiYxDkaqw739JSHFReWzBFgJbojsJqL4h1XIEScDGGOWiEgO4QO1sMg== + dependencies: + "@nuxt/schema" "3.8.2" + c12 "^1.5.1" + consola "^3.2.3" + defu "^6.1.3" + globby "^14.0.0" + hash-sum "^2.0.0" + ignore "^5.3.0" + jiti "^1.21.0" + knitwork "^1.0.0" + mlly "^1.4.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + scule "^1.1.0" + semver "^7.5.4" + ufo "^1.3.2" + unctx "^2.3.1" + unimport "^3.5.0" + untyped "^1.4.0" + +"@nuxt/schema@3.8.1", "@nuxt/schema@^3.7.4": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.8.1.tgz#03b78c0af5fcc6f33eee5964c7ba5508fb4da13c" + integrity sha512-fSaWRcI/2mUskfTZTGSnH6Ny0x05CRzylbVn6WFV0d6UEKIVy42Qd6n+h7yoFfp4cq4nji6u16PT4SqS1DEhsw== + dependencies: + "@nuxt/ui-templates" "^1.3.1" + consola "^3.2.3" + defu "^6.1.3" + hookable "^5.5.3" + pathe "^1.1.1" + pkg-types "^1.0.3" + std-env "^3.4.3" + ufo "^1.3.1" + unimport "^3.4.0" + untyped "^1.4.0" + +"@nuxt/schema@3.8.2", "@nuxt/schema@^3.8.1": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.8.2.tgz#6eab0cc6152b921f3fe101b65e341e05c6c36864" + integrity sha512-AMpysQ/wHK2sOujLShqYdC4OSj/S3fFJGjhYXqA2g6dgmz+FNQWJRG/ie5sI9r2EX9Ela1wt0GN1jZR3wYNE8Q== + dependencies: + "@nuxt/ui-templates" "^1.3.1" + consola "^3.2.3" + defu "^6.1.3" + hookable "^5.5.3" + pathe "^1.1.1" + pkg-types "^1.0.3" + scule "^1.1.0" + std-env "^3.5.0" + ufo "^1.3.2" + unimport "^3.5.0" + untyped "^1.4.0" + +"@nuxt/telemetry@^2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-2.5.2.tgz#d894dae887e1cade4f8d53289dd0b00c930fb9d8" + integrity sha512-kZ+rWq/5MZonMhp8KGFI5zMaR2VsiWpnlkOLJIuIX2WoJl0DkHvtxCtuFq2erAqMVruWLpKU+tgMC+1cno/QmA== + dependencies: + "@nuxt/kit" "^3.7.4" + ci-info "^3.8.0" + consola "^3.2.3" + create-require "^1.1.1" + defu "^6.1.2" + destr "^2.0.1" + dotenv "^16.3.1" + git-url-parse "^13.1.0" + is-docker "^3.0.0" + jiti "^1.20.0" + mri "^1.2.0" + nanoid "^4.0.2" + ofetch "^1.3.3" + parse-git-config "^3.0.0" + pathe "^1.1.1" + rc9 "^2.1.1" + std-env "^3.4.3" + +"@nuxt/ui-templates@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@nuxt/ui-templates/-/ui-templates-1.3.1.tgz#35f5c1adced7495a8c1284e37246a16e373ef5d5" + integrity sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA== + +"@nuxt/vite-builder@3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.8.1.tgz#ac2482da9aab6f9cfc083b78b7fac1c1f5c16e79" + integrity sha512-Ot/twGONxj22T9U4bxp771ibKVFlZxIiYDHY/e6mZsE4Blc0efKo6MzPPPo0W4/tXQbtKKEq41uINN3dMI3mag== + dependencies: + "@nuxt/kit" "3.8.1" + "@rollup/plugin-replace" "^5.0.5" + "@vitejs/plugin-vue" "^4.4.0" + "@vitejs/plugin-vue-jsx" "^3.0.2" + autoprefixer "^10.4.16" + clear "^0.1.0" + consola "^3.2.3" + cssnano "^6.0.1" + defu "^6.1.3" + esbuild "^0.19.5" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + externality "^1.0.2" + fs-extra "^11.1.1" + get-port-please "^3.1.1" + h3 "^1.8.2" + knitwork "^1.0.0" + magic-string "^0.30.5" + mlly "^1.4.2" + ohash "^1.1.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + postcss "^8.4.31" + rollup-plugin-visualizer "^5.9.2" + std-env "^3.4.3" + strip-literal "^1.3.0" + ufo "^1.3.1" + unplugin "^1.5.0" + vite "^4.5.0" + vite-node "^0.33.0" + vite-plugin-checker "^0.6.2" + vue-bundle-renderer "^2.0.0" + +"@nuxt/vite-builder@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.8.2.tgz#927d37c58fe12e62013e03f3028912adfe4871bc" + integrity sha512-l/lzDDTbd3M89BpmWqjhVLgLVRqfkKp0tyYgV5seJQjj3SX+IeqI7k6k8+dMEifdeO34jUajVWptNpITXQryyg== + dependencies: + "@nuxt/kit" "3.8.2" + "@rollup/plugin-replace" "^5.0.5" + "@vitejs/plugin-vue" "^4.5.0" + "@vitejs/plugin-vue-jsx" "^3.1.0" + autoprefixer "^10.4.16" + clear "^0.1.0" + consola "^3.2.3" + cssnano "^6.0.1" + defu "^6.1.3" + esbuild "^0.19.6" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + externality "^1.0.2" + fs-extra "^11.1.1" + get-port-please "^3.1.1" + h3 "^1.9.0" + knitwork "^1.0.0" + magic-string "^0.30.5" + mlly "^1.4.2" + ohash "^1.1.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + postcss "^8.4.31" + rollup-plugin-visualizer "^5.9.2" + std-env "^3.5.0" + strip-literal "^1.3.0" + ufo "^1.3.2" + unplugin "^1.5.1" + vite "^4.5.0" + vite-node "^0.33.0" + vite-plugin-checker "^0.6.2" + vue-bundle-renderer "^2.0.0" + +"@nuxtjs/i18n@^8.0.0-rc.5": + version "8.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@nuxtjs/i18n/-/i18n-8.0.0-rc.5.tgz#7a8cefef9b2f2ce7460badac71ecb4600d85546c" + integrity sha512-iNOh9erVx8/sKtQcz/YZIPTGT/xcf/fmAHbGLb20qecRGOWFMsRb62n9T9taS4WtJwUn1AFc0S7395xqpRkJHw== + dependencies: + "@intlify/shared" "9.5.0" + "@intlify/unplugin-vue-i18n" "^1.4.0" + "@mizchi/sucrase" "^4.1.0" + "@nuxt/kit" "^3.7.4" + "@vue/compiler-sfc" "^3.3.4" + cookie-es "^1.0.0" + debug "^4.3.4" + defu "^6.1.2" + estree-walker "^3.0.3" + is-https "^4.0.0" + js-cookie "^3.0.5" + knitwork "^1.0.0" + magic-string "^0.30.4" + mlly "^1.4.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.1" + unplugin "^1.5.0" + unstorage "^1.9.0" + vue-i18n "9.5.0" + vue-i18n-routing "^1.1.1" + +"@parcel/watcher-android-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" + integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== + +"@parcel/watcher-darwin-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" + integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== + +"@parcel/watcher-darwin-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" + integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== + +"@parcel/watcher-freebsd-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" + integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== + +"@parcel/watcher-linux-arm-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" + integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== + +"@parcel/watcher-linux-arm64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" + integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== + +"@parcel/watcher-linux-arm64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" + integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== + +"@parcel/watcher-linux-x64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" + integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== + +"@parcel/watcher-linux-x64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" + integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== + +"@parcel/watcher-wasm@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" + integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== + dependencies: + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" + +"@parcel/watcher-win32-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" + integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== + +"@parcel/watcher-win32-ia32@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" + integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== + +"@parcel/watcher-win32-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" + integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== + +"@parcel/watcher@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" + integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.3.0" + "@parcel/watcher-darwin-arm64" "2.3.0" + "@parcel/watcher-darwin-x64" "2.3.0" + "@parcel/watcher-freebsd-x64" "2.3.0" + "@parcel/watcher-linux-arm-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-musl" "2.3.0" + "@parcel/watcher-linux-x64-glibc" "2.3.0" + "@parcel/watcher-linux-x64-musl" "2.3.0" + "@parcel/watcher-win32-arm64" "2.3.0" + "@parcel/watcher-win32-ia32" "2.3.0" + "@parcel/watcher-win32-x64" "2.3.0" + +"@pinia/nuxt@^0.4.11": + version "0.4.11" + resolved "https://registry.yarnpkg.com/@pinia/nuxt/-/nuxt-0.4.11.tgz#1b3f728ae112d45deff5971376e05b8a8d64f720" + integrity sha512-bhuNFngJpmBCdAqWguezNJ/oJFR7wvKieqiZrmmdmPR07XjsidAw8RLXHMZE9kUm32M9E6T057OBbG/22jERTg== + dependencies: + "@nuxt/kit" "^3.5.0" + pinia ">=2.1.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.23" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" + integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== + +"@rollup/plugin-alias@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-5.0.1.tgz#c84a43e021f5e0ebf1cc3c5af518c8371251bb77" + integrity sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q== + dependencies: + slash "^4.0.0" + +"@rollup/plugin-commonjs@^25.0.7": + version "25.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" + integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.30.3" + +"@rollup/plugin-inject@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz#616f3a73fe075765f91c5bec90176608bed277a3" + integrity sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== + dependencies: + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.30.3" + +"@rollup/plugin-json@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-6.0.1.tgz#7e2efcf5ed549963f1444e010611d22f463931c0" + integrity sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw== + dependencies: + "@rollup/pluginutils" "^5.0.1" + +"@rollup/plugin-node-resolve@^15.2.3": + version "15.2.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" + integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/plugin-replace@^5.0.4", "@rollup/plugin-replace@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz#33d5653dce6d03cb24ef98bef7f6d25b57faefdf" + integrity sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + magic-string "^0.30.3" + +"@rollup/plugin-terser@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" + integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== + dependencies: + serialize-javascript "^6.0.1" + smob "^1.0.0" + terser "^5.17.4" + +"@rollup/plugin-wasm@^6.2.2": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-wasm/-/plugin-wasm-6.2.2.tgz#ea75fd8cc5ddba1e30bdc22e07cdbaf8d6d160bf" + integrity sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ== + dependencies: + "@rollup/pluginutils" "^5.0.2" + +"@rollup/pluginutils@^4.0.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^5.0.1", "@rollup/pluginutils@^5.0.2", "@rollup/pluginutils@^5.0.4", "@rollup/pluginutils@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.1.tgz#11bea66c013e5a88a0f53f315b2d49cfd663584e" + integrity sha512-YaN43wTyEBaMqLDYeze+gQ4ZrW5RbTEGtT5o1GVDkhpdNcsLTnLRcLccvwy3E9wiDKWg9RIhuoy3JQKDRBfaZA== + +"@rollup/rollup-android-arm64@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.1.tgz#cae505492204c018d1c6335f3b845319b15dc669" + integrity sha512-n1bX+LCGlQVuPlCofO0zOKe1b2XkFozAVRoczT+yxWZPGnkEAKTTYVOGZz8N4sKuBnKMxDbfhUsB1uwYdup/sw== + +"@rollup/rollup-darwin-arm64@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.1.tgz#5442ca442fca1a166e41e03b983b2f3e3235c17c" + integrity sha512-QqJBumdvfBqBBmyGHlKxje+iowZwrHna7pokj/Go3dV1PJekSKfmjKrjKQ/e6ESTGhkfPNLq3VXdYLAc+UtAQw== + +"@rollup/rollup-darwin-x64@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.1.tgz#e5140b0aaab0ea1424a4c8a1e76442105866290c" + integrity sha512-RrkDNkR/P5AEQSPkxQPmd2ri8WTjSl0RYmuFOiEABkEY/FSg0a4riihWQGKDJ4LnV9gigWZlTMx2DtFGzUrYQw== + +"@rollup/rollup-linux-arm-gnueabihf@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.1.tgz#501a336b1dc4cb350a1b8b4e24bba4d049902d74" + integrity sha512-ZFPxvUZmE+fkB/8D9y/SWl/XaDzNSaxd1TJUSE27XAKlRpQ2VNce/86bGd9mEUgL3qrvjJ9XTGwoX0BrJkYK/A== + +"@rollup/rollup-linux-arm64-gnu@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.1.tgz#bdb0c8552d167477d2624a4a6df0f71f128dc546" + integrity sha512-FEuAjzVIld5WVhu+M2OewLmjmbXWd3q7Zcx+Rwy4QObQCqfblriDMMS7p7+pwgjZoo9BLkP3wa9uglQXzsB9ww== + +"@rollup/rollup-linux-arm64-musl@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.1.tgz#f7e8036c2f771bb366ca0d8c79d2132cffb1d295" + integrity sha512-f5Gs8WQixqGRtI0Iq/cMqvFYmgFzMinuJO24KRfnv7Ohi/HQclwrBCYkzQu1XfLEEt3DZyvveq9HWo4bLJf1Lw== + +"@rollup/rollup-linux-x64-gnu@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.1.tgz#079ca543a649b1dcf9832a34dff94ebb46c96745" + integrity sha512-CWPkPGrFfN2vj3mw+S7A/4ZaU3rTV7AkXUr08W9lNP+UzOvKLVf34tWCqrKrfwQ0NTk5GFqUr2XGpeR2p6R4gw== + +"@rollup/rollup-linux-x64-musl@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.1.tgz#9cc8c0ea1c0e0d3b18888d5b2fd51ef6c9b42481" + integrity sha512-ZRETMFA0uVukUC9u31Ed1nx++29073goCxZtmZARwk5aF/ltuENaeTtRVsSQzFlzdd4J6L3qUm+EW8cbGt0CKQ== + +"@rollup/rollup-win32-arm64-msvc@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.1.tgz#df70597f6639549e79f0801004525d6a7a0075e4" + integrity sha512-ihqfNJNb2XtoZMSCPeoo0cYMgU04ksyFIoOw5S0JUVbOhafLot+KD82vpKXOurE2+9o/awrqIxku9MRR9hozHQ== + +"@rollup/rollup-win32-ia32-msvc@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.1.tgz#6f9e8b30a4d6b5c564bfe55cdf44a5b493139838" + integrity sha512-zK9MRpC8946lQ9ypFn4gLpdwr5a01aQ/odiIJeL9EbgZDMgbZjjT/XzTqJvDfTmnE1kHdbG20sAeNlpc91/wbg== + +"@rollup/rollup-win32-x64-msvc@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.1.tgz#0e79117bacb5817ff9a88ab19cb59df839638d6d" + integrity sha512-5I3Nz4Sb9TYOtkRwlH0ow+BhMH2vnh38tZ4J4mggE48M/YyJyp/0sPSxhw1UeS1+oBgQ8q7maFtSeKpeRJu41Q== + +"@sigstore/bundle@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.0.tgz#c6140ca97b68815edf7c4fb7bdbf58d656525c39" + integrity sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng== + dependencies: + "@sigstore/protobuf-specs" "^0.2.1" + +"@sigstore/protobuf-specs@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== + +"@sigstore/sign@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.0.tgz#4918207d8356877ab42d85d360d5729e9b3ec65a" + integrity sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA== + dependencies: + "@sigstore/bundle" "^2.1.0" + "@sigstore/protobuf-specs" "^0.2.1" + make-fetch-happen "^13.0.0" + +"@sigstore/tuf@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.2.0.tgz#ef636239687e41af3f2ce10667ab88f5ca6165b3" + integrity sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA== + dependencies: + "@sigstore/protobuf-specs" "^0.2.1" + tuf-js "^2.1.0" + +"@sindresorhus/merge-streams@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" + integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== + +"@stylistic/eslint-plugin-js@1.4.1", "@stylistic/eslint-plugin-js@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.4.1.tgz#c86a861b9858ee9e25b3d51792ef2f8ac5089048" + integrity sha512-WXHPEVw5PB7OML7cLwHJDEcCyLiP7vzKeBbSwmpHLK0oh0JYkoJfTg2hEdFuQT5rQxFy3KzCy9R1mZ0wgLjKrA== + dependencies: + acorn "^8.11.2" + escape-string-regexp "^4.0.0" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + graphemer "^1.4.0" + +"@stylistic/eslint-plugin-jsx@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-jsx/-/eslint-plugin-jsx-1.4.1.tgz#b25ab2f2fc1d35d25c3989c158846a1a493f213e" + integrity sha512-INBYpZmXrkeqnjCrUuTKMa7BeXiCR5VNvq71033hbPqXnG9oQDxX5mqE9Duj9qlISEOsxzhSr+UXGmq3mVYG9Q== + dependencies: + "@stylistic/eslint-plugin-js" "^1.4.1" + estraverse "^5.3.0" + +"@stylistic/eslint-plugin-ts@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-1.4.1.tgz#3832dd5711e74a8cb087405185fc96a452908763" + integrity sha512-zuqnxhWoqPhZcxOb7AiYZz1RF/fUCsbJ7xq60IdRWnEY6MPybqYVJAb+SYilJ3PYxqmz8zdZeYkSeVy6f1fNnA== + dependencies: + "@stylistic/eslint-plugin-js" "1.4.1" + "@typescript-eslint/utils" "^6.11.0" + graphemer "^1.4.0" + +"@stylistic/eslint-plugin@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin/-/eslint-plugin-1.4.1.tgz#6c0783e174f49d38cdc4214708eff0db4c383dc2" + integrity sha512-CDwQCxglLTkUjpIJT4ltlpC8sKkPvTA7DjFcWiuZtBr0Vc6owGuYgJso4X1TDiD2JkjD3idbXCoGK0AfzNrgww== + dependencies: + "@stylistic/eslint-plugin-js" "1.4.1" + "@stylistic/eslint-plugin-jsx" "1.4.1" + "@stylistic/eslint-plugin-ts" "1.4.1" + +"@tanstack/table-core@8.10.7": + version "8.10.7" + resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.10.7.tgz#577e8a635048875de4c9d6d6a3c21d26ff9f9d08" + integrity sha512-KQk5OMg5OH6rmbHZxuNROvdI+hKDIUxANaHlV+dPlNN7ED3qYQ/WkpY2qlXww1SIdeMlkIhpN/2L00rof0fXFw== + +"@tanstack/virtual-core@3.0.0-beta.68": + version "3.0.0-beta.68" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.0.0-beta.68.tgz#e6c478b393df57861e0a98fd0fea9982b79b6e7d" + integrity sha512-CnvsEJWK7cugigckt13AeY80FMzH+OMdEP0j0bS3/zjs44NiRe49x8FZC6R9suRXGMVMXtUHet0zbTp/Ec9Wfg== + +"@tanstack/vue-table@^8.10.7": + version "8.10.7" + resolved "https://registry.yarnpkg.com/@tanstack/vue-table/-/vue-table-8.10.7.tgz#38a26e6e4c7b69632ff09b0751cad0e08060b9ef" + integrity sha512-13tTANgJuJHVW73rPLI+qrZVhrd9Yqxjys6t/Uor0qR0oS8Xk9xJE9WHqvaGsgVNBsIs9dE53S5GEBZqGC3FUw== + dependencies: + "@tanstack/table-core" "8.10.7" + +"@tanstack/vue-virtual@^3.0.0-beta.65": + version "3.0.0-beta.68" + resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.0.0-beta.68.tgz#f475ed2b807e9d7fbd4fe38c5311368ea6106e1e" + integrity sha512-HhpgZdfathBJavOlBYFDWEO7Yuml6os7Oj15dIqtKeEMviJFQdDHLjtdqJW60zHshxOdqUDK95UF2DUtcyjNwA== + dependencies: + "@tanstack/virtual-core" "3.0.0-beta.68" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" + integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.3" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/http-proxy@^1.17.13", "@types/http-proxy@^1.17.14": + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + dependencies: + "@types/node" "*" + +"@types/json-schema@^7.0.12": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/lodash-es@^4.17.9": + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.11.tgz#6ff7878f90371256a6fed0b7b4707d5d940d945b" + integrity sha512-eCw8FYAWHt2DDl77s+AMLLzPn310LKohruumpucZI4oOFJkIgnlaJcy23OKMJxx4r9PeTF13Gv6w+jqjWQaYUg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.201" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.201.tgz#76f47cb63124e806824b6c18463daf3e1d480239" + integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ== + +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + +"@types/node@*": + version "20.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" + integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +"@types/semver@^7.5.0": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + +"@types/unist@^2", "@types/unist@^2.0.2": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/web-bluetooth@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" + integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== + +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + +"@typescript-eslint/eslint-plugin@^6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz#f98bd887bf95551203c917e734d113bf8d527a0c" + integrity sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/type-utils" "6.13.1" + "@typescript-eslint/utils" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.1.tgz#29d6d4e5fab4669e58bc15f6904b67da65567487" + integrity sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ== + dependencies: + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz#58c7c37c6a957d3d9f59bc4f64c2888e0cac1d70" + integrity sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ== + dependencies: + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" + +"@typescript-eslint/type-utils@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6" + integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ== + dependencies: + "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/utils" "6.13.1" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c" + integrity sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg== + +"@typescript-eslint/typescript-estree@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz#d01dda78d2487434d1c503853fa00291c566efa4" + integrity sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ== + dependencies: + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/visitor-keys" "6.13.1" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.13.1", "@typescript-eslint/utils@^6.11.0", "@typescript-eslint/utils@^6.13.0": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f" + integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.13.1" + "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/typescript-estree" "6.13.1" + semver "^7.5.4" + +"@typescript-eslint/visitor-keys@6.13.1": + version "6.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540" + integrity sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ== + dependencies: + "@typescript-eslint/types" "6.13.1" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@unhead/dom@1.8.3", "@unhead/dom@^1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@unhead/dom/-/dom-1.8.3.tgz#af0cc0cb182c5e6b9059d204e7003d5fbd1f7577" + integrity sha512-rPj9PiRTDf+Qy7tSK/UCGxwKfsOOQ+YniANxQy9v2AhWsDy2amW7kbfgR9fVaSlOFdpsyuh2wLCbMcyj9Wn0Jw== + dependencies: + "@unhead/schema" "1.8.3" + "@unhead/shared" "1.8.3" + +"@unhead/dom@1.8.8", "@unhead/dom@^1.8.4": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@unhead/dom/-/dom-1.8.8.tgz#f055d46bd381c2baca515bf9b8ca6190e087be4b" + integrity sha512-KRtn+tvA83lEtKrtZD85XmqW04fcytVuNKLUpPBzhJvsxB3v7gozw0nu46e3EpbO3TGJjLlLd6brNHQY6WLWfA== + dependencies: + "@unhead/schema" "1.8.8" + "@unhead/shared" "1.8.8" + +"@unhead/schema@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@unhead/schema/-/schema-1.8.3.tgz#dca988e9adcb1ce817bb4b7bf00258823e8f52af" + integrity sha512-3XbcJzdlyLr/RV2TKaygI21YorlU6XPgHn/MoWjQvH4PYiHkH8PtTGg8Je6k3gvcUURSiDfucFKaGEYdJXAVqQ== + dependencies: + hookable "^5.5.3" + zhead "^2.2.4" + +"@unhead/schema@1.8.8": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@unhead/schema/-/schema-1.8.8.tgz#853c15a41057b17e22085d7569bdd41cca36aec0" + integrity sha512-xuhNW4osVNLW1yQSbdInZ8YGiXVTi1gjF8rK1E4VnODpWLg8XOq0OpoCbdIlCH4X4A0Ee0UQGRyzkuuVZlrSsQ== + dependencies: + hookable "^5.5.3" + zhead "^2.2.4" + +"@unhead/shared@1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@unhead/shared/-/shared-1.8.3.tgz#a216d158e28e61ba035b4359feea30fc4fa24f80" + integrity sha512-E1knEiAO0iENLzZd+LjWA4mUp8JRaSxo5V0vMjSENyf5hSVB/SxAVjDPmTIelLY7KrP5mJrNMen2ZmQrr/AZJw== + dependencies: + "@unhead/schema" "1.8.3" + +"@unhead/shared@1.8.8": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@unhead/shared/-/shared-1.8.8.tgz#40850667a5d92c41185bd50e5ccc923aab083a33" + integrity sha512-LoIJUDgmOzxoRHSIf29w/wc+IzKN2XvGiQC2dZZrYoTjOOzodf75609PEW5bhx2aHio38k9F+6BnD3KDiJ7IIg== + dependencies: + "@unhead/schema" "1.8.8" + +"@unhead/ssr@^1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@unhead/ssr/-/ssr-1.8.3.tgz#85c4e485ca7326706eb6b59c082c5c5a9e091ee4" + integrity sha512-GSTkUCL4qymGkPU8BXiV74Epj0yyXJgmfTSJ3EqalpQTYyJHl910Mq2oDWk7Xyl5lHBrz2Bn0lzNXfSkS7Ao0Q== + dependencies: + "@unhead/schema" "1.8.3" + "@unhead/shared" "1.8.3" + +"@unhead/ssr@^1.8.4": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@unhead/ssr/-/ssr-1.8.8.tgz#024447780fca9b4d82dd7ee88825b9c9559c907a" + integrity sha512-+nKFgU2jT/3U0x97pQaVYa5+pH+ngpdfqPjpT6Wti8htJsBnRRUdQ8X3hTyD2vHgFsrUTj0RRr9/6CY/qdpM/A== + dependencies: + "@unhead/schema" "1.8.8" + "@unhead/shared" "1.8.8" + +"@unhead/vue@^1.8.3": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@unhead/vue/-/vue-1.8.3.tgz#409ccc5a0f72b1f38db4e5d6ea358bb66b126b9e" + integrity sha512-sj/1VosMreUQXd68rn5jDLdpgFVdN0mKrjW/8eZMWbomZkzbzs7FxyRUApd584xNjFVdtyWrTepmrNSKmEwKgg== + dependencies: + "@unhead/schema" "1.8.3" + "@unhead/shared" "1.8.3" + hookable "^5.5.3" + unhead "1.8.3" + +"@unhead/vue@^1.8.4": + version "1.8.8" + resolved "https://registry.yarnpkg.com/@unhead/vue/-/vue-1.8.8.tgz#cb64b06928c73bd82588acf7b9327a5d76563210" + integrity sha512-isHpVnSSE5SP+ObsZG/i+Jq9tAQ2u1AbGrktXKmL7P5FRxwPjhATYnJFdGpxXeXfuaFgRFKzGKs29xo4MMVODw== + dependencies: + "@unhead/schema" "1.8.8" + "@unhead/shared" "1.8.8" + hookable "^5.5.3" + unhead "1.8.8" + +"@vee-validate/rules@^4.12.4": + version "4.12.4" + resolved "https://registry.yarnpkg.com/@vee-validate/rules/-/rules-4.12.4.tgz#45b4121e7f9943ef3f0f480f9fa4a386cb56186b" + integrity sha512-r/BGZAst/0OkFJ9m+YGOzULVPZc7WQAFbAZk4UO9epDzz6KYt9fEC0rh6BbzwSf/Xw9U0JSCDOkNZ1gYNDoR5g== + dependencies: + vee-validate "4.12.4" + +"@vercel/nft@^0.24.3": + version "0.24.3" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.3.tgz#7a6c5b17a4ac153bd07d9d0511ccef20d1cefa66" + integrity sha512-IyBdIxmFAeGZnEfMgt4QrGK7XX4lWazlQj34HEi9dw04/WeDBJ7r1yaOIO5tTf9pbfvwUFodj9b0H+NDGGoOMg== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.5" + "@rollup/pluginutils" "^4.0.0" + acorn "^8.6.0" + async-sema "^3.1.1" + bindings "^1.4.0" + estree-walker "2.0.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + micromatch "^4.0.2" + node-gyp-build "^4.2.2" + resolve-from "^5.0.0" + +"@vitejs/plugin-vue-jsx@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.2.tgz#f071274f78ea8132c6731986893b7c5c5231af24" + integrity sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw== + dependencies: + "@babel/core" "^7.22.10" + "@babel/plugin-transform-typescript" "^7.22.10" + "@vue/babel-plugin-jsx" "^1.1.5" + +"@vitejs/plugin-vue-jsx@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz#9953fd9456539e1f0f253bf0fcd1289e66c67cd1" + integrity sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA== + dependencies: + "@babel/core" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + "@vue/babel-plugin-jsx" "^1.1.5" + +"@vitejs/plugin-vue@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.4.1.tgz#5050895fb8b2258d2f228110849df4a8a94b9038" + integrity sha512-HCQG8VDFDM7YDAdcj5QI5DvUi+r6xvo9LgvYdk7LSkUNwdpempdB5horkMSZsbdey9Ywsf5aaU8kEPw9M5kREA== + +"@vitejs/plugin-vue@^4.5.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz#b4569fcb1faac054eba4f5efc1aaf4d39f4379e5" + integrity sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ== + +"@vue-macros/common@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@vue-macros/common/-/common-1.8.0.tgz#885f1e7095b3b4e32773a35fd8f768f82a6c0e5c" + integrity sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA== + dependencies: + "@babel/types" "^7.22.17" + "@rollup/pluginutils" "^5.0.4" + "@vue/compiler-sfc" "^3.3.4" + ast-kit "^0.11.2" + local-pkg "^0.4.3" + magic-string-ast "^0.3.0" + +"@vue/babel-helper-vue-transform-on@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz#a976486b21e108e545524fe41ffe3fc9bbc28c7f" + integrity sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w== + +"@vue/babel-plugin-jsx@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz#5088bae7dbb83531d94df3742ff650c12fd54973" + integrity sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + "@vue/babel-helper-vue-transform-on" "^1.1.5" + camelcase "^6.3.0" + html-tags "^3.3.1" + svg-tags "^1.0.0" + +"@vue/compiler-core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313" + integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.8", "@vue/compiler-dom@^3.3.4": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b" + integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== + dependencies: + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/compiler-sfc@3.3.8", "@vue/compiler-sfc@^3.2.47", "@vue/compiler-sfc@^3.3.4": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1" + integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-ssr" "3.3.8" + "@vue/reactivity-transform" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + postcss "^8.4.31" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce" + integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== + dependencies: + "@vue/compiler-dom" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== + +"@vue/reactivity-transform@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2" + integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + +"@vue/reactivity@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d" + integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw== + dependencies: + "@vue/shared" "3.3.8" + +"@vue/runtime-core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb" + integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw== + dependencies: + "@vue/reactivity" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/runtime-dom@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4" + integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA== + dependencies: + "@vue/runtime-core" "3.3.8" + "@vue/shared" "3.3.8" + csstype "^3.1.2" + +"@vue/server-renderer@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2" + integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg== + dependencies: + "@vue/compiler-ssr" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/shared@3.3.8", "@vue/shared@^3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d" + integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== + +"@vueuse/core@10.5.0", "@vueuse/core@^10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.5.0.tgz#04d1e6d26592bb997bb755a4830ea7583c3e8612" + integrity sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A== + dependencies: + "@types/web-bluetooth" "^0.0.18" + "@vueuse/metadata" "10.5.0" + "@vueuse/shared" "10.5.0" + vue-demi ">=0.14.6" + +"@vueuse/core@^10.7.0": + version "10.7.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.7.0.tgz#34f2f02f179dc0dcffc2be70d6b1233e011404b9" + integrity sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.7.0" + "@vueuse/shared" "10.7.0" + vue-demi ">=0.14.6" + +"@vueuse/integrations@^10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.5.0.tgz#38f00bd5a1cd0160645f0c75efd5d9579061e3d6" + integrity sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ== + dependencies: + "@vueuse/core" "10.5.0" + "@vueuse/shared" "10.5.0" + vue-demi ">=0.14.6" + +"@vueuse/metadata@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.5.0.tgz#7501a88cf5cbf7a515a03f0b8bbe3cecf30cad11" + integrity sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw== + +"@vueuse/metadata@10.7.0": + version "10.7.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.7.0.tgz#7b05e6cfd376aa9bb339a81e16a89c12f3e88c03" + integrity sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA== + +"@vueuse/shared@10.5.0": + version "10.5.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.5.0.tgz#b3ac8c190a5dae41db5e1b60fe304a9b4247393c" + integrity sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg== + dependencies: + vue-demi ">=0.14.6" + +"@vueuse/shared@10.7.0": + version "10.7.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.7.0.tgz#21e425cc5ede421e0cda38ac59a0beee6da86b1b" + integrity sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw== + dependencies: + vue-demi ">=0.14.6" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@8.11.2, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.5.0, acorn@^8.6.0, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.1.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archiver-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-4.0.1.tgz#66ad15256e69589a77f706c90c6dbcc1b2775d2a" + integrity sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg== + dependencies: + glob "^8.0.0" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash "^4.17.15" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +archiver@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-6.0.1.tgz#d56968d4c09df309435adb5a1bbfc370dae48133" + integrity sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ== + dependencies: + archiver-utils "^4.0.1" + async "^3.2.4" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.1.2" + tar-stream "^3.0.0" + zip-stream "^5.0.1" + +are-docs-informative@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/are-docs-informative/-/are-docs-informative-0.0.2.tgz#387f0e93f5d45280373d387a59d34c96db321963" + integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +ast-kit@^0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/ast-kit/-/ast-kit-0.11.2.tgz#5951329c7fd311304cd30729619639323974893f" + integrity sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ== + dependencies: + "@babel/parser" "^7.22.14" + "@rollup/pluginutils" "^5.0.4" + pathe "^1.1.1" + +ast-kit@^0.9.4: + version "0.9.5" + resolved "https://registry.yarnpkg.com/ast-kit/-/ast-kit-0.9.5.tgz#88c0ba76b6f7f24c04ccf9ae778e33afc187dc80" + integrity sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg== + dependencies: + "@babel/parser" "^7.22.7" + "@rollup/pluginutils" "^5.0.2" + pathe "^1.1.1" + +ast-walker-scope@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/ast-walker-scope/-/ast-walker-scope-0.5.0.tgz#87e0ca4f34394d11ec4dea5925b8bda80b811819" + integrity sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q== + dependencies: + "@babel/parser" "^7.22.7" + ast-kit "^0.9.4" + +async-sema@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" + integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== + +async@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +autoprefixer@^10.4.16: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== + dependencies: + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +b4a@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" + integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +big-integer@^1.6.44: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +birpc@^0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.14.tgz#4a5498771e6ff24cf8ae5f47faf90e76ca2fce03" + integrity sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +bplist-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== + dependencies: + big-integer "^1.6.44" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== + dependencies: + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" + +buffer-crc32@^0.2.1: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +builtins@^5.0.0, builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +bundle-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== + dependencies: + run-applescript "^5.0.0" + +c12@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/c12/-/c12-1.5.1.tgz#41554f3cf6bc63b124e81e2b193f619aa60d4d84" + integrity sha512-BWZRJgDEveT8uI+cliCwvYSSSSvb4xKoiiu5S0jaDbKBopQLQF7E+bq9xKk1pTcG+mUa3yXuFO7bD9d8Lr9Xxg== + dependencies: + chokidar "^3.5.3" + defu "^6.1.2" + dotenv "^16.3.1" + giget "^1.1.3" + jiti "^1.20.0" + mlly "^1.4.2" + ohash "^1.1.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + rc9 "^2.1.1" + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +cacache@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.0.tgz#17a9ecd6e1be2564ebe6cdca5f7cfed2bfeb6ddc" + integrity sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001561" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz#752f21f56f96f1b1a52e97aae98c57c562d5d9da" + integrity sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +citty@^0.1.3, citty@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.4.tgz#91091be06ae4951dffa42fd443de7fe72245f2e0" + integrity sha512-Q3bK1huLxzQrvj7hImJ7Z1vKYJRPQCDnd0EjXfHMidcjecGOMuLrmuQmtWmFkuKLcMThlGh1yCKG8IEc6VeNXQ== + dependencies: + consola "^3.2.3" + +citty@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" + integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== + dependencies: + consola "^3.2.3" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clear@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/clear/-/clear-0.1.0.tgz#b81b1e03437a716984fd7ac97c87d73bdfe7048a" + integrity sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw== + +clipboardy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== + dependencies: + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.0.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +comment-parser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" + integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compress-commons@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-5.0.1.tgz#e46723ebbab41b50309b27a0e0f6f3baed2d6590" + integrity sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag== + dependencies: + crc-32 "^1.2.0" + crc32-stream "^5.0.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-es@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" + integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== + +core-js-pure@^3.30.2: + version "3.33.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" + integrity sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-5.0.0.tgz#a97d3a802c8687f101c27cc17ca5253327354720" + integrity sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +create-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-declaration-sorter@^6.3.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" + integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz#2a93247140d214ddb9f46bc6a3562fa9177fe301" + integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^4.0.0" + postcss-calc "^9.0.0" + postcss-colormin "^6.0.0" + postcss-convert-values "^6.0.0" + postcss-discard-comments "^6.0.0" + postcss-discard-duplicates "^6.0.0" + postcss-discard-empty "^6.0.0" + postcss-discard-overridden "^6.0.0" + postcss-merge-longhand "^6.0.0" + postcss-merge-rules "^6.0.1" + postcss-minify-font-values "^6.0.0" + postcss-minify-gradients "^6.0.0" + postcss-minify-params "^6.0.0" + postcss-minify-selectors "^6.0.0" + postcss-normalize-charset "^6.0.0" + postcss-normalize-display-values "^6.0.0" + postcss-normalize-positions "^6.0.0" + postcss-normalize-repeat-style "^6.0.0" + postcss-normalize-string "^6.0.0" + postcss-normalize-timing-functions "^6.0.0" + postcss-normalize-unicode "^6.0.0" + postcss-normalize-url "^6.0.0" + postcss-normalize-whitespace "^6.0.0" + postcss-ordered-values "^6.0.0" + postcss-reduce-initial "^6.0.0" + postcss-reduce-transforms "^6.0.0" + postcss-svgo "^6.0.0" + postcss-unique-selectors "^6.0.0" + +cssnano-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.0.tgz#d1da885ec04003ab19505ff0e62e029708d36b08" + integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== + +cssnano@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.1.tgz#87c38c4cd47049c735ab756d7e77ac3ca855c008" + integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== + dependencies: + cssnano-preset-default "^6.0.1" + lilconfig "^2.1.0" + +csso@5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +dayjs@^1.11.10: + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-browser-id@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== + dependencies: + bplist-parser "^0.2.0" + untildify "^4.0.0" + +default-browser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== + dependencies: + bundle-name "^3.0.0" + default-browser-id "^3.0.0" + execa "^7.1.1" + titleize "^3.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-lazy-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + +defu@^6.0.0, defu@^6.1.2, defu@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destr@^2.0.0, destr@^2.0.1, destr@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" + integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-libc@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + +devalue@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/devalue/-/devalue-4.3.2.tgz#cc44e4cf3872ac5a78229fbce3b77e57032727b5" + integrity sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg== + +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dijkstrajs@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" + integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-prop@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-8.0.2.tgz#afda6866610684dd155a96538f8efcdf78a27f18" + integrity sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ== + dependencies: + type-fest "^3.8.0" + +dotenv@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" + integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.535: + version "1.4.579" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.579.tgz#40ddec29bb5549908e82ccd652cf5da2e5900c23" + integrity sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encode-utf8@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" + integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +enhanced-resolve@^5.14.1: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser-es@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/error-stack-parser-es/-/error-stack-parser-es-0.1.1.tgz#9c1d2bbfbba8b51670062e7fbf43c6bcfb6eb4da" + integrity sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA== + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + 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" + +esbuild@^0.19.5: + version "0.19.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" + integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== + optionalDependencies: + "@esbuild/android-arm" "0.19.5" + "@esbuild/android-arm64" "0.19.5" + "@esbuild/android-x64" "0.19.5" + "@esbuild/darwin-arm64" "0.19.5" + "@esbuild/darwin-x64" "0.19.5" + "@esbuild/freebsd-arm64" "0.19.5" + "@esbuild/freebsd-x64" "0.19.5" + "@esbuild/linux-arm" "0.19.5" + "@esbuild/linux-arm64" "0.19.5" + "@esbuild/linux-ia32" "0.19.5" + "@esbuild/linux-loong64" "0.19.5" + "@esbuild/linux-mips64el" "0.19.5" + "@esbuild/linux-ppc64" "0.19.5" + "@esbuild/linux-riscv64" "0.19.5" + "@esbuild/linux-s390x" "0.19.5" + "@esbuild/linux-x64" "0.19.5" + "@esbuild/netbsd-x64" "0.19.5" + "@esbuild/openbsd-x64" "0.19.5" + "@esbuild/sunos-x64" "0.19.5" + "@esbuild/win32-arm64" "0.19.5" + "@esbuild/win32-ia32" "0.19.5" + "@esbuild/win32-x64" "0.19.5" + +esbuild@^0.19.6: + version "0.19.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.7.tgz#b9a7235097b81278dcf090e2532ed13c95a2ee84" + integrity sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ== + optionalDependencies: + "@esbuild/android-arm" "0.19.7" + "@esbuild/android-arm64" "0.19.7" + "@esbuild/android-x64" "0.19.7" + "@esbuild/darwin-arm64" "0.19.7" + "@esbuild/darwin-x64" "0.19.7" + "@esbuild/freebsd-arm64" "0.19.7" + "@esbuild/freebsd-x64" "0.19.7" + "@esbuild/linux-arm" "0.19.7" + "@esbuild/linux-arm64" "0.19.7" + "@esbuild/linux-ia32" "0.19.7" + "@esbuild/linux-loong64" "0.19.7" + "@esbuild/linux-mips64el" "0.19.7" + "@esbuild/linux-ppc64" "0.19.7" + "@esbuild/linux-riscv64" "0.19.7" + "@esbuild/linux-s390x" "0.19.7" + "@esbuild/linux-x64" "0.19.7" + "@esbuild/netbsd-x64" "0.19.7" + "@esbuild/openbsd-x64" "0.19.7" + "@esbuild/sunos-x64" "0.19.7" + "@esbuild/win32-arm64" "0.19.7" + "@esbuild/win32-ia32" "0.19.7" + "@esbuild/win32-x64" "0.19.7" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-compat-utils@^0.1.0, eslint-compat-utils@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz#f45e3b5ced4c746c127cf724fb074cd4e730d653" + integrity sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg== + +eslint-config-flat-gitignore@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-flat-gitignore/-/eslint-config-flat-gitignore-0.1.1.tgz#090654ecb09ee8c35d11c2bad0007815fbd744ad" + integrity sha512-ysq0QpN63+uaxE67U0g0HeCweIpv8Ztp7yvm0nYiM2TBalRIG6KQLO5J6lAz2gkA8KVis/QsJppe+BR5VigtWQ== + dependencies: + parse-gitignore "^2.0.0" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-antfu@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-antfu/-/eslint-plugin-antfu-1.0.11.tgz#2765c0ba54ee81e626ebef277617805f519822fa" + integrity sha512-m+RWX/D+Ep9xU7VTDYKG4UmDUV9bOa5/SU/fUwWcRyYGbEy3lgxlnhuxv+Zw5Ca/RlcabCFt+vxh62wo1RI/6w== + +eslint-plugin-es-x@^7.1.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.4.0.tgz#ae3132b5502c28821e3e6eb80314123a4143a87c" + integrity sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw== + dependencies: + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.6.0" + eslint-compat-utils "^0.1.2" + +eslint-plugin-eslint-comments@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" + integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== + dependencies: + escape-string-regexp "^1.0.5" + ignore "^5.0.5" + +eslint-plugin-i@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-i/-/eslint-plugin-i-2.29.0.tgz#6b7d407e7a9a23d84c5c330b69aeea198f2f3d10" + integrity sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w== + dependencies: + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + get-tsconfig "^4.6.2" + is-glob "^4.0.3" + minimatch "^3.1.2" + resolve "^1.22.3" + semver "^7.5.3" + +eslint-plugin-jsdoc@^46.9.0: + version "46.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz#9887569dbeef0a008a2770bfc5d0f7fc39f21f2b" + integrity sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q== + dependencies: + "@es-joy/jsdoccomment" "~0.41.0" + are-docs-informative "^0.0.2" + comment-parser "1.4.1" + debug "^4.3.4" + escape-string-regexp "^4.0.0" + esquery "^1.5.0" + is-builtin-module "^3.2.1" + semver "^7.5.4" + spdx-expression-parse "^3.0.1" + +eslint-plugin-jsonc@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.10.0.tgz#4286fd49a79ee3dd86f9c6c61b6f3c65f30b954f" + integrity sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + eslint-compat-utils "^0.1.2" + jsonc-eslint-parser "^2.0.4" + natural-compare "^1.4.0" + +eslint-plugin-markdown@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz#fc6765bdb5f82a75e2438d7fac619602f2abc38c" + integrity sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A== + dependencies: + mdast-util-from-markdown "^0.8.5" + +eslint-plugin-n@^16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz#6cd377d1349fed10854b6535392e91fb4123193b" + integrity sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + builtins "^5.0.1" + eslint-plugin-es-x "^7.1.0" + get-tsconfig "^4.7.0" + ignore "^5.2.4" + is-builtin-module "^3.2.1" + is-core-module "^2.12.1" + minimatch "^3.1.2" + resolve "^1.22.2" + semver "^7.5.3" + +eslint-plugin-no-only-tests@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz#f38e4935c6c6c4842bf158b64aaa20c366fe171b" + integrity sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw== + +eslint-plugin-perfectionist@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.5.0.tgz#f7f83733e18d1b26694c4aab1b986eac836773a7" + integrity sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ== + dependencies: + "@typescript-eslint/utils" "^6.13.0" + minimatch "^9.0.3" + natural-compare-lite "^1.4.0" + +eslint-plugin-unicorn@^49.0.0: + version "49.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz#4449ea954d7e1455eec8518f9417d7021b245fa8" + integrity sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + "@eslint-community/eslint-utils" "^4.4.0" + ci-info "^3.8.0" + clean-regexp "^1.0.0" + esquery "^1.5.0" + indent-string "^4.0.0" + is-builtin-module "^3.2.1" + jsesc "^3.0.2" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.27" + regjsparser "^0.10.0" + semver "^7.5.4" + strip-indent "^3.0.0" + +eslint-plugin-unused-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz#d25175b0072ff16a91892c3aa72a09ca3a9e69e7" + integrity sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw== + dependencies: + eslint-rule-composer "^0.3.0" + +eslint-plugin-vitest@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/eslint-plugin-vitest/-/eslint-plugin-vitest-0.3.10.tgz#236f8da89ffc10edc158d39fa61d13ff8759febc" + integrity sha512-08lj4rdhZHYyHk+Py2nJ7SlE6arP8GNfGXl9jVqhe9s5JoZIGiBpIkLGX+VNBiB6vXTn56H6Ant7Koc6XzRjtQ== + dependencies: + "@typescript-eslint/utils" "^6.11.0" + +eslint-plugin-vue@^9.19.1: + version "9.19.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz#7ab83a001a1ac8bccae013c5b9cb5d2c644fb376" + integrity sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + natural-compare "^1.4.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.13" + semver "^7.5.4" + vue-eslint-parser "^9.3.1" + xml-name-validator "^4.0.0" + +eslint-plugin-yml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-yml/-/eslint-plugin-yml-1.10.0.tgz#0c750253825ff352fb11b824d80864d8a2df3408" + integrity sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ== + dependencies: + debug "^4.3.2" + eslint-compat-utils "^0.1.0" + lodash "^4.17.21" + natural-compare "^1.4.0" + yaml-eslint-parser "^1.2.1" + +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.28.0: + version "8.53.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce" + integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.53.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.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +eslint@^8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.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.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.0.0, espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0, esquery@^1.4.2, esquery@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@2.0.2, estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +execa@^5.0.0, execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^7.1.1, execa@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +externality@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/externality/-/externality-1.0.2.tgz#a027f8cfd995c42fd35a8d794cfc224d4a5840c0" + integrity sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw== + dependencies: + enhanced-resolve "^5.14.1" + mlly "^1.3.0" + pathe "^1.1.1" + ufo "^1.1.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.1.0, fast-fifo@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^3.2.12, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" + integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== + dependencies: + locate-path "^7.2.0" + path-exists "^5.0.0" + unicorn-magic "^0.1.0" + +flat-cache@^3.0.4: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" + integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +focus-trap@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" + integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== + dependencies: + tabbable "^6.2.0" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^11.1.0, fs-extra@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +fuse.js@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.6.2.tgz#fe463fed4b98c0226ac3da2856a415576dc9a111" + integrity sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port-please@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-tsconfig@^4.6.2, get-tsconfig@^4.7.0: + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== + dependencies: + resolve-pkg-maps "^1.0.0" + +giget@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/giget/-/giget-1.1.3.tgz#574ed901031eafa732347a7990d84bfa6484c51a" + integrity sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q== + dependencies: + colorette "^2.0.20" + defu "^6.1.2" + https-proxy-agent "^7.0.2" + mri "^1.2.0" + node-fetch-native "^1.4.0" + pathe "^1.1.1" + tar "^6.2.0" + +git-config-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-2.0.0.tgz#62633d61af63af4405a5024efd325762f58a181b" + integrity sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA== + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^13.1.0: + version "13.1.1" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.1.tgz#664bddf0857c6a75b3c1f0ae6239abb08a1486d4" + integrity sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ== + dependencies: + git-up "^7.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.2.2, glob@^10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.0, glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== + dependencies: + ini "4.1.1" + +global-dirs@^3.0.0, global-dirs@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0, globals@^13.23.0: + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^13.2.2: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +globby@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" + integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== + dependencies: + "@sindresorhus/merge-streams" "^1.0.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gzip-size@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-7.0.0.tgz#9f9644251f15bc78460fccef4055ae5a5562ac60" + integrity sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA== + dependencies: + duplexer "^0.1.2" + +h3@^1.7.1, h3@^1.8.1, h3@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.8.2.tgz#69ea8ca0285c1bb268cd08b9a7017e02939f88b7" + integrity sha512-1Ca0orJJlCaiFY68BvzQtP2lKLk46kcLAxVM8JgYbtm2cUg6IY7pjpYgWMwUvDO9QI30N5JAukOKoT8KD3Q0PQ== + dependencies: + cookie-es "^1.0.0" + defu "^6.1.2" + destr "^2.0.1" + iron-webcrypto "^0.10.1" + radix3 "^1.1.0" + ufo "^1.3.0" + uncrypto "^0.1.3" + unenv "^1.7.4" + +h3@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" + integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== + dependencies: + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + iron-webcrypto "^1.0.0" + radix3 "^1.1.0" + ufo "^1.3.2" + uncrypto "^0.1.3" + unenv "^1.7.4" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +hookable@^5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" + integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + dependencies: + lru-cache "^10.0.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + 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: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.1, https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + +httpxy@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/httpxy/-/httpxy-0.1.5.tgz#fd2401206e0b5d919aeda25e967ece0f1a6c8569" + integrity sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ignore-walk@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" + integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== + dependencies: + minimatch "^9.0.0" + +ignore@^5.0.5, ignore@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +image-meta@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/image-meta/-/image-meta-0.1.1.tgz#a84dc7d5f61c7d60e85ec0c3ac81beee8646039b" + integrity sha512-+oXiHwOEPr1IE5zY0tcBLED/CYcre15J4nwL50x3o0jxWqEkyjrusiKP3YSU+tr9fvJp33ZcP5Gpj2295g3aEw== + +image-meta@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/image-meta/-/image-meta-0.2.0.tgz#ea28d05d52f5ad35f75b14f46278a44d626f48bc" + integrity sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg== + +imask@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/imask/-/imask-7.1.3.tgz#d07e6f50effe353630323a58baf25c2f7a83c2eb" + integrity sha512-jZCqTI5Jgukhl2ff+znBQd8BiHOTlnFYCIgggzHYDdoJsHmSSWr1BaejcYBxsjy4ZIs8Rm0HhbOxQcobcdESRQ== + dependencies: + "@babel/runtime-corejs3" "^7.22.6" + +immutable@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ioredis@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" + integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +iron-webcrypto@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-0.10.1.tgz#cab8636a468685533a8521bfd7f06b19b7174809" + integrity sha512-QGOS8MRMnj/UiOa+aMIgfyHcvkhqNUsUxb1XzskENvbo+rEfp6TOwqd1KPuDzXC4OnGHcMSVxDGRoilqB8ViqA== + +iron-webcrypto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" + integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== + +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-https@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-https/-/is-https-4.0.0.tgz#9ee725a334fb517b988278d2674efc96e4f348ed" + integrity sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-installed-globally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-1.0.0.tgz#08952c43758c33d815692392f7f8437b9e436d5a" + integrity sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ== + dependencies: + global-directory "^4.0.1" + is-path-inside "^4.0.0" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.2, is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-path-inside@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-4.0.0.tgz#805aeb62c47c1b12fc3fd13bfb3ed1e7430071db" + integrity sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA== + +is-primitive@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" + integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== + +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-reference@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jiti@^1.19.1, jiti@^1.20.0, jiti@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + +js-cookie@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsdoc-type-pratt-parser@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" + integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-eslint-parser@^2.0.4, jsonc-eslint-parser@^2.3.0, jsonc-eslint-parser@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz#74ded53f9d716e8d0671bd167bf5391f452d5461" + integrity sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg== + dependencies: + acorn "^8.5.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + semver "^7.3.5" + +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +knitwork@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-1.0.0.tgz#38d124dead875bee5feea1733632295af58a49d2" + integrity sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q== + +kolorist@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +launch-editor@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listhen@^1.2.2, listhen@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" + integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== + dependencies: + "@parcel/watcher" "^2.3.0" + "@parcel/watcher-wasm" "2.3.0" + citty "^0.1.4" + clipboardy "^3.0.0" + consola "^3.2.3" + defu "^6.1.2" + get-port-please "^3.1.1" + h3 "^1.8.1" + http-shutdown "^1.2.2" + jiti "^1.20.0" + mlly "^1.4.2" + node-forge "^1.3.1" + pathe "^1.1.1" + std-env "^3.4.3" + ufo "^1.3.0" + untun "^0.1.2" + uqr "^0.1.2" + +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^10.0.0, lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== + +lru-cache@^10.0.2: + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string-ast@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/magic-string-ast/-/magic-string-ast-0.3.0.tgz#8fc83ac6d084c5a342645a30354184a6e0ab4382" + integrity sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA== + dependencies: + magic-string "^0.30.2" + +magic-string@^0.30.0, magic-string@^0.30.1, magic-string@^0.30.2, magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +magicast@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/magicast/-/magicast-0.3.0.tgz#ff290510757da4cb55bc15cb90c9ef34db80a7f5" + integrity sha512-ZsEzw35h7xYoFlWHIyxU6zmH4sdwzdmY0DY4s/Lie/qKimeijz2jRw8/OV2248kt/y6FbvoTvGRKyB7y/Mpx8w== + dependencies: + "@babel/parser" "^7.22.16" + "@babel/types" "^7.22.19" + source-map-js "^1.0.2" + +magicast@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/magicast/-/magicast-0.3.2.tgz#42dcade5573ed8f10f5540f9d04964e21dba9130" + integrity sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg== + dependencies: + "@babel/parser" "^7.23.3" + "@babel/types" "^7.23.3" + source-map-js "^1.0.2" + +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-fetch-happen@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" + integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + ssri "^10.0.0" + +mdast-util-from-markdown@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromark@~2.11.0: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.2.0, mlly@^1.3.0, mlly@^1.4.0, mlly@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + dependencies: + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" + +mri@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +nanoid@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" + integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== + +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +nitropack@^2.6.3, nitropack@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-2.7.2.tgz#03b116acfcc7ec6f177a14dcf34a2a29fe0f1a61" + integrity sha512-6vQbGdBNR20N8wTChzIQUZQmNVhWVDrjUdpOYD68u2hlyUiJembth2fQuoWw3KlsoNYWFvcyqL9X3DPjjnoEUQ== + dependencies: + "@cloudflare/kv-asset-handler" "^0.3.0" + "@netlify/functions" "^2.3.0" + "@rollup/plugin-alias" "^5.0.1" + "@rollup/plugin-commonjs" "^25.0.7" + "@rollup/plugin-inject" "^5.0.5" + "@rollup/plugin-json" "^6.0.1" + "@rollup/plugin-node-resolve" "^15.2.3" + "@rollup/plugin-replace" "^5.0.4" + "@rollup/plugin-terser" "^0.4.4" + "@rollup/plugin-wasm" "^6.2.2" + "@rollup/pluginutils" "^5.0.5" + "@types/http-proxy" "^1.17.13" + "@vercel/nft" "^0.24.3" + archiver "^6.0.1" + c12 "^1.5.1" + chalk "^5.3.0" + chokidar "^3.5.3" + citty "^0.1.4" + consola "^3.2.3" + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + dot-prop "^8.0.2" + esbuild "^0.19.5" + escape-string-regexp "^5.0.0" + etag "^1.8.1" + fs-extra "^11.1.1" + globby "^13.2.2" + gzip-size "^7.0.0" + h3 "^1.8.2" + hookable "^5.5.3" + httpxy "^0.1.5" + is-primitive "^3.0.1" + jiti "^1.20.0" + klona "^2.0.6" + knitwork "^1.0.0" + listhen "^1.5.5" + magic-string "^0.30.5" + mime "^3.0.0" + mlly "^1.4.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ohash "^1.1.3" + openapi-typescript "^6.7.0" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + pretty-bytes "^6.1.1" + radix3 "^1.1.0" + rollup "^3.29.4" + rollup-plugin-visualizer "^5.9.2" + scule "^1.0.0" + semver "^7.5.4" + serve-placeholder "^2.0.1" + serve-static "^1.15.0" + std-env "^3.4.3" + ufo "^1.3.1" + uncrypto "^0.1.3" + unctx "^2.3.1" + unenv "^1.7.4" + unimport "^3.4.0" + unstorage "^1.9.0" + +nitropack@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-2.8.0.tgz#bf3afad7c23b96a3ccdb88f0b0f73d70e6633441" + integrity sha512-dkCILTSpM1Sd3oaagV21ifPxPOSCvFZjfdDMOa6SrxpcntitHkD1QgvjdbqEfnwGNPGbp7Z42qNhzNljDVeKMQ== + dependencies: + "@cloudflare/kv-asset-handler" "^0.3.0" + "@netlify/functions" "^2.4.0" + "@rollup/plugin-alias" "^5.0.1" + "@rollup/plugin-commonjs" "^25.0.7" + "@rollup/plugin-inject" "^5.0.5" + "@rollup/plugin-json" "^6.0.1" + "@rollup/plugin-node-resolve" "^15.2.3" + "@rollup/plugin-replace" "^5.0.5" + "@rollup/plugin-terser" "^0.4.4" + "@rollup/plugin-wasm" "^6.2.2" + "@rollup/pluginutils" "^5.0.5" + "@types/http-proxy" "^1.17.14" + "@vercel/nft" "^0.24.3" + archiver "^6.0.1" + c12 "^1.5.1" + chalk "^5.3.0" + chokidar "^3.5.3" + citty "^0.1.5" + consola "^3.2.3" + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + dot-prop "^8.0.2" + esbuild "^0.19.6" + escape-string-regexp "^5.0.0" + etag "^1.8.1" + fs-extra "^11.1.1" + globby "^14.0.0" + gzip-size "^7.0.0" + h3 "^1.9.0" + hookable "^5.5.3" + httpxy "^0.1.5" + is-primitive "^3.0.1" + jiti "^1.21.0" + klona "^2.0.6" + knitwork "^1.0.0" + listhen "^1.5.5" + magic-string "^0.30.5" + mime "^3.0.0" + mlly "^1.4.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ohash "^1.1.3" + openapi-typescript "^6.7.1" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + pretty-bytes "^6.1.1" + radix3 "^1.1.0" + rollup "^4.5.0" + rollup-plugin-visualizer "^5.9.2" + scule "^1.1.0" + semver "^7.5.4" + serve-placeholder "^2.0.1" + serve-static "^1.15.0" + std-env "^3.5.0" + ufo "^1.3.2" + uncrypto "^0.1.3" + unctx "^2.3.1" + unenv "^1.7.4" + unimport "^3.5.0" + unstorage "^1.10.1" + +node-addon-api@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" + integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== + +node-fetch-native@^1.2.0, node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" + integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== + +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-gyp-build@^4.2.2: + version "4.6.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.1.tgz#24b6d075e5e391b8d5539d98c7fc5c210cac8a3e" + integrity sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ== + +node-gyp@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + tar "^6.1.2" + which "^4.0.0" + +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + dependencies: + hosted-git-info "^7.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +npm-bundled@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.0.tgz#4e7f51fe1d5e69b19508ed8dc6cd3ae2e7b38c17" + integrity sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw== + dependencies: + ignore-walk "^6.0.0" + +npm-pick-manifest@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-registry-fetch@^16.0.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" + integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== + dependencies: + make-fetch-happen "^13.0.0" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^11.0.0" + proc-log "^3.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nth-check@^2.0.1, nth-check@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +nuxi@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.10.0.tgz#32db1c774d1829fbca7034135297e6c3e791b661" + integrity sha512-veZXw2NuaQ1PrpvHrnQ1dPgkAjv0WqPlvFReg5Iubum0QVGWdJJvGuNsltDQyPcZ7X7mhMXq9SLIpokK4kpvKA== + optionalDependencies: + fsevents "~2.3.3" + +nuxi@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.9.1.tgz#6123aef10935463a2bb1cb125d75b861cf9f41d7" + integrity sha512-4R4tcC2uQ5QCnHxyKoX5nZm/YUesCcQM3bZBKYU/8ZWrWjK6aPG6Q5zOQG1aLPkAotyahNsqtSiU/CrRoenEgA== + optionalDependencies: + fsevents "~2.3.3" + +nuxt@^3.6.2: + version "3.8.1" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.8.1.tgz#3afc2c2d6195df45b6028cc41b9164d89f840130" + integrity sha512-RSGO56Gv0x2f6AXWw4o4GoBaVdsD0qkPCjrX7Ud/jzH3cRJoyYMPuq/9AOLvf2o1ecZWl39j5elqJ4QHmggyOA== + dependencies: + "@nuxt/devalue" "^2.0.2" + "@nuxt/devtools" "^1.0.0" + "@nuxt/kit" "3.8.1" + "@nuxt/schema" "3.8.1" + "@nuxt/telemetry" "^2.5.2" + "@nuxt/ui-templates" "^1.3.1" + "@nuxt/vite-builder" "3.8.1" + "@unhead/dom" "^1.8.3" + "@unhead/ssr" "^1.8.3" + "@unhead/vue" "^1.8.3" + "@vue/shared" "^3.3.8" + acorn "8.11.2" + c12 "^1.5.1" + chokidar "^3.5.3" + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + devalue "^4.3.2" + esbuild "^0.19.5" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + fs-extra "^11.1.1" + globby "^13.2.2" + h3 "^1.8.2" + hookable "^5.5.3" + jiti "^1.21.0" + klona "^2.0.6" + knitwork "^1.0.0" + magic-string "^0.30.5" + mlly "^1.4.2" + nitropack "^2.7.2" + nuxi "^3.9.1" + nypm "^0.3.3" + ofetch "^1.3.3" + ohash "^1.1.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + radix3 "^1.1.0" + scule "^1.0.0" + std-env "^3.4.3" + strip-literal "^1.3.0" + ufo "^1.3.1" + ultrahtml "^1.5.2" + uncrypto "^0.1.3" + unctx "^2.3.1" + unenv "^1.7.4" + unimport "^3.4.0" + unplugin "^1.5.0" + unplugin-vue-router "^0.7.0" + untyped "^1.4.0" + vue "^3.3.8" + vue-bundle-renderer "^2.0.0" + vue-devtools-stub "^0.1.0" + vue-router "^4.2.5" + +nuxt@latest: + version "3.8.2" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.8.2.tgz#6db515d41e7745c725be7f34f692bdeabc53da07" + integrity sha512-HUAyifmqTs2zcQBGvcby3KNs2pBAk+l7ZbLjD1oCNqQQ+wBuZ1qgLC4Ebu++y4g3o3Y8WAWSvpafbKRLQZziPw== + dependencies: + "@nuxt/devalue" "^2.0.2" + "@nuxt/devtools" "^1.0.3" + "@nuxt/kit" "3.8.2" + "@nuxt/schema" "3.8.2" + "@nuxt/telemetry" "^2.5.2" + "@nuxt/ui-templates" "^1.3.1" + "@nuxt/vite-builder" "3.8.2" + "@unhead/dom" "^1.8.4" + "@unhead/ssr" "^1.8.4" + "@unhead/vue" "^1.8.4" + "@vue/shared" "^3.3.8" + acorn "8.11.2" + c12 "^1.5.1" + chokidar "^3.5.3" + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + devalue "^4.3.2" + esbuild "^0.19.6" + escape-string-regexp "^5.0.0" + estree-walker "^3.0.3" + fs-extra "^11.1.1" + globby "^14.0.0" + h3 "^1.9.0" + hookable "^5.5.3" + jiti "^1.21.0" + klona "^2.0.6" + knitwork "^1.0.0" + magic-string "^0.30.5" + mlly "^1.4.2" + nitropack "^2.8.0" + nuxi "^3.10.0" + nypm "^0.3.3" + ofetch "^1.3.3" + ohash "^1.1.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + pkg-types "^1.0.3" + radix3 "^1.1.0" + scule "^1.1.0" + std-env "^3.5.0" + strip-literal "^1.3.0" + ufo "^1.3.2" + ultrahtml "^1.5.2" + uncrypto "^0.1.3" + unctx "^2.3.1" + unenv "^1.7.4" + unimport "^3.5.0" + unplugin "^1.5.1" + unplugin-vue-router "^0.7.0" + untyped "^1.4.0" + vue "^3.3.8" + vue-bundle-renderer "^2.0.0" + vue-devtools-stub "^0.1.0" + vue-router "^4.2.5" + +nypm@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.3.tgz#e775fd8f62c3ed7d60958ede80911410cb792724" + integrity sha512-FHoxtTscAE723e80d2M9cJRb4YVjL82Ra+ZV+YqC6rfNZUWahi+ZhPF+krnR+bdMvibsfHCtgKXnZf5R6kmEPA== + dependencies: + citty "^0.1.4" + execa "^8.0.1" + pathe "^1.1.1" + ufo "^1.3.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +ofetch@^1.1.1, ofetch@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" + integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== + dependencies: + destr "^2.0.1" + node-fetch-native "^1.4.0" + ufo "^1.3.0" + +ohash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" + integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +open@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== + dependencies: + default-browser "^4.0.0" + define-lazy-prop "^3.0.0" + is-inside-container "^1.0.0" + is-wsl "^2.2.0" + +openapi-typescript@^6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.0.tgz#6d1a4dfc0db60b61573a3ea3c52984a79c638c67" + integrity sha512-eoUfJwhnMEug7euZ1dATG7iRiDVsEROwdPkhLUDiaFjcClV4lzft9F0Ii0fYjULCPNIiWiFi0BqMpSxipuvAgQ== + dependencies: + ansi-colors "^4.1.3" + fast-glob "^3.3.1" + js-yaml "^4.1.0" + supports-color "^9.4.0" + undici "^5.23.0" + yargs-parser "^21.1.1" + +openapi-typescript@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.1.tgz#5db6e88e17c746928ac7fcd327d6470896ac64dd" + integrity sha512-Q3Ltt0KUm2smcPrsaR8qKmSwQ1KM4yGDJVoQdpYa0yvKPeN8huDx5utMT7DvwvJastHHzUxajjivK3WN2+fobg== + dependencies: + ansi-colors "^4.1.3" + fast-glob "^3.3.1" + js-yaml "^4.1.0" + supports-color "^9.4.0" + undici "^5.27.2" + yargs-parser "^21.1.1" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +overlayscrollbars-vue@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/overlayscrollbars-vue/-/overlayscrollbars-vue-0.5.6.tgz#cae11d204ece52b170702c0cea15703869526731" + integrity sha512-gBraPkblG/pE6P74+q0vOnULzmD1sePth7S3D6Cb8hLLLrkJNE66cNWzxUgVPtUP3gp5PK6R3rZsxNNo3Xs3GQ== + +overlayscrollbars@^2.4.2: + version "2.4.4" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-2.4.4.tgz#95c3007114b047ef747f4ef443c6ced3d4143afd" + integrity sha512-792lwASLr3FlZER+/P7NseFQjffDEcQOg6HtyBSLrnb3crH+Ybk0tzaljQVQZs0pjGF/xFjyvMKin6whkL0RnQ== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pacote@^17.0.4: + version "17.0.4" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.4.tgz#4bac6c0745967bde96985ec12fbbfc8dea7140e8" + integrity sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^7.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + promise-retry "^2.0.1" + read-package-json "^7.0.0" + read-package-json-fast "^3.0.0" + sigstore "^2.0.0" + ssri "^10.0.0" + tar "^6.1.11" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-git-config@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-3.0.0.tgz#4a2de08c7b74a2555efa5ae94d40cd44302a6132" + integrity sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA== + dependencies: + git-config-path "^2.0.0" + ini "^1.3.5" + +parse-gitignore@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-gitignore/-/parse-gitignore-2.0.0.tgz#81156b265115c507129f3faea067b8476da3b642" + integrity sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog== + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + +perfect-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pinia@>=2.1.0: + version "2.1.7" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" + integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== + dependencies: + "@vue/devtools-api" "^6.5.0" + vue-demi ">=0.14.5" + +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + +postcss-calc@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.0.tgz#d4250652e952e1c0aca70c66942da93d3cdeaafe" + integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz#ec94a954957e5c3f78f0e8f65dfcda95280b8996" + integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz#9ca335e8b68919f301b24ba47dde226a42e535fe" + integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== + +postcss-discard-duplicates@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz#c26177a6c33070922e67e9a92c0fd23d443d1355" + integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== + +postcss-discard-empty@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz#06c1c4fce09e22d2a99e667c8550eb8a3a1b9aee" + integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== + +postcss-discard-overridden@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz#49c5262db14e975e349692d9024442de7cd8e234" + integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== + +postcss-merge-longhand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" + integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.0.0" + +postcss-merge-rules@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz#39f165746404e646c0f5c510222ccde4824a86aa" + integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz#68d4a028f9fa5f61701974724b2cc9445d8e6070" + integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz#22b5c88cc63091dadbad34e31ff958404d51d679" + integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== + dependencies: + colord "^2.9.1" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz#2b3a85a9e3b990d7a16866f430f5fd1d5961b539" + integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz#5046c5e8680a586e5a0cad52cc9aa36d6be5bda2" + integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-normalize-charset@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz#36cc12457259064969fb96f84df491652a4b0975" + integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== + +postcss-normalize-display-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz#8d2961415078644d8c6bbbdaf9a2fdd60f546cd4" + integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz#25b96df99a69f8925f730eaee0be74416865e301" + integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz#ddf30ad8762feb5b1eb97f39f251acd7b8353299" + integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz#948282647a51e409d69dde7910f0ac2ff97cb5d8" + integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz#5f13e650b8c43351989fc5de694525cc2539841c" + integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz#741b3310f874616bdcf07764f5503695d3604730" + integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz#d0a31e962a16401fb7deb7754b397a323fb650b4" + integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz#accb961caa42e25ca4179b60855b79b1f7129d4d" + integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz#374704cdff25560d44061d17ba3c6308837a3218" + integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== + dependencies: + cssnano-utils "^4.0.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz#7d16e83e60e27e2fa42f56ec0b426f1da332eca7" + integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz#28ff2601a6d9b96a2f039b3501526e1f4d584a46" + integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.0.tgz#7b18742d38d4505a0455bbe70d52b49f00eaf69d" + integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.0.2" + +postcss-unique-selectors@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz#c94e9b0f7bffb1203894e42294b5a1b3fb34fbe1" + integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.27, postcss@^8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== + +pretty-bytes@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.1.1.tgz#38cd6bb46f47afbf667c202cfc754bffd2016a3b" + integrity sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ== + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +qrcode@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170" + integrity sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== + dependencies: + dijkstrajs "^1.0.1" + encode-utf8 "^1.0.3" + pngjs "^5.0.0" + yargs "^15.3.1" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + +radix3@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" + integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +rc9@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.1.tgz#6614c32db7731b44cd48641ce68f373c3ee212a9" + integrity sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q== + dependencies: + defu "^6.1.2" + destr "^2.0.0" + flat "^5.0.2" + +read-package-json-fast@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-package-json@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" + integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== + dependencies: + glob "^10.2.2" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" + integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== + dependencies: + minimatch "^5.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regexp-tree@^0.1.27: + version "0.1.27" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== + +regjsparser@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.10.0.tgz#b1ed26051736b436f22fdec1c8f72635f9f44892" + integrity sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.10.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.3, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup-plugin-visualizer@^5.9.2: + version "5.9.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz#f1aa2d9b1be8ebd6869223c742324897464d8891" + integrity sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A== + dependencies: + open "^8.4.0" + picomatch "^2.3.1" + source-map "^0.7.4" + yargs "^17.5.1" + +rollup@^3.27.1, rollup@^3.29.4: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^4.5.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.5.1.tgz#95661ead5373d46e1c91b38fc1549bc59fc72aa4" + integrity sha512-0EQribZoPKpb5z1NW/QYm3XSR//Xr8BeEXU49Lc/mQmpmVVG5jPUVrpc2iptup/0WMrY9mzas0fxH+TjYvG2CA== + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.5.1" + "@rollup/rollup-android-arm64" "4.5.1" + "@rollup/rollup-darwin-arm64" "4.5.1" + "@rollup/rollup-darwin-x64" "4.5.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.5.1" + "@rollup/rollup-linux-arm64-gnu" "4.5.1" + "@rollup/rollup-linux-arm64-musl" "4.5.1" + "@rollup/rollup-linux-x64-gnu" "4.5.1" + "@rollup/rollup-linux-x64-musl" "4.5.1" + "@rollup/rollup-win32-arm64-msvc" "4.5.1" + "@rollup/rollup-win32-ia32-msvc" "4.5.1" + "@rollup/rollup-win32-x64-msvc" "4.5.1" + fsevents "~2.3.2" + +run-applescript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== + dependencies: + execa "^5.0.0" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass@^1.69.0: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +scule@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.0.0.tgz#895e6f4ba887e78d8b9b4111e23ae84fef82376d" + integrity sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ== + +scule@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scule/-/scule-1.1.0.tgz#cbc109256b4aa59fc8074151284cb8cb103531eb" + integrity sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g== + +"semver@2 || 3 || 4 || 5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.5.0, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + 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" + +serialize-javascript@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" + integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + dependencies: + randombytes "^2.1.0" + +serve-placeholder@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/serve-placeholder/-/serve-placeholder-2.0.1.tgz#dfa741812f49dfea472a68c4f292dbc40d28389a" + integrity sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ== + dependencies: + defu "^6.0.0" + +serve-static@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +signal-exit@^3.0.0, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.1.0.tgz#c577b596642b3f360dc4135d476466e6edeb2364" + integrity sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw== + dependencies: + "@sigstore/bundle" "^2.1.0" + "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/sign" "^2.1.0" + "@sigstore/tuf" "^2.1.0" + +simple-git@^3.20.0: + version "3.20.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.20.0.tgz#ff9c3f736d6b2bf0e3510209569d206aac84833d" + integrity sha512-ozK8tl2hvLts8ijTs18iFruE+RoqmC/mqZhjs/+V7gS5W68JpJ3+FCTmLVqmR59MaUQ52MfGQuWsIqfsTbbJ0Q== + dependencies: + "@kwsites/file-exists" "^1.1.1" + "@kwsites/promise-deferred" "^1.1.1" + debug "^4.3.4" + +simple-git@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.21.0.tgz#fb7b42749f53e7a53dfd213540d78b74e0aabe13" + integrity sha512-oTzw9248AF5bDTMk9MrxsRzEzivMlY+DWH0yWS4VYpMhNLhDWnN06pCtaUyPnqv/FpsdeNmRqmZugMABHRPdDA== + dependencies: + "@kwsites/file-exists" "^1.1.1" + "@kwsites/promise-deferred" "^1.1.1" + debug "^4.3.4" + +sirv@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" + integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +smob@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" + integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== + +socks-proxy-agent@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + +ssri@^10.0.0: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +std-env@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.4.3.tgz#326f11db518db751c83fd58574f449b7c3060910" + integrity sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q== + +std-env@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" + integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== + +streamx@^2.15.0: + version "2.15.2" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.2.tgz#680eacebdc9c43ede7362c2e6695b34dd413c741" + integrity sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-literal@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== + dependencies: + acorn "^8.10.0" + +stylehacks@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738" + integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +svgo@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.3.tgz#8cdfece6d4a0dc1dc116766d806daf817c1798b8" + integrity sha512-X4UZvLhOglD5Xrp834HzGHf8RKUW0Ahigg/08yRO1no9t2NxffOkMiQ0WmaMIbaGlVTlSst2zWANsdhz5ybXgA== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.2.1" + csso "5.0.5" + picocolors "^1.0.0" + +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-stream@^3.0.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" + integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + +tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser@^5.17.4: + version "5.24.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" + integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +tiny-invariant@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + +titleize@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + +tuf-js@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.1.0.tgz#87aa36d5a166e7522f1e2050eb502a3a9b0bde72" + integrity sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA== + dependencies: + "@tufjs/models" "2.0.0" + debug "^4.3.4" + make-fetch-happen "^13.0.0" + +turbo-darwin-64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-darwin-64/-/turbo-darwin-64-1.11.3.tgz#fb51f6fa030ee7a169d383b5f4f7641df6a3bdb8" + integrity sha512-IsOOg2bVbIt3o/X8Ew9fbQp5t1hTHN3fGNQYrPQwMR2W1kIAC6RfbVD4A9OeibPGyEPUpwOH79hZ9ydFH5kifw== + +turbo-darwin-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-darwin-arm64/-/turbo-darwin-arm64-1.11.3.tgz#f936cc7ba5565bd9be1ddc8ef4f15284044a63a5" + integrity sha512-FsJL7k0SaPbJzI/KCnrf/fi3PgCDCjTliMc/kEFkuWVA6Httc3Q4lxyLIIinz69q6JTx8wzh6yznUMzJRI3+dg== + +turbo-linux-64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-linux-64/-/turbo-linux-64-1.11.3.tgz#86f56a91c05eea512a187079f7f7f860d8168be6" + integrity sha512-SvW7pvTVRGsqtSkII5w+wriZXvxqkluw5FO/MNAdFw0qmoov+PZ237+37/NgArqE3zVn1GX9P6nUx9VO+xcQAg== + +turbo-linux-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-linux-arm64/-/turbo-linux-arm64-1.11.3.tgz#0001dab6ded89154e2a5be21e87720daba953056" + integrity sha512-YhUfBi1deB3m+3M55X458J6B7RsIS7UtM3P1z13cUIhF+pOt65BgnaSnkHLwETidmhRh8Dl3GelaQGrB3RdCDw== + +turbo-windows-64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-windows-64/-/turbo-windows-64-1.11.3.tgz#8d03c4fd8a46b81f2aecf60fc9845674c84d15a8" + integrity sha512-s+vEnuM2TiZuAUUUpmBHDr6vnNbJgj+5JYfnYmVklYs16kXh+EppafYQOAkcRIMAh7GjV3pLq5/uGqc7seZeHA== + +turbo-windows-arm64@1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo-windows-arm64/-/turbo-windows-arm64-1.11.3.tgz#cc436d1462f5450e97f985ba6d8d447272bb97db" + integrity sha512-ZR5z5Zpc7cASwfdRAV5yNScCZBsgGSbcwiA/u3farCacbPiXsfoWUkz28iyrx21/TRW0bi6dbsB2v17swa8bjw== + +turbo@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/turbo/-/turbo-1.11.3.tgz#3bd823043585e1acfe125727bcecd4f91ef2103b" + integrity sha512-RCJOUFcFMQNIGKSjC9YmA5yVP1qtDiBA0Lv9VIgrXraI5Da1liVvl3VJPsoDNIR9eFMyA/aagx1iyj6UWem5hA== + optionalDependencies: + turbo-darwin-64 "1.11.3" + turbo-darwin-arm64 "1.11.3" + turbo-linux-64 "1.11.3" + turbo-linux-arm64 "1.11.3" + turbo-windows-64 "1.11.3" + turbo-windows-arm64 "1.11.3" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-fest@^3.8.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +type-fest@^4.8.3: + version "4.9.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.9.0.tgz#d29c8efe5b1e703feeb29cef23d887b2f479844d" + integrity sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg== + +typescript@^4.9.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +ufo@^1.1.2, ufo@^1.2.0, ufo@^1.3.0, ufo@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.1.tgz#e085842f4627c41d4c1b60ebea1f75cdab4ce86b" + integrity sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw== + +ufo@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + +ultrahtml@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ultrahtml/-/ultrahtml-1.5.2.tgz#77be18c531adc4cda198b8767eda27df9427cc7f" + integrity sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw== + +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +unctx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.3.1.tgz#5eb4aa9f96fb5fdac18b88fe5ba8e122fe671a62" + integrity sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A== + dependencies: + acorn "^8.8.2" + estree-walker "^3.0.3" + magic-string "^0.30.0" + unplugin "^1.3.1" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +undici@^5.23.0, undici@^5.27.2: + version "5.27.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" + integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== + dependencies: + "@fastify/busboy" "^2.0.0" + +unenv@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.7.4.tgz#a0e5a78de2c7c3c4563c06ba9763c96c59db3333" + integrity sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw== + dependencies: + consola "^3.2.3" + defu "^6.1.2" + mime "^3.0.0" + node-fetch-native "^1.4.0" + pathe "^1.1.1" + +unhead@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/unhead/-/unhead-1.8.3.tgz#d6a609d7e4ce5fcd5a7e161164e73ebf7daa97f1" + integrity sha512-2/5NJs7nY1MgCkUNuyevALM9nSgGp2loRv5QPhYyZXUPdF+F76CpKvkqATEOEJ/1yDzWjCaWrNh4u5lS6BEioA== + dependencies: + "@unhead/dom" "1.8.3" + "@unhead/schema" "1.8.3" + "@unhead/shared" "1.8.3" + hookable "^5.5.3" + +unhead@1.8.8: + version "1.8.8" + resolved "https://registry.yarnpkg.com/unhead/-/unhead-1.8.8.tgz#66e294b85931a4a4bcd5b7450d8f28fd5ac8765a" + integrity sha512-SfUJ2kjz1NcfvdM+uEAlN11h31wHqMg0HZ5jriuRPjMCj5O7lPs4uSMdBUYh3KEo0uLKrW76FM85ONXkyZfm3g== + dependencies: + "@unhead/dom" "1.8.8" + "@unhead/schema" "1.8.8" + "@unhead/shared" "1.8.8" + hookable "^5.5.3" + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +unimport@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.4.0.tgz#e8302c2eabdfc6e23b65e02c3dfe592e427e8340" + integrity sha512-M/lfFEgufIT156QAr/jWHLUn55kEmxBBiQsMxvRSIbquwmeJEyQYgshHDEvQDWlSJrVOOTAgnJ3FvlsrpGkanA== + dependencies: + "@rollup/pluginutils" "^5.0.4" + escape-string-regexp "^5.0.0" + fast-glob "^3.3.1" + local-pkg "^0.4.3" + magic-string "^0.30.3" + mlly "^1.4.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + scule "^1.0.0" + strip-literal "^1.3.0" + unplugin "^1.5.0" + +unimport@^3.5.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.6.0.tgz#220884e22f9fcb0c0d994202d8066060f9f45f3b" + integrity sha512-yXW3Z30yk1vX8fxO8uHlq9wY9K+L56LHp4Hlbv8i7tW+NENSOv8AaFJUPtOQchxlT7/JBAzCtkrBtcVjKIr1VQ== + dependencies: + "@rollup/pluginutils" "^5.0.5" + escape-string-regexp "^5.0.0" + fast-glob "^3.3.2" + local-pkg "^0.5.0" + magic-string "^0.30.5" + mlly "^1.4.2" + pathe "^1.1.1" + pkg-types "^1.0.3" + scule "^1.1.0" + strip-literal "^1.3.0" + unplugin "^1.5.1" + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unplugin-icons@^0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/unplugin-icons/-/unplugin-icons-0.17.4.tgz#a05268d44a22703876f953c26107af3cfa04a936" + integrity sha512-PHLxjBx3ZV8RUBvfMafFl8uWH88jHeZgOijcRpkwgne7y2Ovx7WI0Ltzzw3fjZQ7dGaDhB8udyKVdm9N2S6BIw== + dependencies: + "@antfu/install-pkg" "^0.1.1" + "@antfu/utils" "^0.7.6" + "@iconify/utils" "^2.1.11" + debug "^4.3.4" + kolorist "^1.8.0" + local-pkg "^0.5.0" + unplugin "^1.5.0" + +unplugin-vue-components@^0.25.2: + version "0.25.2" + resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz#99d9d02a4066a24e720edbe74a82a4ee6ff86153" + integrity sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA== + dependencies: + "@antfu/utils" "^0.7.5" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.3.0" + local-pkg "^0.4.3" + magic-string "^0.30.1" + minimatch "^9.0.3" + resolve "^1.22.2" + unplugin "^1.4.0" + +unplugin-vue-router@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/unplugin-vue-router/-/unplugin-vue-router-0.7.0.tgz#27bd250c7dc698366cce70c5b72b97c3b3766c26" + integrity sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw== + dependencies: + "@babel/types" "^7.22.19" + "@rollup/pluginutils" "^5.0.4" + "@vue-macros/common" "^1.8.0" + ast-walker-scope "^0.5.0" + chokidar "^3.5.3" + fast-glob "^3.3.1" + json5 "^2.2.3" + local-pkg "^0.4.3" + mlly "^1.4.2" + pathe "^1.1.1" + scule "^1.0.0" + unplugin "^1.5.0" + yaml "^2.3.2" + +unplugin@^1.1.0, unplugin@^1.3.1, unplugin@^1.4.0, unplugin@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.0.tgz#8938ae84defe62afc7757df9ca05d27160f6c20c" + integrity sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A== + dependencies: + acorn "^8.10.0" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.5.0" + +unplugin@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" + integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== + dependencies: + acorn "^8.11.2" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.6.0" + +unstorage@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" + integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== + dependencies: + anymatch "^3.1.3" + chokidar "^3.5.3" + destr "^2.0.2" + h3 "^1.8.2" + ioredis "^5.3.2" + listhen "^1.5.5" + lru-cache "^10.0.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ufo "^1.3.1" + +unstorage@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.9.0.tgz#0c1977f4e769a48344339ac97ec3f2feea94d43d" + integrity sha512-VpD8ZEYc/le8DZCrny3bnqKE4ZjioQxBRnWE+j5sGNvziPjeDlaS1NaFFHzl/kkXaO3r7UaF8MGQrs14+1B4pQ== + dependencies: + anymatch "^3.1.3" + chokidar "^3.5.3" + destr "^2.0.1" + h3 "^1.7.1" + ioredis "^5.3.2" + listhen "^1.2.2" + lru-cache "^10.0.0" + mri "^1.2.0" + node-fetch-native "^1.2.0" + ofetch "^1.1.1" + ufo "^1.2.0" + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +untun@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" + integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== + dependencies: + citty "^0.1.3" + consola "^3.2.3" + pathe "^1.1.1" + +untyped@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-1.4.0.tgz#c2e84bea78372ca7841f179504d5596af4e85a89" + integrity sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q== + dependencies: + "@babel/core" "^7.22.9" + "@babel/standalone" "^7.22.9" + "@babel/types" "^7.22.5" + defu "^6.1.2" + jiti "^1.19.1" + mri "^1.2.0" + scule "^1.0.0" + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urlpattern-polyfill@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +vee-validate@4.12.4, vee-validate@^4.12.4: + version "4.12.4" + resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-4.12.4.tgz#57d1721711fef6921e165c486cfefd2f7fe80b2f" + integrity sha512-rqSjMdl0l/RiGKywKhkXttUKwDlQOoxTxe31uMQiMlwK4Hbtlvr3OcQvpREp/qPTARxNKudKWCUVW/mfzuxUVQ== + dependencies: + "@vue/devtools-api" "^6.5.1" + type-fest "^4.8.3" + +vite-node@^0.33.0: + version "0.33.0" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.33.0.tgz#c6a3a527e0b8090da7436241bc875760ae0eef28" + integrity sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + mlly "^1.4.0" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^3.0.0 || ^4.0.0" + +vite-plugin-checker@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz#3790381734440033e6cb3cee9d92fcfdd69a4d71" + integrity sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + ansi-escapes "^4.3.0" + chalk "^4.1.1" + chokidar "^3.5.1" + commander "^8.0.0" + fast-glob "^3.2.7" + fs-extra "^11.1.0" + lodash.debounce "^4.0.8" + lodash.pick "^4.4.0" + npm-run-path "^4.0.1" + semver "^7.5.0" + strip-ansi "^6.0.0" + tiny-invariant "^1.1.0" + vscode-languageclient "^7.0.0" + vscode-languageserver "^7.0.0" + vscode-languageserver-textdocument "^1.0.1" + vscode-uri "^3.0.2" + +vite-plugin-inspect@^0.7.40, vite-plugin-inspect@^0.7.42: + version "0.7.42" + resolved "https://registry.yarnpkg.com/vite-plugin-inspect/-/vite-plugin-inspect-0.7.42.tgz#e055ad2ff82f3eca2f101fcfb29b5fabfe1e7366" + integrity sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw== + dependencies: + "@antfu/utils" "^0.7.6" + "@rollup/pluginutils" "^5.0.5" + debug "^4.3.4" + error-stack-parser-es "^0.1.1" + fs-extra "^11.1.1" + open "^9.1.0" + picocolors "^1.0.0" + sirv "^2.0.3" + +vite-plugin-vue-inspector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-4.0.0.tgz#798e3723fd0298afb573902e690c8a96f509bf1f" + integrity sha512-xNjMbRj3YrebuuInTvlC8ghPtzT+3LjMIQPeeR/5CaFd+WcbA9wBnECZmlcP3GITCVED0SxGmTyoJ3iVKsK4vQ== + dependencies: + "@babel/core" "^7.23.0" + "@babel/plugin-proposal-decorators" "^7.23.0" + "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.22.15" + "@vue/babel-plugin-jsx" "^1.1.5" + "@vue/compiler-dom" "^3.3.4" + kolorist "^1.8.0" + magic-string "^0.30.4" + +"vite@^3.0.0 || ^4.0.0", vite@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vscode-jsonrpc@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" + integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg== + +vscode-languageclient@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" + integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg== + dependencies: + minimatch "^3.0.4" + semver "^7.3.4" + vscode-languageserver-protocol "3.16.0" + +vscode-languageserver-protocol@3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" + integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A== + dependencies: + vscode-jsonrpc "6.0.0" + vscode-languageserver-types "3.16.0" + +vscode-languageserver-textdocument@^1.0.1: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + +vscode-languageserver-types@3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== + +vscode-languageserver@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" + integrity sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw== + dependencies: + vscode-languageserver-protocol "3.16.0" + +vscode-uri@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + +vue-bundle-renderer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-2.0.0.tgz#ecab5c9b2803ab2454ba212afef502e684ddbb8e" + integrity sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A== + dependencies: + ufo "^1.2.0" + +vue-demi@>=0.13.0, vue-demi@>=0.14.5, vue-demi@>=0.14.6, vue-demi@^0.14.5: + version "0.14.6" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + +vue-demi@^0.13.5: + version "0.13.11" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== + +vue-devtools-stub@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz#a65b9485edecd4273cedcb8102c739b83add2c81" + integrity sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ== + +vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" + integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-final-modal@^4.4.6: + version "4.4.6" + resolved "https://registry.yarnpkg.com/vue-final-modal/-/vue-final-modal-4.4.6.tgz#d4783f9bdb0be6af7abf47a68298da46150ec115" + integrity sha512-YIYEQ4HhwPOBRTuV143QjgprAl2tY8598NdsfUX2H5Z212Lr5hoZnzEfct+Nclx+c4++NZOATXj2ddFJI4ahjw== + dependencies: + "@vueuse/core" "^10.5.0" + "@vueuse/integrations" "^10.5.0" + focus-trap "^7.5.4" + +vue-i18n-routing@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/vue-i18n-routing/-/vue-i18n-routing-1.1.4.tgz#94fca84ec9bb2ad857001323dd2b24e8831a9d37" + integrity sha512-RG6t7g9zklNoCOswTq2zy15siilw9rATmJkx5LYm9dqNBP2MR7yzTiwXpGVpfDHKl12SDWSRD0zzy13HekNEQQ== + dependencies: + "@intlify/shared" "^9.4.1" + "@intlify/vue-i18n-bridge" "^1.0.1" + "@intlify/vue-router-bridge" "^1.0.1" + ufo "^1.2.0" + vue-demi "^0.14.5" + +vue-i18n@9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.5.0.tgz#361a820f591f6d9689435a42763fd1dae224833b" + integrity sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg== + dependencies: + "@intlify/core-base" "9.5.0" + "@intlify/shared" "9.5.0" + "@vue/devtools-api" "^6.5.0" + +vue-router@^4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" + integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== + dependencies: + "@vue/devtools-api" "^6.5.0" + +vue@^3.3.8, vue@latest: + version "3.3.8" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc" + integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w== + dependencies: + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-sfc" "3.3.8" + "@vue/runtime-dom" "3.3.8" + "@vue/server-renderer" "3.3.8" + "@vue/shared" "3.3.8" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" + integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== + +webpack-virtual-modules@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f" + integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-eslint-parser@^1.2.1, yaml-eslint-parser@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz#1a9673ebe254328cfc2fa99f297f6d8c9364ccd8" + integrity sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg== + dependencies: + eslint-visitor-keys "^3.0.0" + lodash "^4.17.21" + yaml "^2.0.0" + +yaml@^2.0.0, yaml@^2.3.2: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.5.1, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== + +zhead@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/zhead/-/zhead-2.2.4.tgz#87cd1e2c3d2f465fa9f43b8db23f9716dfe6bed7" + integrity sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag== + +zip-stream@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-5.0.1.tgz#cf3293bba121cad98be2ec7f05991d81d9f18134" + integrity sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA== + dependencies: + archiver-utils "^4.0.1" + compress-commons "^5.0.1" + readable-stream "^3.6.0"