From cb5d75af93e959d2e2a9ca14d05761e0ffe36463 Mon Sep 17 00:00:00 2001 From: JacobLinCool Date: Sun, 4 Feb 2024 05:17:14 +0800 Subject: [PATCH 01/13] feat: new api --- .devcontainer/Dockerfile | 24 - .devcontainer/devcontainer.json | 50 - .devcontainer/docker-compose.yml | 10 - .github/workflows/build.yml | 5 +- .github/workflows/release.yml | 5 +- .github/workflows/test.yml | 5 +- .gitignore | 1 + .prettierrc.yml | 13 +- README.md | 39 +- examples/node-template.js | 38 - jest.config.js | 4 - locales/en.json | 2 +- locales/zh-TW.json | 2 +- package.json | 102 +- pnpm-lock.yaml | 5370 +++++++++++------- src/api/config/GET.ts | 40 + src/api/config/[key]/GET.ts | 37 + src/api/config/[key]/PUT.ts | 41 + src/api/config/mainkey/PUT.ts | 29 + src/api/healthcheck/GET.ts | 28 + src/api/index.ts | 48 + src/api/send/POST.ts | 122 + src/api/token/GET.ts | 62 + src/api/token/POST.ts | 57 + src/api/token/[id]/DELETE.ts | 39 + src/api/token/[id]/GET.ts | 32 + src/api/token/[id]/records/GET.ts | 36 + src/app.d.ts | 9 +- src/hooks.server.ts | 51 +- src/lib/mainkey.ts | 7 + src/lib/server/config.ts | 60 +- src/lib/server/db/index.ts | 71 + src/lib/server/db/schema.ts | 26 + src/lib/server/token.ts | 12 + src/routes/api/config/+server.ts | 3 + src/routes/api/config/[key]/+server.ts | 5 + src/routes/api/config/mainkey/+server.ts | 4 + src/routes/api/healthcheck/+server.ts | 3 + src/routes/api/key/+server.ts | 51 - src/routes/api/key/[id]/+server.ts | 29 - src/routes/api/keys/+server.ts | 41 - src/routes/api/openapi.json/+server.ts | 6 + src/routes/api/send/+server.ts | 102 +- src/routes/api/template/[id]/+server.ts | 12 - src/routes/api/token/+server.ts | 5 + src/routes/api/token/[id]/+server.ts | 5 + src/routes/api/token/[id]/records/+server.ts | 3 + svelte.config.js | 3 +- 48 files changed, 4157 insertions(+), 2592 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .devcontainer/docker-compose.yml delete mode 100644 examples/node-template.js delete mode 100644 jest.config.js create mode 100644 src/api/config/GET.ts create mode 100644 src/api/config/[key]/GET.ts create mode 100644 src/api/config/[key]/PUT.ts create mode 100644 src/api/config/mainkey/PUT.ts create mode 100644 src/api/healthcheck/GET.ts create mode 100644 src/api/index.ts create mode 100644 src/api/send/POST.ts create mode 100644 src/api/token/GET.ts create mode 100644 src/api/token/POST.ts create mode 100644 src/api/token/[id]/DELETE.ts create mode 100644 src/api/token/[id]/GET.ts create mode 100644 src/api/token/[id]/records/GET.ts create mode 100644 src/lib/mainkey.ts create mode 100644 src/lib/server/db/index.ts create mode 100644 src/lib/server/db/schema.ts create mode 100644 src/lib/server/token.ts create mode 100644 src/routes/api/config/+server.ts create mode 100644 src/routes/api/config/[key]/+server.ts create mode 100644 src/routes/api/config/mainkey/+server.ts create mode 100644 src/routes/api/healthcheck/+server.ts delete mode 100644 src/routes/api/key/+server.ts delete mode 100644 src/routes/api/key/[id]/+server.ts delete mode 100644 src/routes/api/keys/+server.ts create mode 100644 src/routes/api/openapi.json/+server.ts delete mode 100644 src/routes/api/template/[id]/+server.ts create mode 100644 src/routes/api/token/+server.ts create mode 100644 src/routes/api/token/[id]/+server.ts create mode 100644 src/routes/api/token/[id]/records/+server.ts diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 61ff228..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mcr.microsoft.com/devcontainers/base:ubuntu - -ENV PNPM_HOME="/usr/local/share/pnpm" -ENV PATH="$PNPM_HOME:$PATH" - -RUN export DEBIAN_FRONTEND=noninteractive && \ - rm -f /bin/sh && \ - ln -s /bin/bash /bin/sh && \ - apt update && \ - apt upgrade -y && \ - apt install -y software-properties-common && \ - add-apt-repository -y ppa:git-core/ppa && \ - apt update && \ - apt install -y git bash-completion htop jq lsof less curl zip unzip tree python3 build-essential && \ - apt autoremove -y && \ - rm -f /usr/bin/python && \ - ln -s /usr/bin/python3 /usr/bin/python - -RUN curl -fsSL https://get.pnpm.io/install.sh | sh - && \ - pnpm env use -g lts && \ - sudo rm -rf /tmp/* && \ - chmod -R 777 /usr/local/share/pnpm - -RUN pnpm i -g pnpm taze tsx prettier @changesets/cli serve diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index b1fe319..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "workspace", - "dockerComposeFile": "docker-compose.yml", - "service": "workspace", - "workspaceFolder": "/workspace", - "customizations": { - "vscode": { - "settings": { - "[svelte]": { - "editor.formatOnSave": true - }, - "[typescript]": { - "editor.formatOnSave": true - }, - "[json]": { - "editor.formatOnSave": true - }, - "i18n-ally.localesPaths": ["locales"], - "i18n-ally.keystyle": "nested", - "i18n-ally.sortKeys": true, - "i18n-ally.keepFulfilled": true, - "i18n-ally.extract.parsers.html": { - "attributes": ["text", "title", "alt", "placeholder", "label", "aria-label"], - "ignoredTags": ["script", "style"], - "inlineText": true - }, - "i18n-ally.extract.autoDetect": true, - "i18n-ally.refactor.templates": [ - { - "source": "html-attribute", - "templates": ["{$t('{key}'{args})}"], - "include": ["src/**/*.{svelte,ts}", "index.html"] - } - ] - }, - "extensions": [ - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "GitHub.copilot", - "GitHub.copilot-labs", - "svelte.svelte-vscode", - "bradlc.vscode-tailwindcss", - "antfu.iconify", - "lokalise.i18n-ally" - ] - } - }, - "onCreateCommand": "pnpm config set -g store-dir /workspace/node_modules/.pnpm-store", - "postStartCommand": "pnpm i" -} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100644 index be280d4..0000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: "3.9" - -services: - workspace: - build: - context: . - dockerfile: Dockerfile - volumes: - - ..:/workspace - command: sleep infinity diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4776c93..3de075f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,12 +13,11 @@ jobs: deployments: write steps: - name: Checkout Repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PNPM - uses: pnpm/action-setup@v2.2.4 + uses: pnpm/action-setup@v2 with: - version: latest run_install: true - name: Build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4a30aea..0c5da38 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,12 +18,11 @@ jobs: pull-requests: write steps: - name: Checkout Repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PNPM - uses: pnpm/action-setup@v2.2.4 + uses: pnpm/action-setup@v2 with: - version: latest run_install: true - name: Build diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e1a8631..ed8e57e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,12 +15,11 @@ jobs: steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PNPM - uses: pnpm/action-setup@v2.2.4 + uses: pnpm/action-setup@v2 with: - version: latest run_install: true - name: Build All diff --git a/.gitignore b/.gitignore index 705fd58..1925979 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,4 @@ dist docs .svelte-kit +db.sqlite diff --git a/.prettierrc.yml b/.prettierrc.yml index 2735042..eb2c19c 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -15,13 +15,6 @@ overrides: parser: "svelte" plugins: - - ./node_modules/prettier-plugin-svelte - - ./node_modules/prettier-plugin-tailwindcss - - ./node_modules/@trivago/prettier-plugin-sort-imports/lib/src/index.js -pluginSearchDirs: false - -importOrder: - - "^node:" - - "^[^@.]" - - "^@" - - "^\\." + - prettier-plugin-svelte + - prettier-plugin-tailwindcss + - prettier-plugin-organize-imports diff --git a/README.md b/README.md index 8cdbd2a..e780f94 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,34 @@ -# ![](./static/hermes-xs.png) Hermes, mail service +# ![icon](./static/hermes-xs.png) Hermes, mail service Hermes is an open-source edge email sending service, which is designed to be easy to setup and use. Example: [https://hermes.csie.cool/](https://hermes.csie.cool/) -| English | Chinese | -|:-------------------------:|:-------------------------:| -|![en](./screenshots/hermes-owner-en.png)|![](./screenshots/hermes-owner-zh.png)| +| English | Chinese | +| :--------------------------------------: | :--------------------------------------: | +| ![en](./screenshots/hermes-owner-en.png) | ![zh](./screenshots/hermes-owner-zh.png) | ## Features -- [x] Easy to Setup - You only need a browser to setup the service -- [x] Token-based authentication - Use allowlist and TTL to control the access -- [x] Web UI - Control the service from the anywhere -- [x] I18n - The web UI supports multiple languages (currently, English and Chinese) +### Ease of Use -## Getting Started +- Manage the service through a web UI +- I18n support (currently, English and Chinese) -> First, you need to have a domain that is managed by Cloudflare. +### Secure -1. Fork the repository -2. Setup the [Cloudflare Pages](https://pages.cloudflare.com/) for your forked repository -3. Binding a KV namespace to your Cloudflare Pages project as `STORE` -4. Set the `app:config` key in the KV namespace to the following JSON: +- Token-based Authentication +- Address and Domain Allowlist +- Auto Expiration -```json -{ - "MAIN_KEY": "YOUR_MAIN_KEY" -} -``` +## Getting Started -> You can also set other configurations in the `app:config` key, see [config.ts](./src/lib/server/config.ts) for more details. -> For example, you can set `CORS` to `"*"` to allow CORS requests from anywhere. +> First, you need to have a domain managed by Cloudflare. + +1. [Fork the repository](https://github.com/JacobLinCool/hermes-mail-service/fork) +2. Setup the [Cloudflare Pages](https://pages.cloudflare.com/) for your forked repository +3. Binding a D1 database to your Cloudflare Pages project as `D1` +4. Open the web UI! All of the above can be done in the browser! No need to install anything. diff --git a/examples/node-template.js b/examples/node-template.js deleted file mode 100644 index 9bab045..0000000 --- a/examples/node-template.js +++ /dev/null @@ -1,38 +0,0 @@ -// This is a Node.js example, send email with template -const jwt = process.env.JWT; -if (!jwt) { - console.error("Please set JWT environment variable"); - process.exit(1); -} - -const endpoint = "https://feat-template.mailing.pages.dev/api/send"; - -console.log("Sending email ..."); - -fetch(endpoint, { - method: "POST", - headers: { - Authorization: `Bearer ${jwt}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ - from: { - email: "hermes@csie.cool", - name: "Hermes", - }, - to: ["jacoblincool@gmail.com"], - subject: "Greetings from Hermes", - content: { - template: "test", - params: { - name: "Jacob", - }, - }, - }), -}).then(async (res) => { - if (res.ok) { - console.log("Email sent successfully!"); - } else { - console.error("Failed to send email", res.status, await res.text()); - } -}); diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 8d0bcb6..0000000 --- a/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: "ts-jest", - testEnvironment: "node", -}; diff --git a/locales/en.json b/locales/en.json index 60aa82e..c4f8072 100644 --- a/locales/en.json +++ b/locales/en.json @@ -1,7 +1,7 @@ { "after-you-have-completed-the-setup-you-can-generate-a-token-and-use-it-to-send-emails-through-the-api": "After you have completed the setup, you can generate a token and use it to send emails through the API.", "allowlist": "Allowlist", - "bind-a-kv-namespace": "Bind a KV namespace", + "bind-a-d1-database": "Bind a D1 database", "create-token": "Create Token", "errors": { "config-not-set": "`app:config` is not set in STORE KV, please set it before start using the service", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 5079d74..088cce6 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -1,7 +1,7 @@ { "after-you-have-completed-the-setup-you-can-generate-a-token-and-use-it-to-send-emails-through-the-api": "完成設置後,你可以生成授權碼(token)並使用它通過 API 發送電子郵件。", "allowlist": "許可列表", - "bind-a-kv-namespace": "連結一個 KV 命名空間", + "bind-a-d1-database": "連結一個 D1 資料庫", "create-token": "建立授權", "errors": { "config-not-set": "無法在 STORE 找到 `app:config` 的值,請先透過 Cloudflare 儀表板設定它", diff --git a/package.json b/package.json index 46b4b4d..0feebda 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "version": "1.2.0", "license": "MIT", "scripts": { - "prepare": "husky install", + "prepare": "husky", "dev": "vite dev", "build": "tsx scripts/build-templates.ts && vite build", "preview": "vite preview", @@ -18,51 +18,60 @@ "format": "prettier --ignore-path .gitignore --write **/*.{ts,js,json,yaml,yml,svelte,html,css}" }, "devDependencies": { - "@changesets/changelog-github": "^0.4.8", - "@changesets/cli": "^2.26.0", - "@cloudflare/workers-types": "^4.20230115.0", - "@iconify/svelte": "^3.1.0", - "@playwright/test": "^1.30.0", - "@sveltejs/adapter-cloudflare": "^2.0.1", - "@sveltejs/kit": "^1.5.6", - "@tailwindcss/typography": "^0.5.9", - "@trivago/prettier-plugin-sort-imports": "^4.0.0", - "@tsndr/cloudflare-worker-jwt": "^2.2.1", - "@types/cookie": "^0.5.1", - "@types/debug": "^4.1.7", - "@types/jest": "^29.4.0", - "@types/node": "^18.13.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "autoprefixer": "^10.4.13", - "daisyui": "^2.50.0", + "@changesets/changelog-github": "^0.5.0", + "@changesets/cli": "^2.27.1", + "@cloudflare/workers-types": "^4.20240129.0", + "@iconify/svelte": "^3.1.6", + "@playwright/test": "^1.41.2", + "@sveltejs/adapter-cloudflare": "^4.1.0", + "@sveltejs/kit": "^2.5.0", + "@sveltejs/vite-plugin-svelte": "^3.0.2", + "@tailwindcss/typography": "^0.5.10", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "@tsndr/cloudflare-worker-jwt": "^2.4.5", + "@types/cookie": "^0.6.0", + "@types/debug": "^4.1.12", + "@types/jest": "^29.5.12", + "@types/node": "^20.11.16", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "autoprefixer": "^10.4.17", + "better-sqlite3": "^9.3.0", + "cloudflare-email": "^0.0.8", + "cloudflare-email-mailchannels": "^0.0.1", + "daisyui": "^4.6.1", "debug": "^4.3.4", - "eslint": "^8.34.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-svelte3": "^4.0.0", - "husky": "^8.0.3", - "jest": "^29.4.2", - "lint-staged": "^13.1.1", - "postcss": "^8.4.21", - "prettier": "^2.8.4", - "prettier-plugin-svelte": "^2.9.0", - "prettier-plugin-tailwindcss": "^0.2.2", - "serve": "^14.2.0", - "svelte": "^3.55.1", - "svelte-check": "^3.0.3", - "svelte-i18n": "^3.6.0", - "tailwindcss": "^3.2.6", - "ts-jest": "^29.0.5", - "tslib": "^2.5.0", - "tsup": "^6.6.2", - "tsx": "^3.12.3", - "typedoc": "^0.23.25", - "typescript": "^4.9.5", - "vite": "^4.1.1", - "vitest": "^0.28.4", - "wrangler": "^2.9.1", - "zod": "^3.20.6", - "zod-validation-error": "^0.3.1" + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "husky": "^9.0.10", + "jest": "^29.7.0", + "kysely-d1": "^0.3.0", + "lint-staged": "^15.2.1", + "mimetext": "^3.0.16", + "postcss": "^8.4.33", + "prettier": "^3.2.4", + "prettier-plugin-organize-imports": "^3.2.4", + "prettier-plugin-svelte": "^3.1.2", + "prettier-plugin-tailwindcss": "^0.5.11", + "serve": "^14.2.1", + "svelte": "^4.2.9", + "svelte-check": "^3.6.3", + "svelte-i18n": "^4.0.0", + "sveltekit-api": "^0.4.1", + "sveltekit-db": "^0.2.0", + "tailwindcss": "^3.4.1", + "ts-jest": "^29.1.2", + "tslib": "^2.6.2", + "tsup": "^8.0.1", + "tsx": "^4.7.0", + "typedoc": "^0.25.7", + "typescript": "^5.3.3", + "vite": "^5.0.12", + "vitest": "^1.2.2", + "wrangler": "^3.26.0", + "zod": "^3.22.4", + "zod-validation-error": "^3.0.0" }, "lint-staged": { "*.{ts,js,json,yaml,yml,svelte,html,css}": [ @@ -76,5 +85,6 @@ "bugs": { "url": "https://github.com/JacobLinCool/hermes-mail-service/issues" }, - "homepage": "https://jacoblincool.github.io/hermes-mail-service" + "homepage": "https://jacoblincool.github.io/hermes-mail-service", + "packageManager": "pnpm@8.15.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1744dd..5f215cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,140 +8,167 @@ importers: .: devDependencies: "@changesets/changelog-github": - specifier: ^0.4.8 - version: 0.4.8 + specifier: ^0.5.0 + version: 0.5.0 "@changesets/cli": - specifier: ^2.26.0 - version: 2.26.0 + specifier: ^2.27.1 + version: 2.27.1 "@cloudflare/workers-types": - specifier: ^4.20230115.0 - version: 4.20230115.0 + specifier: ^4.20240129.0 + version: 4.20240129.0 "@iconify/svelte": - specifier: ^3.1.0 - version: 3.1.0(svelte@3.55.1) + specifier: ^3.1.6 + version: 3.1.6(svelte@4.2.9) "@playwright/test": - specifier: ^1.30.0 - version: 1.30.0 + specifier: ^1.41.2 + version: 1.41.2 "@sveltejs/adapter-cloudflare": - specifier: ^2.0.1 - version: 2.0.1(@sveltejs/kit@1.5.6) + specifier: ^4.1.0 + version: 4.1.0(@sveltejs/kit@2.5.0) "@sveltejs/kit": - specifier: ^1.5.6 - version: 1.5.6(svelte@3.55.1)(vite@4.1.1) + specifier: ^2.5.0 + version: 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + "@sveltejs/vite-plugin-svelte": + specifier: ^3.0.2 + version: 3.0.2(svelte@4.2.9)(vite@5.0.12) "@tailwindcss/typography": - specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.2.6) + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.1) "@trivago/prettier-plugin-sort-imports": - specifier: ^4.0.0 - version: 4.0.0(@vue/compiler-sfc@3.3.4)(prettier@2.8.4) + specifier: ^4.3.0 + version: 4.3.0(prettier@3.2.4) "@tsndr/cloudflare-worker-jwt": - specifier: ^2.2.1 - version: 2.2.1 + specifier: ^2.4.5 + version: 2.4.5 "@types/cookie": - specifier: ^0.5.1 - version: 0.5.1 + specifier: ^0.6.0 + version: 0.6.0 "@types/debug": - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.12 + version: 4.1.12 "@types/jest": - specifier: ^29.4.0 - version: 29.4.0 + specifier: ^29.5.12 + version: 29.5.12 "@types/node": - specifier: ^18.13.0 - version: 18.13.0 + specifier: ^20.11.16 + version: 20.11.16 "@typescript-eslint/eslint-plugin": - specifier: ^5.51.0 - version: 5.51.0(@typescript-eslint/parser@5.51.0)(eslint@8.34.0)(typescript@4.9.5) + specifier: ^6.20.0 + version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) "@typescript-eslint/parser": - specifier: ^5.51.0 - version: 5.51.0(eslint@8.34.0)(typescript@4.9.5) + specifier: ^6.20.0 + version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) autoprefixer: - specifier: ^10.4.13 - version: 10.4.13(postcss@8.4.21) + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.33) + better-sqlite3: + specifier: ^9.3.0 + version: 9.3.0 + cloudflare-email: + specifier: ^0.0.8 + version: 0.0.8 + cloudflare-email-mailchannels: + specifier: ^0.0.1 + version: 0.0.1(mimetext@3.0.16) daisyui: - specifier: ^2.50.0 - version: 2.50.0(autoprefixer@10.4.13)(postcss@8.4.21) + specifier: ^4.6.1 + version: 4.6.1(postcss@8.4.33) debug: specifier: ^4.3.4 version: 4.3.4 eslint: - specifier: ^8.34.0 - version: 8.34.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-prettier: - specifier: ^8.6.0 - version: 8.6.0(eslint@8.34.0) - eslint-plugin-svelte3: - specifier: ^4.0.0 - version: 4.0.0(eslint@8.34.0)(svelte@3.55.1) + specifier: ^9.1.0 + version: 9.1.0(eslint@8.56.0) + eslint-plugin-svelte: + specifier: ^2.35.1 + version: 2.35.1(eslint@8.56.0)(svelte@4.2.9) husky: - specifier: ^8.0.3 - version: 8.0.3 + specifier: ^9.0.10 + version: 9.0.10 jest: - specifier: ^29.4.2 - version: 29.4.2(@types/node@18.13.0) + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.11.16) + kysely-d1: + specifier: ^0.3.0 + version: 0.3.0(kysely@0.25.0) lint-staged: - specifier: ^13.1.1 - version: 13.1.1 + specifier: ^15.2.1 + version: 15.2.1 + mimetext: + specifier: ^3.0.16 + version: 3.0.16 postcss: - specifier: ^8.4.21 - version: 8.4.21 + specifier: ^8.4.33 + version: 8.4.33 prettier: - specifier: ^2.8.4 - version: 2.8.4 + specifier: ^3.2.4 + version: 3.2.4 + prettier-plugin-organize-imports: + specifier: ^3.2.4 + version: 3.2.4(prettier@3.2.4)(typescript@5.3.3) prettier-plugin-svelte: - specifier: ^2.9.0 - version: 2.9.0(prettier@2.8.4)(svelte@3.55.1) + specifier: ^3.1.2 + version: 3.1.2(prettier@3.2.4)(svelte@4.2.9) prettier-plugin-tailwindcss: - specifier: ^0.2.2 - version: 0.2.2(@trivago/prettier-plugin-sort-imports@4.0.0)(prettier-plugin-svelte@2.9.0)(prettier@2.8.4) + specifier: ^0.5.11 + version: 0.5.11(@trivago/prettier-plugin-sort-imports@4.3.0)(prettier-plugin-organize-imports@3.2.4)(prettier-plugin-svelte@3.1.2)(prettier@3.2.4) serve: - specifier: ^14.2.0 - version: 14.2.0 + specifier: ^14.2.1 + version: 14.2.1 svelte: - specifier: ^3.55.1 - version: 3.55.1 + specifier: ^4.2.9 + version: 4.2.9 svelte-check: - specifier: ^3.0.3 - version: 3.0.3(@babel/core@7.20.12)(postcss@8.4.21)(svelte@3.55.1) + specifier: ^3.6.3 + version: 3.6.3(@babel/core@7.20.12)(postcss@8.4.33)(svelte@4.2.9) svelte-i18n: - specifier: ^3.6.0 - version: 3.6.0(svelte@3.55.1) + specifier: ^4.0.0 + version: 4.0.0(svelte@4.2.9) + sveltekit-api: + specifier: ^0.4.1 + version: 0.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.9) + sveltekit-db: + specifier: ^0.2.0 + version: 0.2.0(@sveltejs/kit@2.5.0)(better-sqlite3@9.3.0)(kysely-d1@0.3.0)(svelte@4.2.9) tailwindcss: - specifier: ^3.2.6 - version: 3.2.6(postcss@8.4.21) + specifier: ^3.4.1 + version: 3.4.1 ts-jest: - specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.20.12)(esbuild@0.16.3)(jest@29.4.2)(typescript@4.9.5) + specifier: ^29.1.2 + version: 29.1.2(@babel/core@7.20.12)(esbuild@0.17.19)(jest@29.7.0)(typescript@5.3.3) tslib: - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.6.2 + version: 2.6.2 tsup: - specifier: ^6.6.2 - version: 6.6.2(postcss@8.4.21)(typescript@4.9.5) + specifier: ^8.0.1 + version: 8.0.1(postcss@8.4.33)(typescript@5.3.3) tsx: - specifier: ^3.12.3 - version: 3.12.3 + specifier: ^4.7.0 + version: 4.7.0 typedoc: - specifier: ^0.23.25 - version: 0.23.25(typescript@4.9.5) + specifier: ^0.25.7 + version: 0.25.7(typescript@5.3.3) typescript: - specifier: ^4.9.5 - version: 4.9.5 + specifier: ^5.3.3 + version: 5.3.3 vite: - specifier: ^4.1.1 - version: 4.1.1(@types/node@18.13.0) + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.11.16) vitest: - specifier: ^0.28.4 - version: 0.28.4 + specifier: ^1.2.2 + version: 1.2.2(@types/node@20.11.16) wrangler: - specifier: ^2.9.1 - version: 2.9.1 + specifier: ^3.26.0 + version: 3.26.0 zod: - specifier: ^3.20.6 - version: 3.20.6 + specifier: ^3.22.4 + version: 3.22.4 zod-validation-error: - specifier: ^0.3.1 - version: 0.3.1(zod@3.20.6) + specifier: ^3.0.0 + version: 3.0.0(zod@3.22.4) packages/mail-service: dependencies: @@ -169,6 +196,22 @@ importers: version: 2.9.1 packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: + { + integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, + } + engines: { node: ">=0.10.0" } + dev: true + + /@alloc/quick-lru@5.2.0: + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } + dev: true + /@ampproject/remapping@2.2.0: resolution: { @@ -177,7 +220,30 @@ packages: engines: { node: ">=6.0.0" } dependencies: "@jridgewell/gen-mapping": 0.1.1 - "@jridgewell/trace-mapping": 0.3.17 + "@jridgewell/trace-mapping": 0.3.22 + dev: true + + /@ampproject/remapping@2.2.1: + resolution: + { + integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/gen-mapping": 0.3.2 + "@jridgewell/trace-mapping": 0.3.22 + dev: true + + /@asteasolutions/zod-to-openapi@6.3.1(zod@3.22.4): + resolution: + { + integrity: sha512-1CRWBqslgdBpZeJnxxksGirAQ39Iztxk+LzTkYwoP0mNzuaULa604s8Xc5V9yzmYccwJ89O9fPQgxCkbNN398g==, + } + peerDependencies: + zod: ^3.20.2 + dependencies: + openapi3-ts: 4.2.1 + zod: 3.22.4 dev: true /@babel/code-frame@7.18.6: @@ -190,38 +256,23 @@ packages: "@babel/highlight": 7.18.6 dev: true - /@babel/compat-data@7.20.14: + /@babel/code-frame@7.23.5: resolution: { - integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==, + integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==, } engines: { node: ">=6.9.0" } + dependencies: + "@babel/highlight": 7.23.4 + chalk: 2.4.2 dev: true - /@babel/core@7.17.8: + /@babel/compat-data@7.20.14: resolution: { - integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==, + integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==, } engines: { node: ">=6.9.0" } - dependencies: - "@ampproject/remapping": 2.2.0 - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.17.7 - "@babel/helper-compilation-targets": 7.20.7(@babel/core@7.17.8) - "@babel/helper-module-transforms": 7.20.11 - "@babel/helpers": 7.20.13 - "@babel/parser": 7.18.9 - "@babel/template": 7.20.7 - "@babel/traverse": 7.17.3 - "@babel/types": 7.17.0 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color dev: true /@babel/core@7.20.12: @@ -237,7 +288,7 @@ packages: "@babel/helper-compilation-targets": 7.20.7(@babel/core@7.20.12) "@babel/helper-module-transforms": 7.20.11 "@babel/helpers": 7.20.13 - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@babel/template": 7.20.7 "@babel/traverse": 7.20.13 "@babel/types": 7.20.7 @@ -257,7 +308,7 @@ packages: } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.17.0 + "@babel/types": 7.20.7 jsesc: 2.5.2 source-map: 0.5.7 dev: true @@ -274,21 +325,17 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.20.7(@babel/core@7.17.8): + /@babel/generator@7.23.6: resolution: { - integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==, + integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==, } engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0 dependencies: - "@babel/compat-data": 7.20.14 - "@babel/core": 7.17.8 - "@babel/helper-validator-option": 7.18.6 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.0 + "@babel/types": 7.23.9 + "@jridgewell/gen-mapping": 0.3.2 + "@jridgewell/trace-mapping": 0.3.17 + jsesc: 2.5.2 dev: true /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12): @@ -316,6 +363,14 @@ packages: engines: { node: ">=6.9.0" } dev: true + /@babel/helper-environment-visitor@7.22.20: + resolution: + { + integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, + } + engines: { node: ">=6.9.0" } + dev: true + /@babel/helper-function-name@7.19.0: resolution: { @@ -327,6 +382,17 @@ packages: "@babel/types": 7.20.7 dev: true + /@babel/helper-function-name@7.23.0: + resolution: + { + integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.23.9 + "@babel/types": 7.23.9 + dev: true + /@babel/helper-hoist-variables@7.18.6: resolution: { @@ -337,6 +403,16 @@ packages: "@babel/types": 7.20.7 dev: true + /@babel/helper-hoist-variables@7.22.5: + resolution: + { + integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.9 + dev: true + /@babel/helper-module-imports@7.18.6: resolution: { @@ -394,6 +470,16 @@ packages: "@babel/types": 7.20.7 dev: true + /@babel/helper-split-export-declaration@7.22.6: + resolution: + { + integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.23.9 + dev: true + /@babel/helper-string-parser@7.19.4: resolution: { @@ -402,6 +488,14 @@ packages: engines: { node: ">=6.9.0" } dev: true + /@babel/helper-string-parser@7.23.4: + resolution: + { + integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, + } + engines: { node: ">=6.9.0" } + dev: true + /@babel/helper-validator-identifier@7.19.1: resolution: { @@ -410,6 +504,14 @@ packages: engines: { node: ">=6.9.0" } dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, + } + engines: { node: ">=6.9.0" } + dev: true + /@babel/helper-validator-option@7.18.6: resolution: { @@ -444,21 +546,22 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.18.9: + /@babel/highlight@7.23.4: resolution: { - integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==, + integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, } - engines: { node: ">=6.0.0" } - hasBin: true + engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.17.0 + "@babel/helper-validator-identifier": 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 dev: true - /@babel/parser@7.20.13: + /@babel/parser@7.21.8: resolution: { - integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==, + integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==, } engines: { node: ">=6.0.0" } hasBin: true @@ -466,15 +569,15 @@ packages: "@babel/types": 7.20.7 dev: true - /@babel/parser@7.21.8: + /@babel/parser@7.23.9: resolution: { - integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==, + integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==, } engines: { node: ">=6.0.0" } hasBin: true dependencies: - "@babel/types": 7.20.7 + "@babel/types": 7.23.9 dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.20.12): @@ -648,6 +751,17 @@ packages: "@babel/helper-plugin-utils": 7.20.2 dev: true + /@babel/runtime-corejs3@7.23.9: + resolution: + { + integrity: sha512-oeOFTrYWdWXCvXGB5orvMTJ6gCZ9I6FBjR+M38iKNXCsPxr4xT0RTdg5uz1H7QP8pp74IzPtwritEr+JscqHXQ==, + } + engines: { node: ">=6.9.0" } + dependencies: + core-js-pure: 3.35.1 + regenerator-runtime: 0.14.1 + dev: true + /@babel/runtime@7.20.13: resolution: { @@ -666,29 +780,20 @@ packages: engines: { node: ">=6.9.0" } dependencies: "@babel/code-frame": 7.18.6 - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@babel/types": 7.20.7 dev: true - /@babel/traverse@7.17.3: + /@babel/template@7.23.9: resolution: { - integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==, + integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==, } engines: { node: ">=6.9.0" } dependencies: - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.17.7 - "@babel/helper-environment-visitor": 7.18.9 - "@babel/helper-function-name": 7.19.0 - "@babel/helper-hoist-variables": 7.18.6 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/parser": 7.18.9 - "@babel/types": 7.17.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + "@babel/code-frame": 7.23.5 + "@babel/parser": 7.23.9 + "@babel/types": 7.23.9 dev: true /@babel/traverse@7.20.13: @@ -704,7 +809,7 @@ packages: "@babel/helper-function-name": 7.19.0 "@babel/helper-hoist-variables": 7.18.6 "@babel/helper-split-export-declaration": 7.18.6 - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@babel/types": 7.20.7 debug: 4.3.4 globals: 11.12.0 @@ -712,6 +817,27 @@ packages: - supports-color dev: true + /@babel/traverse@7.23.2: + resolution: + { + integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.23.5 + "@babel/generator": 7.23.6 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.23.9 + "@babel/types": 7.23.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.17.0: resolution: { @@ -735,6 +861,18 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.23.9: + resolution: + { + integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-string-parser": 7.23.4 + "@babel/helper-validator-identifier": 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: { @@ -742,17 +880,17 @@ packages: } dev: true - /@changesets/apply-release-plan@6.1.3: + /@changesets/apply-release-plan@7.0.0: resolution: { - integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==, + integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/config": 2.3.0 - "@changesets/get-version-range-type": 0.3.2 - "@changesets/git": 2.0.0 - "@changesets/types": 5.2.1 + "@changesets/config": 3.0.0 + "@changesets/get-version-range-type": 0.4.0 + "@changesets/git": 3.0.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 @@ -760,128 +898,127 @@ packages: outdent: 0.5.0 prettier: 2.8.4 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.4 dev: true - /@changesets/assemble-release-plan@5.2.3: + /@changesets/assemble-release-plan@6.0.0: resolution: { - integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==, + integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.5 - "@changesets/types": 5.2.1 + "@changesets/errors": 0.2.0 + "@changesets/get-dependents-graph": 2.0.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 - semver: 5.7.1 + semver: 7.5.4 dev: true - /@changesets/changelog-git@0.1.14: + /@changesets/changelog-git@0.2.0: resolution: { - integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==, + integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==, } dependencies: - "@changesets/types": 5.2.1 + "@changesets/types": 6.0.0 dev: true - /@changesets/changelog-github@0.4.8: + /@changesets/changelog-github@0.5.0: resolution: { - integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==, + integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==, } dependencies: - "@changesets/get-github-info": 0.5.2 - "@changesets/types": 5.2.1 + "@changesets/get-github-info": 0.6.0 + "@changesets/types": 6.0.0 dotenv: 8.6.0 transitivePeerDependencies: - encoding dev: true - /@changesets/cli@2.26.0: + /@changesets/cli@2.27.1: resolution: { - integrity: sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q==, + integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==, } hasBin: true dependencies: "@babel/runtime": 7.20.13 - "@changesets/apply-release-plan": 6.1.3 - "@changesets/assemble-release-plan": 5.2.3 - "@changesets/changelog-git": 0.1.14 - "@changesets/config": 2.3.0 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.5 - "@changesets/get-release-plan": 3.0.16 - "@changesets/git": 2.0.0 - "@changesets/logger": 0.0.5 - "@changesets/pre": 1.0.14 - "@changesets/read": 0.5.9 - "@changesets/types": 5.2.1 - "@changesets/write": 0.2.3 + "@changesets/apply-release-plan": 7.0.0 + "@changesets/assemble-release-plan": 6.0.0 + "@changesets/changelog-git": 0.2.0 + "@changesets/config": 3.0.0 + "@changesets/errors": 0.2.0 + "@changesets/get-dependents-graph": 2.0.0 + "@changesets/get-release-plan": 4.0.0 + "@changesets/git": 3.0.0 + "@changesets/logger": 0.1.0 + "@changesets/pre": 2.0.0 + "@changesets/read": 0.6.0 + "@changesets/types": 6.0.0 + "@changesets/write": 0.3.0 "@manypkg/get-packages": 1.1.3 - "@types/is-ci": 3.0.0 - "@types/semver": 6.2.3 + "@types/semver": 7.5.6 ansi-colors: 4.1.3 chalk: 2.4.2 + ci-info: 3.7.1 enquirer: 2.3.6 external-editor: 3.1.0 fs-extra: 7.0.1 human-id: 1.0.2 - is-ci: 3.0.1 meow: 6.1.1 outdent: 0.5.0 p-limit: 2.3.0 preferred-pm: 3.0.3 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.1.6 dev: true - /@changesets/config@2.3.0: + /@changesets/config@3.0.0: resolution: { - integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==, + integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==, } dependencies: - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.5 - "@changesets/logger": 0.0.5 - "@changesets/types": 5.2.1 + "@changesets/errors": 0.2.0 + "@changesets/get-dependents-graph": 2.0.0 + "@changesets/logger": 0.1.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 dev: true - /@changesets/errors@0.1.4: + /@changesets/errors@0.2.0: resolution: { - integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==, + integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==, } dependencies: extendable-error: 0.1.7 dev: true - /@changesets/get-dependents-graph@1.3.5: + /@changesets/get-dependents-graph@2.0.0: resolution: { - integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==, + integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==, } dependencies: - "@changesets/types": 5.2.1 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 5.7.1 + semver: 7.5.4 dev: true - /@changesets/get-github-info@0.5.2: + /@changesets/get-github-info@0.6.0: resolution: { - integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==, + integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==, } dependencies: dataloader: 1.4.0 @@ -890,86 +1027,86 @@ packages: - encoding dev: true - /@changesets/get-release-plan@3.0.16: + /@changesets/get-release-plan@4.0.0: resolution: { - integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==, + integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/assemble-release-plan": 5.2.3 - "@changesets/config": 2.3.0 - "@changesets/pre": 1.0.14 - "@changesets/read": 0.5.9 - "@changesets/types": 5.2.1 + "@changesets/assemble-release-plan": 6.0.0 + "@changesets/config": 3.0.0 + "@changesets/pre": 2.0.0 + "@changesets/read": 0.6.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 dev: true - /@changesets/get-version-range-type@0.3.2: + /@changesets/get-version-range-type@0.4.0: resolution: { - integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==, + integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==, } dev: true - /@changesets/git@2.0.0: + /@changesets/git@3.0.0: resolution: { - integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==, + integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.2.1 + "@changesets/errors": 0.2.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 dev: true - /@changesets/logger@0.0.5: + /@changesets/logger@0.1.0: resolution: { - integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==, + integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==, } dependencies: chalk: 2.4.2 dev: true - /@changesets/parse@0.3.16: + /@changesets/parse@0.4.0: resolution: { - integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==, + integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==, } dependencies: - "@changesets/types": 5.2.1 + "@changesets/types": 6.0.0 js-yaml: 3.14.1 dev: true - /@changesets/pre@1.0.14: + /@changesets/pre@2.0.0: resolution: { - integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==, + integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.2.1 + "@changesets/errors": 0.2.0 + "@changesets/types": 6.0.0 "@manypkg/get-packages": 1.1.3 fs-extra: 7.0.1 dev: true - /@changesets/read@0.5.9: + /@changesets/read@0.6.0: resolution: { - integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==, + integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/git": 2.0.0 - "@changesets/logger": 0.0.5 - "@changesets/parse": 0.3.16 - "@changesets/types": 5.2.1 + "@changesets/git": 3.0.0 + "@changesets/logger": 0.1.0 + "@changesets/parse": 0.4.0 + "@changesets/types": 6.0.0 chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -982,21 +1119,21 @@ packages: } dev: true - /@changesets/types@5.2.1: + /@changesets/types@6.0.0: resolution: { - integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==, + integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==, } dev: true - /@changesets/write@0.2.3: + /@changesets/write@0.3.0: resolution: { - integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==, + integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==, } dependencies: "@babel/runtime": 7.20.13 - "@changesets/types": 5.2.1 + "@changesets/types": 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.4 @@ -1011,41 +1148,88 @@ packages: mime: 3.0.0 dev: true - /@cloudflare/workers-types@4.20230115.0: + /@cloudflare/workerd-darwin-64@1.20240129.0: resolution: { - integrity: sha512-GPJEiO8AFN+jUpA+DHJ1qdVmk4s/hq8JYKjOV/+U7avGquQbVnj905+Kg6uAEfrq16muwmRKl+XJGqsvlBlDNg==, + integrity: sha512-DfVVB5IsQLVcWPJwV019vY3nEtU88c2Qu2ST5SQxqcGivZ52imagLRK0RHCIP8PK4piSiq90qUC6ybppUsw8eg==, } + engines: { node: ">=16" } + cpu: [x64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /@esbuild-kit/cjs-loader@2.4.2: + /@cloudflare/workerd-darwin-arm64@1.20240129.0: resolution: { - integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==, + integrity: sha512-t0q8ABkmumG1zRM/MZ/vIv/Ysx0vTAXnQAPy/JW5aeQi/tqrypXkO9/NhPc0jbF/g/hIPrWEqpDgEp3CB7Da7Q==, } - dependencies: - "@esbuild-kit/core-utils": 3.0.0 - get-tsconfig: 4.4.0 + engines: { node: ">=16" } + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /@esbuild-kit/core-utils@3.0.0: + /@cloudflare/workerd-linux-64@1.20240129.0: resolution: { - integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==, + integrity: sha512-sFV1uobHgDI+6CKBS/ZshQvOvajgwl6BtiYaH4PSFSpvXTmRx+A9bcug+6BnD+V4WgwxTiEO2iR97E1XuwDAVw==, + } + engines: { node: ">=16" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-linux-arm64@1.20240129.0: + resolution: + { + integrity: sha512-O7q7htHaFRp8PgTqNJx1/fYc3+LnvAo6kWWB9a14C5OWak6AAZk42PNpKPx+DXTmGvI+8S1+futBGUeJ8NPDXg==, + } + engines: { node: ">=16" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workerd-windows-64@1.20240129.0: + resolution: + { + integrity: sha512-YqGno0XSqqqkDmNoGEX6M8kJlI2lEfWntbTPVtHaZlaXVR9sWfoD7TEno0NKC95cXFz+ioyFLbgbOdnfWwmVAA==, + } + engines: { node: ">=16" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@cloudflare/workers-types@4.20230115.0: + resolution: + { + integrity: sha512-GPJEiO8AFN+jUpA+DHJ1qdVmk4s/hq8JYKjOV/+U7avGquQbVnj905+Kg6uAEfrq16muwmRKl+XJGqsvlBlDNg==, + } + dev: true + + /@cloudflare/workers-types@4.20240129.0: + resolution: + { + integrity: sha512-VyHbih/bqh/RN2FRxnXznG0bpBIg9RfSP1ldbAVnCXFinjOdv0zm2P/RWqOVN9+FgU5sanRltwwT7jGngxZy8w==, } - dependencies: - esbuild: 0.15.18 - source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader@2.5.5: + /@cspotcode/source-map-support@0.8.1: resolution: { - integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==, + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, } + engines: { node: ">=12" } dependencies: - "@esbuild-kit/core-utils": 3.0.0 - get-tsconfig: 4.4.0 + "@jridgewell/trace-mapping": 0.3.9 dev: true /@esbuild-plugins/node-globals-polyfill@0.1.1(esbuild@0.16.3): @@ -1059,6 +1243,17 @@ packages: esbuild: 0.16.3 dev: true + /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): + resolution: + { + integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==, + } + peerDependencies: + esbuild: "*" + dependencies: + esbuild: 0.17.19 + dev: true + /@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3): resolution: { @@ -1072,14 +1267,27 @@ packages: rollup-plugin-node-polyfills: 0.2.1 dev: true - /@esbuild/android-arm64@0.16.17: + /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): + resolution: + { + integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==, + } + peerDependencies: + esbuild: "*" + dependencies: + esbuild: 0.17.19 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + dev: true + + /@esbuild/aix-ppc64@0.19.12: resolution: { - integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==, + integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==, } engines: { node: ">=12" } - cpu: [arm64] - os: [android] + cpu: [ppc64] + os: [aix] requiresBuild: true dev: true optional: true @@ -1096,10 +1304,10 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.17.8: + /@esbuild/android-arm64@0.17.19: resolution: { - integrity: sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==, + integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, } engines: { node: ">=12" } cpu: [arm64] @@ -1108,22 +1316,22 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.15.18: + /@esbuild/android-arm64@0.19.12: resolution: { - integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==, + integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==, } engines: { node: ">=12" } - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.16.17: + /@esbuild/android-arm@0.16.3: resolution: { - integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==, + integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==, } engines: { node: ">=12" } cpu: [arm] @@ -1132,10 +1340,10 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.16.3: + /@esbuild/android-arm@0.17.19: resolution: { - integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==, + integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, } engines: { node: ">=12" } cpu: [arm] @@ -1144,10 +1352,10 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.8: + /@esbuild/android-arm@0.19.12: resolution: { - integrity: sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==, + integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==, } engines: { node: ">=12" } cpu: [arm] @@ -1156,10 +1364,10 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.16.17: + /@esbuild/android-x64@0.16.3: resolution: { - integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==, + integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==, } engines: { node: ">=12" } cpu: [x64] @@ -1168,10 +1376,10 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.16.3: + /@esbuild/android-x64@0.17.19: resolution: { - integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==, + integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, } engines: { node: ">=12" } cpu: [x64] @@ -1180,10 +1388,10 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.8: + /@esbuild/android-x64@0.19.12: resolution: { - integrity: sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==, + integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==, } engines: { node: ">=12" } cpu: [x64] @@ -1192,10 +1400,10 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.16.17: + /@esbuild/darwin-arm64@0.16.3: resolution: { - integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==, + integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==, } engines: { node: ">=12" } cpu: [arm64] @@ -1204,10 +1412,10 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.16.3: + /@esbuild/darwin-arm64@0.17.19: resolution: { - integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==, + integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, } engines: { node: ">=12" } cpu: [arm64] @@ -1216,10 +1424,10 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.8: + /@esbuild/darwin-arm64@0.19.12: resolution: { - integrity: sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==, + integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==, } engines: { node: ">=12" } cpu: [arm64] @@ -1228,10 +1436,10 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.16.17: + /@esbuild/darwin-x64@0.16.3: resolution: { - integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==, + integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==, } engines: { node: ">=12" } cpu: [x64] @@ -1240,10 +1448,10 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.16.3: + /@esbuild/darwin-x64@0.17.19: resolution: { - integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==, + integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, } engines: { node: ">=12" } cpu: [x64] @@ -1252,10 +1460,10 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.8: + /@esbuild/darwin-x64@0.19.12: resolution: { - integrity: sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==, + integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==, } engines: { node: ">=12" } cpu: [x64] @@ -1264,18 +1472,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.16.17: - resolution: - { - integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.16.3: resolution: { @@ -1288,10 +1484,10 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.8: + /@esbuild/freebsd-arm64@0.17.19: resolution: { - integrity: sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==, + integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, } engines: { node: ">=12" } cpu: [arm64] @@ -1300,13 +1496,13 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.16.17: + /@esbuild/freebsd-arm64@0.19.12: resolution: { - integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==, + integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==, } engines: { node: ">=12" } - cpu: [x64] + cpu: [arm64] os: [freebsd] requiresBuild: true dev: true @@ -1324,10 +1520,10 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.8: + /@esbuild/freebsd-x64@0.17.19: resolution: { - integrity: sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==, + integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, } engines: { node: ">=12" } cpu: [x64] @@ -1336,14 +1532,14 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.16.17: + /@esbuild/freebsd-x64@0.19.12: resolution: { - integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==, + integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==, } engines: { node: ">=12" } - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] requiresBuild: true dev: true optional: true @@ -1360,10 +1556,10 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.8: + /@esbuild/linux-arm64@0.17.19: resolution: { - integrity: sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==, + integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, } engines: { node: ">=12" } cpu: [arm64] @@ -1372,13 +1568,13 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.16.17: + /@esbuild/linux-arm64@0.19.12: resolution: { - integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==, + integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==, } engines: { node: ">=12" } - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true @@ -1396,10 +1592,10 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.8: + /@esbuild/linux-arm@0.17.19: resolution: { - integrity: sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==, + integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, } engines: { node: ">=12" } cpu: [arm] @@ -1408,13 +1604,13 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.16.17: + /@esbuild/linux-arm@0.19.12: resolution: { - integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==, + integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==, } engines: { node: ">=12" } - cpu: [ia32] + cpu: [arm] os: [linux] requiresBuild: true dev: true @@ -1432,10 +1628,10 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.8: + /@esbuild/linux-ia32@0.17.19: resolution: { - integrity: sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==, + integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, } engines: { node: ">=12" } cpu: [ia32] @@ -1444,25 +1640,13 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: - { - integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==, - } - engines: { node: ">=12" } - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.16.17: + /@esbuild/linux-ia32@0.19.12: resolution: { - integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==, + integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==, } engines: { node: ">=12" } - cpu: [loong64] + cpu: [ia32] os: [linux] requiresBuild: true dev: true @@ -1480,10 +1664,10 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.8: + /@esbuild/linux-loong64@0.17.19: resolution: { - integrity: sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==, + integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, } engines: { node: ">=12" } cpu: [loong64] @@ -1492,13 +1676,13 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.16.17: + /@esbuild/linux-loong64@0.19.12: resolution: { - integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==, + integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==, } engines: { node: ">=12" } - cpu: [mips64el] + cpu: [loong64] os: [linux] requiresBuild: true dev: true @@ -1516,10 +1700,10 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.8: + /@esbuild/linux-mips64el@0.17.19: resolution: { - integrity: sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==, + integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, } engines: { node: ">=12" } cpu: [mips64el] @@ -1528,13 +1712,13 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.16.17: + /@esbuild/linux-mips64el@0.19.12: resolution: { - integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==, + integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==, } engines: { node: ">=12" } - cpu: [ppc64] + cpu: [mips64el] os: [linux] requiresBuild: true dev: true @@ -1552,10 +1736,10 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.8: + /@esbuild/linux-ppc64@0.17.19: resolution: { - integrity: sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==, + integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, } engines: { node: ">=12" } cpu: [ppc64] @@ -1564,13 +1748,13 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.16.17: + /@esbuild/linux-ppc64@0.19.12: resolution: { - integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==, + integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==, } engines: { node: ">=12" } - cpu: [riscv64] + cpu: [ppc64] os: [linux] requiresBuild: true dev: true @@ -1588,10 +1772,10 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.8: + /@esbuild/linux-riscv64@0.17.19: resolution: { - integrity: sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==, + integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, } engines: { node: ">=12" } cpu: [riscv64] @@ -1600,13 +1784,13 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.16.17: + /@esbuild/linux-riscv64@0.19.12: resolution: { - integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==, + integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==, } engines: { node: ">=12" } - cpu: [s390x] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true @@ -1624,10 +1808,10 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.8: + /@esbuild/linux-s390x@0.17.19: resolution: { - integrity: sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==, + integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, } engines: { node: ">=12" } cpu: [s390x] @@ -1636,13 +1820,13 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.16.17: + /@esbuild/linux-s390x@0.19.12: resolution: { - integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==, + integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==, } engines: { node: ">=12" } - cpu: [x64] + cpu: [s390x] os: [linux] requiresBuild: true dev: true @@ -1660,10 +1844,10 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.8: + /@esbuild/linux-x64@0.17.19: resolution: { - integrity: sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==, + integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, } engines: { node: ">=12" } cpu: [x64] @@ -1672,14 +1856,14 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.16.17: + /@esbuild/linux-x64@0.19.12: resolution: { - integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==, + integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==, } engines: { node: ">=12" } cpu: [x64] - os: [netbsd] + os: [linux] requiresBuild: true dev: true optional: true @@ -1696,10 +1880,10 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.8: + /@esbuild/netbsd-x64@0.17.19: resolution: { - integrity: sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==, + integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, } engines: { node: ">=12" } cpu: [x64] @@ -1708,14 +1892,14 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.16.17: + /@esbuild/netbsd-x64@0.19.12: resolution: { - integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==, + integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==, } engines: { node: ">=12" } cpu: [x64] - os: [openbsd] + os: [netbsd] requiresBuild: true dev: true optional: true @@ -1732,10 +1916,10 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.8: + /@esbuild/openbsd-x64@0.17.19: resolution: { - integrity: sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==, + integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, } engines: { node: ">=12" } cpu: [x64] @@ -1744,14 +1928,14 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.16.17: + /@esbuild/openbsd-x64@0.19.12: resolution: { - integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==, + integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==, } engines: { node: ">=12" } cpu: [x64] - os: [sunos] + os: [openbsd] requiresBuild: true dev: true optional: true @@ -1768,10 +1952,10 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.8: + /@esbuild/sunos-x64@0.17.19: resolution: { - integrity: sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==, + integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, } engines: { node: ">=12" } cpu: [x64] @@ -1780,14 +1964,14 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.16.17: + /@esbuild/sunos-x64@0.19.12: resolution: { - integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==, + integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==, } engines: { node: ">=12" } - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] requiresBuild: true dev: true optional: true @@ -1804,10 +1988,10 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.8: + /@esbuild/win32-arm64@0.17.19: resolution: { - integrity: sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==, + integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, } engines: { node: ">=12" } cpu: [arm64] @@ -1816,13 +2000,13 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.16.17: + /@esbuild/win32-arm64@0.19.12: resolution: { - integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==, + integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==, } engines: { node: ">=12" } - cpu: [ia32] + cpu: [arm64] os: [win32] requiresBuild: true dev: true @@ -1840,10 +2024,10 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.8: + /@esbuild/win32-ia32@0.17.19: resolution: { - integrity: sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==, + integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, } engines: { node: ">=12" } cpu: [ia32] @@ -1852,13 +2036,13 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.16.17: + /@esbuild/win32-ia32@0.19.12: resolution: { - integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==, + integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==, } engines: { node: ">=12" } - cpu: [x64] + cpu: [ia32] os: [win32] requiresBuild: true dev: true @@ -1876,10 +2060,22 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.8: + /@esbuild/win32-x64@0.17.19: + resolution: + { + integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: resolution: { - integrity: sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==, + integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==, } engines: { node: ">=12" } cpu: [x64] @@ -1888,16 +2084,37 @@ packages: dev: true optional: true - /@eslint/eslintrc@1.4.1: + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: + { + integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, + } + engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + dev: true + + /@eslint/eslintrc@2.1.4: resolution: { - integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==, + integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.4.1 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 @@ -1908,63 +2125,79 @@ packages: - supports-color dev: true - /@formatjs/ecma402-abstract@1.11.4: + /@eslint/js@8.56.0: + resolution: + { + integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@fastify/busboy@2.1.0: resolution: { - integrity: sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==, + integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==, + } + engines: { node: ">=14" } + dev: true + + /@formatjs/ecma402-abstract@1.18.2: + resolution: + { + integrity: sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==, } dependencies: - "@formatjs/intl-localematcher": 0.2.25 - tslib: 2.5.0 + "@formatjs/intl-localematcher": 0.5.4 + tslib: 2.6.2 dev: true - /@formatjs/fast-memoize@1.2.1: + /@formatjs/fast-memoize@2.2.0: resolution: { - integrity: sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==, + integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==, } dependencies: - tslib: 2.5.0 + tslib: 2.6.2 dev: true - /@formatjs/icu-messageformat-parser@2.1.0: + /@formatjs/icu-messageformat-parser@2.7.6: resolution: { - integrity: sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==, + integrity: sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==, } dependencies: - "@formatjs/ecma402-abstract": 1.11.4 - "@formatjs/icu-skeleton-parser": 1.3.6 - tslib: 2.5.0 + "@formatjs/ecma402-abstract": 1.18.2 + "@formatjs/icu-skeleton-parser": 1.8.0 + tslib: 2.6.2 dev: true - /@formatjs/icu-skeleton-parser@1.3.6: + /@formatjs/icu-skeleton-parser@1.8.0: resolution: { - integrity: sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==, + integrity: sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==, } dependencies: - "@formatjs/ecma402-abstract": 1.11.4 - tslib: 2.5.0 + "@formatjs/ecma402-abstract": 1.18.2 + tslib: 2.6.2 dev: true - /@formatjs/intl-localematcher@0.2.25: + /@formatjs/intl-localematcher@0.5.4: resolution: { - integrity: sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==, + integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==, } dependencies: - tslib: 2.5.0 + tslib: 2.6.2 dev: true - /@humanwhocodes/config-array@0.11.8: + /@humanwhocodes/config-array@0.11.14: resolution: { - integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, + integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==, } engines: { node: ">=10.10.0" } dependencies: - "@humanwhocodes/object-schema": 1.2.1 + "@humanwhocodes/object-schema": 2.0.2 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1979,10 +2212,10 @@ packages: engines: { node: ">=12.22" } dev: true - /@humanwhocodes/object-schema@1.2.1: + /@humanwhocodes/object-schema@2.0.2: resolution: { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, + integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==, } dev: true @@ -1993,16 +2226,16 @@ packages: } dev: true - /@iconify/svelte@3.1.0(svelte@3.55.1): + /@iconify/svelte@3.1.6(svelte@4.2.9): resolution: { - integrity: sha512-G1w1dcO7eiD+JmQJNwNW4qnAn86oQxKLe1P/iAPjJ0qYYuF7Pb60TPrlcj4+2gu4SXe3a0Jrv++8YmceG+gX/g==, + integrity: sha512-yLSrlkOx5J6xXU5GDLPBV/MdVBVEZhd36onfqSbxQobp1XBoWQbMPLNZyCAmTKCPnmzXSowGy79agl8FQ3kj6A==, } peerDependencies: - svelte: ">=3" + svelte: "*" dependencies: "@iconify/types": 2.0.0 - svelte: 3.55.1 + svelte: 4.2.9 dev: true /@iconify/types@2.0.0: @@ -2012,6 +2245,21 @@ packages: } dev: true + /@isaacs/cliui@8.0.2: + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@istanbuljs/load-nyc-config@1.1.0: resolution: { @@ -2034,25 +2282,25 @@ packages: engines: { node: ">=8" } dev: true - /@jest/console@29.4.2: + /@jest/console@29.7.0: resolution: { - integrity: sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg==, + integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 chalk: 4.1.2 - jest-message-util: 29.4.2 - jest-util: 29.4.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true - /@jest/core@29.4.2: + /@jest/core@29.7.0: resolution: { - integrity: sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ==, + integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: @@ -2061,119 +2309,120 @@ packages: node-notifier: optional: true dependencies: - "@jest/console": 29.4.2 - "@jest/reporters": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/transform": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/console": 29.7.0 + "@jest/reporters": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.4.2 - jest-config: 29.4.2(@types/node@18.13.0) - jest-haste-map: 29.4.2 - jest-message-util: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-resolve-dependencies: 29.4.2 - jest-runner: 29.4.2 - jest-runtime: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 - jest-validate: 29.4.2 - jest-watcher: 29.4.2 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.11.16) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.5 - pretty-format: 29.4.2 + pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color - ts-node dev: true - /@jest/environment@29.4.2: + /@jest/environment@29.7.0: resolution: { - integrity: sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ==, + integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/fake-timers": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 - jest-mock: 29.4.2 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 + jest-mock: 29.7.0 dev: true - /@jest/expect-utils@29.4.1: + /@jest/expect-utils@29.4.2: resolution: { - integrity: sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ==, + integrity: sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - jest-get-type: 29.2.0 + jest-get-type: 29.4.2 dev: true - /@jest/expect-utils@29.4.2: + /@jest/expect-utils@29.7.0: resolution: { - integrity: sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA==, + integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - jest-get-type: 29.4.2 + jest-get-type: 29.6.3 dev: true - /@jest/expect@29.4.2: + /@jest/expect@29.7.0: resolution: { - integrity: sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ==, + integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - expect: 29.4.2 - jest-snapshot: 29.4.2 + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.4.2: + /@jest/fake-timers@29.7.0: resolution: { - integrity: sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ==, + integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 + "@jest/types": 29.6.3 "@sinonjs/fake-timers": 10.0.2 - "@types/node": 18.13.0 - jest-message-util: 29.4.2 - jest-mock: 29.4.2 - jest-util: 29.4.2 + "@types/node": 20.11.16 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true - /@jest/globals@29.4.2: + /@jest/globals@29.7.0: resolution: { - integrity: sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg==, + integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/environment": 29.4.2 - "@jest/expect": 29.4.2 - "@jest/types": 29.4.2 - jest-mock: 29.4.2 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/types": 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.4.2: + /@jest/reporters@29.7.0: resolution: { - integrity: sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw==, + integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: @@ -2183,25 +2432,25 @@ packages: optional: true dependencies: "@bcoe/v8-coverage": 0.2.3 - "@jest/console": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/transform": 29.4.2 - "@jest/types": 29.4.2 - "@jridgewell/trace-mapping": 0.3.17 - "@types/node": 18.13.0 + "@jest/console": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.22 + "@types/node": 20.11.16 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.1 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.4.2 - jest-util: 29.4.2 - jest-worker: 29.4.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -2210,82 +2459,82 @@ packages: - supports-color dev: true - /@jest/schemas@29.4.0: + /@jest/schemas@29.4.2: resolution: { - integrity: sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==, + integrity: sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: "@sinclair/typebox": 0.25.21 dev: true - /@jest/schemas@29.4.2: + /@jest/schemas@29.6.3: resolution: { - integrity: sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==, + integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@sinclair/typebox": 0.25.21 + "@sinclair/typebox": 0.27.8 dev: true - /@jest/source-map@29.4.2: + /@jest/source-map@29.6.3: resolution: { - integrity: sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q==, + integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jridgewell/trace-mapping": 0.3.17 + "@jridgewell/trace-mapping": 0.3.22 callsites: 3.1.0 graceful-fs: 4.2.10 dev: true - /@jest/test-result@29.4.2: + /@jest/test-result@29.7.0: resolution: { - integrity: sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA==, + integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/console": 29.4.2 - "@jest/types": 29.4.2 + "@jest/console": 29.7.0 + "@jest/types": 29.6.3 "@types/istanbul-lib-coverage": 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.4.2: + /@jest/test-sequencer@29.7.0: resolution: { - integrity: sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg==, + integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/test-result": 29.4.2 + "@jest/test-result": 29.7.0 graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 + jest-haste-map: 29.7.0 slash: 3.0.0 dev: true - /@jest/transform@29.4.2: + /@jest/transform@29.7.0: resolution: { - integrity: sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ==, + integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: "@babel/core": 7.20.12 - "@jest/types": 29.4.2 - "@jridgewell/trace-mapping": 0.3.17 + "@jest/types": 29.6.3 + "@jridgewell/trace-mapping": 0.3.22 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-regex-util: 29.4.2 - jest-util: 29.4.2 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -2294,32 +2543,32 @@ packages: - supports-color dev: true - /@jest/types@29.4.1: + /@jest/types@29.4.2: resolution: { - integrity: sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA==, + integrity: sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/schemas": 29.4.0 + "@jest/schemas": 29.4.2 "@types/istanbul-lib-coverage": 2.0.4 "@types/istanbul-reports": 3.0.1 - "@types/node": 18.13.0 + "@types/node": 20.11.16 "@types/yargs": 17.0.20 chalk: 4.1.2 dev: true - /@jest/types@29.4.2: + /@jest/types@29.6.3: resolution: { - integrity: sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==, + integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/schemas": 29.4.2 + "@jest/schemas": 29.6.3 "@types/istanbul-lib-coverage": 2.0.4 "@types/istanbul-reports": 3.0.1 - "@types/node": 18.13.0 + "@types/node": 20.11.16 "@types/yargs": 17.0.20 chalk: 4.1.2 dev: true @@ -2343,8 +2592,8 @@ packages: engines: { node: ">=6.0.0" } dependencies: "@jridgewell/set-array": 1.1.2 - "@jridgewell/sourcemap-codec": 1.4.14 - "@jridgewell/trace-mapping": 0.3.17 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.22 dev: true /@jridgewell/resolve-uri@3.1.0: @@ -2370,6 +2619,13 @@ packages: } dev: true + /@jridgewell/sourcemap-codec@1.4.15: + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, + } + dev: true + /@jridgewell/trace-mapping@0.3.17: resolution: { @@ -2380,6 +2636,26 @@ packages: "@jridgewell/sourcemap-codec": 1.4.14 dev: true + /@jridgewell/trace-mapping@0.3.22: + resolution: + { + integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==, + } + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 + dev: true + /@manypkg/find-root@1.1.0: resolution: { @@ -2661,159 +2937,368 @@ packages: fastq: 1.15.0 dev: true - /@playwright/test@1.30.0: + /@pkgjs/parseargs@0.11.0: resolution: { - integrity: sha512-SVxkQw1xvn/Wk/EvBnqWIq6NLo1AppwbYOjNLmyU0R1RoQ3rLEBtmjTnElcnz8VEtn11fptj1ECxK0tgURhajw==, + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, } engines: { node: ">=14" } - hasBin: true - dependencies: - "@types/node": 18.13.0 - playwright-core: 1.30.0 + requiresBuild: true dev: true + optional: true - /@polka/url@1.0.0-next.21: + /@playwright/test@1.41.2: resolution: { - integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==, + integrity: sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==, } + engines: { node: ">=16" } + hasBin: true + dependencies: + playwright: 1.41.2 dev: true - /@sinclair/typebox@0.25.21: + /@polka/url@1.0.0-next.24: resolution: { - integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==, + integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==, } dev: true - /@sinonjs/commons@2.0.0: + /@rollup/rollup-android-arm-eabi@4.9.6: resolution: { - integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, + integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==, } - dependencies: - type-detect: 4.0.8 + cpu: [arm] + os: [android] + requiresBuild: true dev: true + optional: true - /@sinonjs/fake-timers@10.0.2: + /@rollup/rollup-android-arm64@4.9.6: resolution: { - integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==, + integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==, } - dependencies: - "@sinonjs/commons": 2.0.0 + cpu: [arm64] + os: [android] + requiresBuild: true dev: true + optional: true - /@sveltejs/adapter-cloudflare@2.0.1(@sveltejs/kit@1.5.6): + /@rollup/rollup-darwin-arm64@4.9.6: resolution: { - integrity: sha512-MLV/iJrBrs3YeDf+MEUcdRg5ZFt0sYEnhufI+9eTid+hldtKIDjcpTM3wzUDBAl3d523z9sDG2g3eN+xwPER/w==, + integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==, } - peerDependencies: - "@sveltejs/kit": ^1.0.0 - dependencies: - "@cloudflare/workers-types": 4.20230115.0 - "@sveltejs/kit": 1.5.6(svelte@3.55.1)(vite@4.1.1) - esbuild: 0.16.17 - worktop: 0.8.0-next.14 + cpu: [arm64] + os: [darwin] + requiresBuild: true dev: true + optional: true - /@sveltejs/kit@1.5.6(svelte@3.55.1)(vite@4.1.1): + /@rollup/rollup-darwin-x64@4.9.6: resolution: { - integrity: sha512-CHVeQpbcwSIUekF6WwevmExKXyfHnzM5nlCEUv13lGgfJ0zKA0ny5YwIe40vccrm5w5Caec7jMTt9Ih3McJr5g==, + integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==, } - engines: { node: ^16.14 || >=18 } - hasBin: true + cpu: [x64] + os: [darwin] requiresBuild: true - peerDependencies: - svelte: ^3.54.0 - vite: ^4.0.0 - dependencies: - "@sveltejs/vite-plugin-svelte": 2.0.2(svelte@3.55.1)(vite@4.1.1) - "@types/cookie": 0.5.1 - cookie: 0.5.0 - devalue: 4.3.0 - esm-env: 1.0.0 - kleur: 4.1.5 - magic-string: 0.27.0 - mime: 3.0.0 - sade: 1.8.1 - set-cookie-parser: 2.5.1 - sirv: 2.0.2 - svelte: 3.55.1 - tiny-glob: 0.2.9 - undici: 5.18.0 - vite: 4.1.1(@types/node@18.13.0) - transitivePeerDependencies: - - supports-color dev: true + optional: true - /@sveltejs/vite-plugin-svelte@2.0.2(svelte@3.55.1)(vite@4.1.1): + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: resolution: { - integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==, + integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==, } - engines: { node: ^14.18.0 || >= 16 } - peerDependencies: - svelte: ^3.54.0 - vite: ^4.0.0 - dependencies: - debug: 4.3.4 - deepmerge: 4.2.2 - kleur: 4.1.5 - magic-string: 0.27.0 - svelte: 3.55.1 - svelte-hmr: 0.15.1(svelte@3.55.1) - vite: 4.1.1(@types/node@18.13.0) - vitefu: 0.2.4(vite@4.1.1) - transitivePeerDependencies: - - supports-color + cpu: [arm] + os: [linux] + requiresBuild: true dev: true + optional: true - /@tailwindcss/typography@0.5.9(tailwindcss@3.2.6): + /@rollup/rollup-linux-arm64-gnu@4.9.6: resolution: { - integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==, + integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==, } - peerDependencies: - tailwindcss: ">=3.0.0 || insiders" - dependencies: - lodash.castarray: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - postcss-selector-parser: 6.0.10 - tailwindcss: 3.2.6(postcss@8.4.21) + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@trivago/prettier-plugin-sort-imports@4.0.0(@vue/compiler-sfc@3.3.4)(prettier@2.8.4): + /@rollup/rollup-linux-arm64-musl@4.9.6: resolution: { - integrity: sha512-Tyuk5ZY4a0e2MNFLdluQO9F6d1awFQYXVVujEPFfvKPPXz8DADNHzz73NMhwCSXGSuGGZcA/rKOyZBrxVNMxaA==, + integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==, } - peerDependencies: - "@vue/compiler-sfc": 3.x - prettier: 2.x - dependencies: - "@babel/core": 7.17.8 - "@babel/generator": 7.17.7 - "@babel/parser": 7.18.9 - "@babel/traverse": 7.17.3 - "@babel/types": 7.17.0 - "@vue/compiler-sfc": 3.3.4 - javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 2.8.4 - transitivePeerDependencies: - - supports-color + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true - /@tsndr/cloudflare-worker-jwt@2.2.1: + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: + { + integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==, + } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: + { + integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: + { + integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==, + } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: + { + integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==, + } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: + { + integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==, + } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: + { + integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==, + } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sinclair/typebox@0.25.21: + resolution: + { + integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==, + } + dev: true + + /@sinclair/typebox@0.27.8: + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } + dev: true + + /@sinonjs/commons@2.0.0: + resolution: + { + integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, + } + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.0.2: + resolution: + { + integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==, + } + dependencies: + "@sinonjs/commons": 2.0.0 + dev: true + + /@sveltejs/adapter-cloudflare@4.1.0(@sveltejs/kit@2.5.0): + resolution: + { + integrity: sha512-AQQdZAZpcFDcBiMEmxbMYhn4yKZYoPZrKUrYpVejjbO+9obIGIuj/jWjVzAEkHqZMZuoRRqPbq+Zq+AWRm4x1Q==, + } + peerDependencies: + "@sveltejs/kit": ^2.0.0 + dependencies: + "@cloudflare/workers-types": 4.20240129.0 + "@sveltejs/kit": 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + esbuild: 0.19.12 + worktop: 0.8.0-next.18 + dev: true + + /@sveltejs/kit@2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12): + resolution: + { + integrity: sha512-1uyXvzC2Lu1FZa30T4y5jUAC21R309ZMRG0TPt+PPPbNUoDpy8zSmSNVWYaBWxYDqLGQ5oPNWvjvvF2IjJ1jmA==, + } + engines: { node: ">=18.13" } + hasBin: true + requiresBuild: true + peerDependencies: + "@sveltejs/vite-plugin-svelte": ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + dependencies: + "@sveltejs/vite-plugin-svelte": 3.0.2(svelte@4.2.9)(vite@5.0.12) + "@types/cookie": 0.6.0 + cookie: 0.6.0 + devalue: 4.3.2 + esm-env: 1.0.0 + import-meta-resolve: 4.0.0 + kleur: 4.1.5 + magic-string: 0.30.6 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.4 + svelte: 4.2.9 + tiny-glob: 0.2.9 + vite: 5.0.12(@types/node@20.11.16) + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12): + resolution: + { + integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==, + } + engines: { node: ^18.0.0 || >=20 } + peerDependencies: + "@sveltejs/vite-plugin-svelte": ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + "@sveltejs/vite-plugin-svelte": 3.0.2(svelte@4.2.9)(vite@5.0.12) + debug: 4.3.4 + svelte: 4.2.9 + vite: 5.0.12(@types/node@20.11.16) + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.9)(vite@5.0.12): + resolution: + { + integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==, + } + engines: { node: ^18.0.0 || >=20 } + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + "@sveltejs/vite-plugin-svelte-inspector": 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.6 + svelte: 4.2.9 + svelte-hmr: 0.15.3(svelte@4.2.9) + vite: 5.0.12(@types/node@20.11.16) + vitefu: 0.2.5(vite@5.0.12) + transitivePeerDependencies: + - supports-color + dev: true + + /@tailwindcss/typography@0.5.10(tailwindcss@3.4.1): + resolution: + { + integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==, + } + peerDependencies: + tailwindcss: ">=3.0.0 || insiders" + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.1 + dev: true + + /@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.2.4): + resolution: + { + integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==, + } + peerDependencies: + "@vue/compiler-sfc": 3.x + prettier: 2.x - 3.x + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + dependencies: + "@babel/generator": 7.17.7 + "@babel/parser": 7.21.8 + "@babel/traverse": 7.23.2 + "@babel/types": 7.17.0 + javascript-natural-sort: 0.7.1 + lodash: 4.17.21 + prettier: 3.2.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@tsconfig/esm@1.0.5: + resolution: + { + integrity: sha512-JzoZ0h299JRLPfV5VBsMq1TuMy+OmU9bdV/7NcjfRojL0eIcA1k5ESrtjWrDwJRJnk9B0QmgR0rq04LERbdfWw==, + } + deprecated: this package has been deprecated + dev: true + + /@tsconfig/node18@2.0.1: + resolution: + { + integrity: sha512-UqdfvuJK0SArA2CxhKWwwAWfnVSXiYe63bVpMutc27vpngCntGUZQETO24pEJ46zU6XM+7SpqYoMgcO3bM11Ew==, + } + dev: true + + /@tsconfig/strictest@2.0.2: + resolution: + { + integrity: sha512-jt4jIsWKvUvuY6adJnQJlb/UR7DdjC8CjHI/OaSQruj2yX9/K6+KOvDt/vD6udqos/FUk5Op66CvYT7TBLYO5Q==, + } + dev: true + + /@tsndr/cloudflare-worker-jwt@2.2.1: resolution: { integrity: sha512-yYxjmag5AXXs7FDCUlse8cCTQlug3fbrqUb4/s4kvdauOg5wq2V6BayHD/OUWOGmgohefFRqu4vA5phU3+Cyng==, } + dev: false + + /@tsndr/cloudflare-worker-jwt@2.4.5: + resolution: + { + integrity: sha512-XLujJR463BLHNMfGJY0jsmw7ZPbicuk5UNJofldZEWbMsWXYWOoX0bpq3vZ87uSSi5By3CH0+7KyJ/26XSlVGQ==, + } + dev: true /@types/babel__core@7.20.0: resolution: @@ -2821,7 +3306,7 @@ packages: integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==, } dependencies: - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@babel/types": 7.20.7 "@types/babel__generator": 7.6.4 "@types/babel__template": 7.4.1 @@ -2843,7 +3328,7 @@ packages: integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, } dependencies: - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@babel/types": 7.20.7 dev: true @@ -2865,54 +3350,36 @@ packages: "@types/node": 18.13.0 dev: true - /@types/chai-subset@1.3.3: - resolution: - { - integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, - } - dependencies: - "@types/chai": 4.3.4 - dev: true - - /@types/chai@4.3.4: - resolution: - { - integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==, - } - dev: true - - /@types/cookie@0.5.1: + /@types/cookie@0.6.0: resolution: { - integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==, + integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, } dev: true - /@types/debug@4.1.7: + /@types/debug@4.1.12: resolution: { - integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, } dependencies: "@types/ms": 0.7.31 dev: true - /@types/graceful-fs@4.1.6: + /@types/estree@1.0.5: resolution: { - integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, } - dependencies: - "@types/node": 18.13.0 dev: true - /@types/is-ci@3.0.0: + /@types/graceful-fs@4.1.6: resolution: { - integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==, + integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, } dependencies: - ci-info: 3.7.1 + "@types/node": 20.11.16 dev: true /@types/istanbul-lib-coverage@2.0.4: @@ -2940,20 +3407,20 @@ packages: "@types/istanbul-lib-report": 3.0.0 dev: true - /@types/jest@29.4.0: + /@types/jest@29.5.12: resolution: { - integrity: sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==, + integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==, } dependencies: - expect: 29.4.1 - pretty-format: 29.4.1 + expect: 29.4.2 + pretty-format: 29.4.2 dev: true - /@types/json-schema@7.0.11: + /@types/json-schema@7.0.15: resolution: { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, } dev: true @@ -2985,17 +3452,19 @@ packages: } dev: true - /@types/normalize-package-data@2.4.1: + /@types/node@20.11.16: resolution: { - integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, + integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==, } + dependencies: + undici-types: 5.26.5 dev: true - /@types/prettier@2.7.2: + /@types/normalize-package-data@2.4.1: resolution: { - integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==, + integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, } dev: true @@ -3006,26 +3475,10 @@ packages: } dev: true - /@types/sass@1.43.1: - resolution: - { - integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==, - } - dependencies: - "@types/node": 18.13.0 - dev: true - - /@types/semver@6.2.3: - resolution: - { - integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==, - } - dev: true - - /@types/semver@7.3.13: + /@types/semver@7.5.6: resolution: { - integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, + integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, } dev: true @@ -3059,334 +3512,272 @@ packages: "@types/yargs-parser": 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.51.0(@typescript-eslint/parser@5.51.0)(eslint@8.34.0)(typescript@4.9.5): + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==, + integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/parser": 5.51.0(eslint@8.34.0)(typescript@4.9.5) - "@typescript-eslint/scope-manager": 5.51.0 - "@typescript-eslint/type-utils": 5.51.0(eslint@8.34.0)(typescript@4.9.5) - "@typescript-eslint/utils": 5.51.0(eslint@8.34.0)(typescript@4.9.5) + "@eslint-community/regexpp": 4.10.0 + "@typescript-eslint/parser": 6.20.0(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/scope-manager": 6.20.0 + "@typescript-eslint/type-utils": 6.20.0(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/utils": 6.20.0(eslint@8.56.0)(typescript@5.3.3) + "@typescript-eslint/visitor-keys": 6.20.0 debug: 4.3.4 - eslint: 8.34.0 - grapheme-splitter: 1.0.4 + eslint: 8.56.0 + graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 - regexpp: 3.2.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.51.0(eslint@8.34.0)(typescript@4.9.5): + /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==, + integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.51.0 - "@typescript-eslint/types": 5.51.0 - "@typescript-eslint/typescript-estree": 5.51.0(typescript@4.9.5) + "@typescript-eslint/scope-manager": 6.20.0 + "@typescript-eslint/types": 6.20.0 + "@typescript-eslint/typescript-estree": 6.20.0(typescript@5.3.3) + "@typescript-eslint/visitor-keys": 6.20.0 debug: 4.3.4 - eslint: 8.34.0 - typescript: 4.9.5 + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.51.0: + /@typescript-eslint/scope-manager@6.20.0: resolution: { - integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==, + integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - "@typescript-eslint/types": 5.51.0 - "@typescript-eslint/visitor-keys": 5.51.0 + "@typescript-eslint/types": 6.20.0 + "@typescript-eslint/visitor-keys": 6.20.0 dev: true - /@typescript-eslint/type-utils@5.51.0(eslint@8.34.0)(typescript@4.9.5): + /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==, + integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: "*" + eslint: ^7.0.0 || ^8.0.0 typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/typescript-estree": 5.51.0(typescript@4.9.5) - "@typescript-eslint/utils": 5.51.0(eslint@8.34.0)(typescript@4.9.5) + "@typescript-eslint/typescript-estree": 6.20.0(typescript@5.3.3) + "@typescript-eslint/utils": 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.34.0 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.51.0: + /@typescript-eslint/types@6.20.0: resolution: { - integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==, + integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dev: true - /@typescript-eslint/typescript-estree@5.51.0(typescript@4.9.5): + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): resolution: { - integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==, + integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.51.0 - "@typescript-eslint/visitor-keys": 5.51.0 + "@typescript-eslint/types": 6.20.0 + "@typescript-eslint/visitor-keys": 6.20.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@4.9.5) - typescript: 4.9.5 + minimatch: 9.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.51.0(eslint@8.34.0)(typescript@4.9.5): + /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==, + integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - "@types/json-schema": 7.0.11 - "@types/semver": 7.3.13 - "@typescript-eslint/scope-manager": 5.51.0 - "@typescript-eslint/types": 5.51.0 - "@typescript-eslint/typescript-estree": 5.51.0(typescript@4.9.5) - eslint: 8.34.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.34.0) - semver: 7.3.8 + eslint: ^7.0.0 || ^8.0.0 + dependencies: + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@types/json-schema": 7.0.15 + "@types/semver": 7.5.6 + "@typescript-eslint/scope-manager": 6.20.0 + "@typescript-eslint/types": 6.20.0 + "@typescript-eslint/typescript-estree": 6.20.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.51.0: + /@typescript-eslint/visitor-keys@6.20.0: resolution: { - integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==, + integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==, } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - "@typescript-eslint/types": 5.51.0 - eslint-visitor-keys: 3.3.0 + "@typescript-eslint/types": 6.20.0 + eslint-visitor-keys: 3.4.3 dev: true - /@vitest/expect@0.28.4: + /@ungap/structured-clone@1.2.0: resolution: { - integrity: sha512-JqK0NZ4brjvOSL8hXAnIsfi+jxDF7rH/ZWCGCt0FAqRnVFc1hXsfwXksQvEnKqD84avRt3gmeXoK4tNbmkoVsQ==, + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, } - dependencies: - "@vitest/spy": 0.28.4 - "@vitest/utils": 0.28.4 - chai: 4.3.7 dev: true - /@vitest/runner@0.28.4: + /@vitest/expect@1.2.2: resolution: { - integrity: sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ==, + integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==, } dependencies: - "@vitest/utils": 0.28.4 - p-limit: 4.0.0 - pathe: 1.1.0 + "@vitest/spy": 1.2.2 + "@vitest/utils": 1.2.2 + chai: 4.4.1 dev: true - /@vitest/spy@0.28.4: + /@vitest/runner@1.2.2: resolution: { - integrity: sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ==, + integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==, } dependencies: - tinyspy: 1.1.1 + "@vitest/utils": 1.2.2 + p-limit: 5.0.0 + pathe: 1.1.2 dev: true - /@vitest/utils@0.28.4: + /@vitest/snapshot@1.2.2: resolution: { - integrity: sha512-l2QztOLdc2LkR+w/lP52RGh8hW+Ul4KESmCAgVE8q737I7e7bQoAfkARKpkPJ4JQtGpwW4deqlj1732VZD7TFw==, + integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==, } dependencies: - cli-truncate: 3.1.0 - diff: 5.1.0 - loupe: 2.3.6 - picocolors: 1.0.0 - pretty-format: 27.5.1 + magic-string: 0.30.6 + pathe: 1.1.2 + pretty-format: 29.7.0 dev: true - /@vue/compiler-core@3.3.4: + /@vitest/spy@1.2.2: resolution: { - integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==, + integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==, } dependencies: - "@babel/parser": 7.21.8 - "@vue/shared": 3.3.4 - estree-walker: 2.0.2 - source-map-js: 1.0.2 + tinyspy: 2.2.0 dev: true - /@vue/compiler-dom@3.3.4: + /@vitest/utils@1.2.2: resolution: { - integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==, + integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==, } dependencies: - "@vue/compiler-core": 3.3.4 - "@vue/shared": 3.3.4 + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true - /@vue/compiler-sfc@3.3.4: + /@zeit/schemas@2.29.0: resolution: { - integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==, + integrity: sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==, } - dependencies: - "@babel/parser": 7.21.8 - "@vue/compiler-core": 3.3.4 - "@vue/compiler-dom": 3.3.4 - "@vue/compiler-ssr": 3.3.4 - "@vue/reactivity-transform": 3.3.4 - "@vue/shared": 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.0 - postcss: 8.4.21 - source-map-js: 1.0.2 dev: true - /@vue/compiler-ssr@3.3.4: + /accepts@1.3.8: resolution: { - integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==, + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, } + engines: { node: ">= 0.6" } dependencies: - "@vue/compiler-dom": 3.3.4 - "@vue/shared": 3.3.4 + mime-types: 2.1.35 + negotiator: 0.6.3 dev: true - /@vue/reactivity-transform@3.3.4: + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: { - integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==, + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@babel/parser": 7.21.8 - "@vue/compiler-core": 3.3.4 - "@vue/shared": 3.3.4 - estree-walker: 2.0.2 - magic-string: 0.30.0 + acorn: 8.11.3 dev: true - /@vue/shared@3.3.4: + /acorn-walk@8.2.0: resolution: { - integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==, + integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, } + engines: { node: ">=0.4.0" } dev: true - /@zeit/schemas@2.29.0: + /acorn-walk@8.3.2: resolution: { - integrity: sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==, + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, } + engines: { node: ">=0.4.0" } dev: true - /accepts@1.3.8: + /acorn@8.11.3: resolution: { - integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, - } - engines: { node: ">= 0.6" } - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - dev: true - - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - - /acorn-node@1.8.2: - resolution: - { - integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==, - } - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - - /acorn-walk@7.2.0: - resolution: - { - integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, - } - engines: { node: ">=0.4.0" } - dev: true - - /acorn-walk@8.2.0: - resolution: - { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, - } - engines: { node: ">=0.4.0" } - dev: true - - /acorn@7.4.1: - resolution: - { - integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, } engines: { node: ">=0.4.0" } hasBin: true @@ -3401,17 +3792,6 @@ packages: hasBin: true dev: true - /aggregate-error@3.1.0: - resolution: - { - integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, - } - engines: { node: ">=8" } - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv@6.12.6: resolution: { @@ -3463,6 +3843,16 @@ packages: type-fest: 0.21.3 dev: true + /ansi-escapes@6.2.0: + resolution: + { + integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==, + } + engines: { node: ">=14.16" } + dependencies: + type-fest: 3.13.1 + dev: true + /ansi-regex@5.0.1: resolution: { @@ -3570,6 +3960,15 @@ packages: } dev: true + /aria-query@5.3.0: + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } + dependencies: + dequal: 2.0.3 + dev: true + /array-union@2.1.0: resolution: { @@ -3599,37 +3998,38 @@ packages: engines: { node: ">=0.10.0" } dev: true - /assertion-error@1.1.0: + /as-table@1.0.55: resolution: { - integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, + integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==, } + dependencies: + printable-characters: 1.0.42 dev: true - /astral-regex@2.0.0: + /assertion-error@1.1.0: resolution: { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, } - engines: { node: ">=8" } dev: true - /autoprefixer@10.4.13(postcss@8.4.21): + /autoprefixer@10.4.17(postcss@8.4.33): resolution: { - integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==, + integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==, } engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.4 - caniuse-lite: 1.0.30001449 - fraction.js: 4.2.0 + browserslist: 4.22.3 + caniuse-lite: 1.0.30001582 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -3641,20 +4041,29 @@ packages: engines: { node: ">= 0.4" } dev: true - /babel-jest@29.4.2(@babel/core@7.20.12): + /axobject-query@4.0.0: + resolution: + { + integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==, + } + dependencies: + dequal: 2.0.3 + dev: true + + /babel-jest@29.7.0(@babel/core@7.20.12): resolution: { - integrity: sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ==, + integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: "@babel/core": ^7.8.0 dependencies: "@babel/core": 7.20.12 - "@jest/transform": 29.4.2 + "@jest/transform": 29.7.0 "@types/babel__core": 7.20.0 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.4.2(@babel/core@7.20.12) + babel-preset-jest: 29.6.3(@babel/core@7.20.12) chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -3678,10 +4087,10 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist@29.4.2: + /babel-plugin-jest-hoist@29.6.3: resolution: { - integrity: sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ==, + integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: @@ -3714,17 +4123,17 @@ packages: "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.20.12) dev: true - /babel-preset-jest@29.4.2(@babel/core@7.20.12): + /babel-preset-jest@29.6.3(@babel/core@7.20.12): resolution: { - integrity: sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ==, + integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.20.12 - babel-plugin-jest-hoist: 29.4.2 + babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12) dev: true @@ -3735,6 +4144,13 @@ packages: } dev: true + /base64-js@1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } + dev: true + /better-path-resolve@1.0.0: resolution: { @@ -3745,6 +4161,17 @@ packages: is-windows: 1.0.2 dev: true + /better-sqlite3@9.3.0: + resolution: + { + integrity: sha512-ww73jVpQhRRdS9uMr761ixlkl4bWoXi8hMQlBGhoN6vPNlUHpIsNmw4pKN6kjknlt/wopdvXHvLk1W75BI+n0Q==, + } + requiresBuild: true + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.1 + dev: true + /binary-extensions@2.2.0: resolution: { @@ -3753,6 +4180,26 @@ packages: engines: { node: ">=8" } dev: true + /bindings@1.5.0: + resolution: + { + integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==, + } + dependencies: + file-uri-to-path: 1.0.0 + dev: true + + /bl@4.1.0: + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /blake3-wasm@2.1.5: resolution: { @@ -3829,6 +4276,20 @@ packages: update-browserslist-db: 1.0.10(browserslist@4.21.4) dev: true + /browserslist@4.22.3: + resolution: + { + integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001582 + electron-to-chromium: 1.4.653 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + /bs-logger@0.2.6: resolution: { @@ -3862,6 +4323,16 @@ packages: } dev: true + /buffer@5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /builtins@5.0.1: resolution: { @@ -3871,7 +4342,7 @@ packages: semver: 7.3.8 dev: true - /bundle-require@4.0.1(esbuild@0.17.8): + /bundle-require@4.0.1(esbuild@0.19.12): resolution: { integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==, @@ -3880,7 +4351,7 @@ packages: peerDependencies: esbuild: ">=0.17" dependencies: - esbuild: 0.17.8 + esbuild: 0.19.12 load-tsconfig: 0.2.3 dev: true @@ -3979,17 +4450,36 @@ packages: } dev: true - /chai@4.3.7: + /caniuse-lite@1.0.30001582: + resolution: + { + integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==, + } + dev: true + + /capnp-ts@0.7.0: + resolution: + { + integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==, + } + dependencies: + debug: 4.3.4 + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /chai@4.4.1: resolution: { - integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==, + integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==, } engines: { node: ">=4" } dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 + get-func-name: 2.0.2 loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -4036,6 +4526,14 @@ packages: engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } dev: true + /chalk@5.3.0: + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + dev: true + /char-regex@1.0.2: resolution: { @@ -4051,11 +4549,13 @@ packages: } dev: true - /check-error@1.0.2: + /check-error@1.0.3: resolution: { - integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, } + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -4073,30 +4573,29 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /ci-info@3.7.1: + /chownr@1.1.4: resolution: { - integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==, + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, } - engines: { node: ">=8" } dev: true - /cjs-module-lexer@1.2.2: + /ci-info@3.7.1: resolution: { - integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, + integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==, } + engines: { node: ">=8" } dev: true - /clean-stack@2.2.0: + /cjs-module-lexer@1.2.2: resolution: { - integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, } - engines: { node: ">=6" } dev: true /cli-boxes@3.0.0: @@ -4121,36 +4620,25 @@ packages: timers-ext: 0.1.7 dev: true - /cli-cursor@3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, - } - engines: { node: ">=8" } - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-truncate@2.1.0: + /cli-cursor@4.0.0: resolution: { - integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, } - engines: { node: ">=8" } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 + restore-cursor: 4.0.0 dev: true - /cli-truncate@3.1.0: + /cli-truncate@4.0.0: resolution: { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, + integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: ">=18" } dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 + string-width: 7.1.0 dev: true /clipboardy@3.0.0: @@ -4196,6 +4684,57 @@ packages: engines: { node: ">=0.8" } dev: true + /cloudflare-email-kit@0.0.6(mimetext@3.0.16): + resolution: + { + integrity: sha512-6pj6WRCKYdIJfq4AshKxBc9vH+Ypq9Ko9L0bYuH9xv/AHd4d1qWdn6CrMAHzVlBAfOrO8FYG4OfQrQNAv3CyUg==, + } + peerDependencies: + mimetext: "*" + dependencies: + mimetext: 3.0.16 + dev: true + + /cloudflare-email-mailchannels@0.0.1(mimetext@3.0.16): + resolution: + { + integrity: sha512-nX1Vxq87qnBMrQjUj9YxPRy4elq1aR62/INmOYm+EcWGC8+W5WWxw8dzOG87mWBfkvZSShRIcXBnVgzJtdaS/g==, + } + peerDependencies: + mimetext: ^3.0.0 + dependencies: + debug: 4.3.4 + mimetext: 3.0.16 + transitivePeerDependencies: + - supports-color + dev: true + + /cloudflare-email-router@0.0.7(mimetext@3.0.16): + resolution: + { + integrity: sha512-uiEOdIcznhP08lfH/SXgCF4oCUQM+Ghs4DGPAfm1BrvoaBRjZzqIXc0GsNOI1NaLmaqIrwia7dC41TbDrSYmFw==, + } + dependencies: + cloudflare-email-kit: 0.0.6(mimetext@3.0.16) + transitivePeerDependencies: + - mimetext + dev: true + + /cloudflare-email@0.0.8: + resolution: + { + integrity: sha512-wEfu3ApTeGw0JOi+8EfhVf9zjrvMkd8mtmmv7VF5pieEep1UswojxFnIegagKQePqFMsUPZGEtRTd9JZ1msEVg==, + } + dependencies: + cloudflare-email-kit: 0.0.6(mimetext@3.0.16) + cloudflare-email-mailchannels: 0.0.1(mimetext@3.0.16) + cloudflare-email-router: 0.0.7(mimetext@3.0.16) + debug: 4.3.4 + mimetext: 3.0.16 + transitivePeerDependencies: + - supports-color + dev: true + /co@4.6.0: resolution: { @@ -4204,6 +4743,19 @@ packages: engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } dev: true + /code-red@1.0.4: + resolution: + { + integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==, + } + dependencies: + "@jridgewell/sourcemap-codec": 1.4.15 + "@types/estree": 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: true + /collect-v8-coverage@1.0.1: resolution: { @@ -4244,32 +4796,19 @@ packages: } dev: true - /color-string@1.9.1: - resolution: - { - integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, - } - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: true - - /color@4.2.3: + /colorette@2.0.20: resolution: { - integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, } - engines: { node: ">=12.5.0" } - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 dev: true - /colorette@2.0.19: + /commander@11.1.0: resolution: { - integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==, + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, } + engines: { node: ">=16" } dev: true /commander@4.1.1: @@ -4280,14 +4819,6 @@ packages: engines: { node: ">= 6" } dev: true - /commander@9.5.0: - resolution: - { - integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==, - } - engines: { node: ^12.20.0 || >=14 } - dev: true - /compressible@2.0.18: resolution: { @@ -4361,6 +4892,44 @@ packages: engines: { node: ">= 0.6" } dev: true + /cookie@0.6.0: + resolution: + { + integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==, + } + engines: { node: ">= 0.6" } + dev: true + + /core-js-pure@3.35.1: + resolution: + { + integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==, + } + requiresBuild: true + dev: true + + /create-jest@29.7.0(@types/node@20.11.16): + resolution: + { + integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + hasBin: true + dependencies: + "@jest/types": 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-config: 29.7.0(@types/node@20.11.16) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - "@types/node" + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /cron-schedule@3.0.6: resolution: { @@ -4401,6 +4970,17 @@ packages: fastparse: 1.1.2 dev: true + /css-tree@2.3.1: + resolution: + { + integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, + } + engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + /cssesc@3.0.0: resolution: { @@ -4444,6 +5024,14 @@ packages: stream-transform: 2.1.3 dev: true + /culori@3.3.0: + resolution: + { + integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + /d@1.0.1: resolution: { @@ -4454,23 +5042,26 @@ packages: type: 1.2.0 dev: true - /daisyui@2.50.0(autoprefixer@10.4.13)(postcss@8.4.21): + /daisyui@4.6.1(postcss@8.4.33): resolution: { - integrity: sha512-KiqRvqMXi9rgoH84M8D69gXPg6x+cbdiaHqm8pFHOsXXN1rTl/+OcCKkSnkEwTtIge9VJVDGU6l4B8/n+Juc5g==, + integrity: sha512-IXI8ypN/hkl1AKsag1XPlWt0wfvL4NedTUtUkv/VFP5q/xDbBZrZthq3/9M2yU1egcbbLhp01rluIz0GICUc+g==, } - peerDependencies: - autoprefixer: ^10.0.2 - postcss: ^8.1.6 + engines: { node: ">=16.9.0" } dependencies: - autoprefixer: 10.4.13(postcss@8.4.21) - color: 4.2.3 css-selector-tokenizer: 0.8.0 - postcss: 8.4.21 - postcss-js: 4.0.1(postcss@8.4.21) - tailwindcss: 3.2.6(postcss@8.4.21) + culori: 3.3.0 + picocolors: 1.0.0 + postcss-js: 4.0.1(postcss@8.4.33) transitivePeerDependencies: - - ts-node + - postcss + dev: true + + /data-uri-to-buffer@2.0.2: + resolution: + { + integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==, + } dev: true /dataloader@1.4.0: @@ -4528,11 +5119,26 @@ packages: engines: { node: ">=0.10.0" } dev: true - /dedent@0.7.0: + /decompress-response@6.0.0: resolution: { - integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, } + engines: { node: ">=10" } + dependencies: + mimic-response: 3.1.0 + dev: true + + /dedent@1.5.1: + resolution: + { + integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==, + } + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true dev: true /deep-eql@4.1.3: @@ -4568,6 +5174,14 @@ packages: engines: { node: ">=0.10.0" } dev: true + /deepmerge@4.3.1: + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: ">=0.10.0" } + dev: true + /defaults@1.0.4: resolution: { @@ -4588,11 +5202,12 @@ packages: object-keys: 1.1.1 dev: true - /defined@1.0.1: + /dequal@2.0.3: resolution: { - integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==, + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, } + engines: { node: ">=6" } dev: true /detect-indent@6.1.0: @@ -4603,31 +5218,26 @@ packages: engines: { node: ">=8" } dev: true - /detect-newline@3.1.0: + /detect-libc@2.0.2: resolution: { - integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, + integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==, } engines: { node: ">=8" } dev: true - /detective@5.2.1: + /detect-newline@3.1.0: resolution: { - integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==, + integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, } - engines: { node: ">=0.8.0" } - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.1 - minimist: 1.2.7 + engines: { node: ">=8" } dev: true - /devalue@4.3.0: + /devalue@4.3.2: resolution: { - integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==, + integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==, } dev: true @@ -4638,14 +5248,6 @@ packages: } dev: true - /diff-sequences@29.3.1: - resolution: - { - integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==, - } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - dev: true - /diff-sequences@29.4.2: resolution: { @@ -4654,12 +5256,12 @@ packages: engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true - /diff@5.1.0: + /diff-sequences@29.6.3: resolution: { - integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, } - engines: { node: ">=0.3.1" } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true /dir-glob@3.0.1: @@ -4719,6 +5321,13 @@ packages: } dev: true + /electron-to-chromium@1.4.653: + resolution: + { + integrity: sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==, + } + dev: true + /emittery@0.13.1: resolution: { @@ -4727,6 +5336,13 @@ packages: engines: { node: ">=12" } dev: true + /emoji-regex@10.3.0: + resolution: + { + integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, + } + dev: true + /emoji-regex@8.0.0: resolution: { @@ -4741,6 +5357,15 @@ packages: } dev: true + /end-of-stream@1.4.4: + resolution: + { + integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, + } + dependencies: + once: 1.4.0 + dev: true + /enquirer@2.3.6: resolution: { @@ -4807,391 +5432,85 @@ packages: { integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, } - engines: { node: ">= 0.4" } - dependencies: - get-intrinsic: 1.2.0 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true - - /es-shim-unscopables@1.0.0: - resolution: - { - integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, - } - dependencies: - has: 1.0.3 - dev: true - - /es-to-primitive@1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: { node: ">= 0.4" } - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /es5-ext@0.10.62: - resolution: - { - integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, - } - engines: { node: ">=0.10" } - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: true - - /es6-iterator@2.0.3: - resolution: - { - integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, - } - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: true - - /es6-promise@3.3.1: - resolution: - { - integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==, - } - dev: true - - /es6-symbol@3.1.3: - resolution: - { - integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, - } - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: true - - /es6-weak-map@2.0.3: - resolution: - { - integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==, - } - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - dev: true - - /esbuild-android-64@0.15.18: - resolution: - { - integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.15.18: - resolution: - { - integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.15.18: - resolution: - { - integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.15.18: - resolution: - { - integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.15.18: - resolution: - { - integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.15.18: - resolution: - { - integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32@0.15.18: - resolution: - { - integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==, - } - engines: { node: ">=12" } - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64@0.15.18: - resolution: - { - integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==, - } - engines: { node: ">=12" } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64@0.15.18: - resolution: - { - integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==, - } - engines: { node: ">=12" } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm@0.15.18: - resolution: - { - integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==, - } - engines: { node: ">=12" } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le@0.15.18: - resolution: - { - integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==, - } - engines: { node: ">=12" } - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le@0.15.18: - resolution: - { - integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==, - } - engines: { node: ">=12" } - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64@0.15.18: - resolution: - { - integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==, - } - engines: { node: ">=12" } - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x@0.15.18: - resolution: - { - integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==, - } - engines: { node: ">=12" } - cpu: [s390x] - os: [linux] - requiresBuild: true + engines: { node: ">= 0.4" } + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 dev: true - optional: true - /esbuild-netbsd-64@0.15.18: + /es-shim-unscopables@1.0.0: resolution: { - integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==, + integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, } - engines: { node: ">=12" } - cpu: [x64] - os: [netbsd] - requiresBuild: true + dependencies: + has: 1.0.3 dev: true - optional: true - /esbuild-openbsd-64@0.15.18: + /es-to-primitive@1.2.1: resolution: { - integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==, + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, } - engines: { node: ">=12" } - cpu: [x64] - os: [openbsd] - requiresBuild: true + engines: { node: ">= 0.4" } + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 dev: true - optional: true - /esbuild-sunos-64@0.15.18: + /es5-ext@0.10.62: resolution: { - integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==, + integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, } - engines: { node: ">=12" } - cpu: [x64] - os: [sunos] + engines: { node: ">=0.10" } requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 dev: true - optional: true - /esbuild-windows-32@0.15.18: + /es6-iterator@2.0.3: resolution: { - integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==, + integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, } - engines: { node: ">=12" } - cpu: [ia32] - os: [win32] - requiresBuild: true + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 dev: true - optional: true - /esbuild-windows-64@0.15.18: + /es6-promise@3.3.1: resolution: { - integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==, + integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==, } - engines: { node: ">=12" } - cpu: [x64] - os: [win32] - requiresBuild: true dev: true - optional: true - /esbuild-windows-arm64@0.15.18: + /es6-symbol@3.1.3: resolution: { - integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==, + integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, } - engines: { node: ">=12" } - cpu: [arm64] - os: [win32] - requiresBuild: true + dependencies: + d: 1.0.1 + ext: 1.7.0 dev: true - optional: true - /esbuild@0.15.18: + /es6-weak-map@2.0.3: resolution: { - integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==, - } - engines: { node: ">=12" } - hasBin: true - requiresBuild: true - optionalDependencies: - "@esbuild/android-arm": 0.15.18 - "@esbuild/linux-loong64": 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: true - - /esbuild@0.16.17: - resolution: - { - integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==, + integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==, } - engines: { node: ">=12" } - hasBin: true - requiresBuild: true - optionalDependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 dev: true /esbuild@0.16.3: @@ -5227,37 +5546,71 @@ packages: "@esbuild/win32-x64": 0.16.3 dev: true - /esbuild@0.17.8: + /esbuild@0.17.19: resolution: { - integrity: sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==, + integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, + } + engines: { node: ">=12" } + hasBin: true + requiresBuild: true + optionalDependencies: + "@esbuild/android-arm": 0.17.19 + "@esbuild/android-arm64": 0.17.19 + "@esbuild/android-x64": 0.17.19 + "@esbuild/darwin-arm64": 0.17.19 + "@esbuild/darwin-x64": 0.17.19 + "@esbuild/freebsd-arm64": 0.17.19 + "@esbuild/freebsd-x64": 0.17.19 + "@esbuild/linux-arm": 0.17.19 + "@esbuild/linux-arm64": 0.17.19 + "@esbuild/linux-ia32": 0.17.19 + "@esbuild/linux-loong64": 0.17.19 + "@esbuild/linux-mips64el": 0.17.19 + "@esbuild/linux-ppc64": 0.17.19 + "@esbuild/linux-riscv64": 0.17.19 + "@esbuild/linux-s390x": 0.17.19 + "@esbuild/linux-x64": 0.17.19 + "@esbuild/netbsd-x64": 0.17.19 + "@esbuild/openbsd-x64": 0.17.19 + "@esbuild/sunos-x64": 0.17.19 + "@esbuild/win32-arm64": 0.17.19 + "@esbuild/win32-ia32": 0.17.19 + "@esbuild/win32-x64": 0.17.19 + dev: true + + /esbuild@0.19.12: + resolution: + { + integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==, } engines: { node: ">=12" } hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/android-arm": 0.17.8 - "@esbuild/android-arm64": 0.17.8 - "@esbuild/android-x64": 0.17.8 - "@esbuild/darwin-arm64": 0.17.8 - "@esbuild/darwin-x64": 0.17.8 - "@esbuild/freebsd-arm64": 0.17.8 - "@esbuild/freebsd-x64": 0.17.8 - "@esbuild/linux-arm": 0.17.8 - "@esbuild/linux-arm64": 0.17.8 - "@esbuild/linux-ia32": 0.17.8 - "@esbuild/linux-loong64": 0.17.8 - "@esbuild/linux-mips64el": 0.17.8 - "@esbuild/linux-ppc64": 0.17.8 - "@esbuild/linux-riscv64": 0.17.8 - "@esbuild/linux-s390x": 0.17.8 - "@esbuild/linux-x64": 0.17.8 - "@esbuild/netbsd-x64": 0.17.8 - "@esbuild/openbsd-x64": 0.17.8 - "@esbuild/sunos-x64": 0.17.8 - "@esbuild/win32-arm64": 0.17.8 - "@esbuild/win32-ia32": 0.17.8 - "@esbuild/win32-x64": 0.17.8 + "@esbuild/aix-ppc64": 0.19.12 + "@esbuild/android-arm": 0.19.12 + "@esbuild/android-arm64": 0.19.12 + "@esbuild/android-x64": 0.19.12 + "@esbuild/darwin-arm64": 0.19.12 + "@esbuild/darwin-x64": 0.19.12 + "@esbuild/freebsd-arm64": 0.19.12 + "@esbuild/freebsd-x64": 0.19.12 + "@esbuild/linux-arm": 0.19.12 + "@esbuild/linux-arm64": 0.19.12 + "@esbuild/linux-ia32": 0.19.12 + "@esbuild/linux-loong64": 0.19.12 + "@esbuild/linux-mips64el": 0.19.12 + "@esbuild/linux-ppc64": 0.19.12 + "@esbuild/linux-riscv64": 0.19.12 + "@esbuild/linux-s390x": 0.19.12 + "@esbuild/linux-x64": 0.19.12 + "@esbuild/netbsd-x64": 0.19.12 + "@esbuild/openbsd-x64": 0.19.12 + "@esbuild/sunos-x64": 0.19.12 + "@esbuild/win32-arm64": 0.19.12 + "@esbuild/win32-ia32": 0.19.12 + "@esbuild/win32-x64": 0.19.12 dev: true /escalade@3.1.1: @@ -5292,46 +5645,66 @@ packages: engines: { node: ">=10" } dev: true - /eslint-config-prettier@8.6.0(eslint@8.34.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: { - integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==, + integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==, } - hasBin: true + engines: { node: ">=12" } peerDependencies: - eslint: ">=7.0.0" + eslint: ">=6.0.0" dependencies: - eslint: 8.34.0 + eslint: 8.56.0 dev: true - /eslint-plugin-svelte3@4.0.0(eslint@8.34.0)(svelte@3.55.1): + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: { - integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==, + integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, } + hasBin: true peerDependencies: - eslint: ">=8.0.0" - svelte: ^3.2.0 + eslint: ">=7.0.0" dependencies: - eslint: 8.34.0 - svelte: 3.55.1 + eslint: 8.56.0 dev: true - /eslint-scope@5.1.1: + /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.9): resolution: { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, + integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==, } - engines: { node: ">=8.0.0" } + engines: { node: ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 + svelte: ^3.37.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@jridgewell/sourcemap-codec": 1.4.15 + debug: 4.3.4 + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) + esutils: 2.0.3 + known-css-properties: 0.29.0 + postcss: 8.4.33 + postcss-load-config: 3.1.4(postcss@8.4.33) + postcss-safe-parser: 6.0.0(postcss@8.4.33) + postcss-selector-parser: 6.0.11 + semver: 7.5.4 + svelte: 4.2.9 + svelte-eslint-parser: 0.33.1(svelte@4.2.9) + transitivePeerDependencies: + - supports-color + - ts-node dev: true - /eslint-scope@7.1.1: + /eslint-scope@7.2.2: resolution: { - integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, + integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: @@ -5339,81 +5712,59 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.34.0): - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, - } - engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } - peerDependencies: - eslint: ">=5" - dependencies: - eslint: 8.34.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys@2.1.0: - resolution: - { - integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, - } - engines: { node: ">=10" } - dev: true - - /eslint-visitor-keys@3.3.0: + /eslint-visitor-keys@3.4.3: resolution: { - integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /eslint@8.34.0: + /eslint@8.56.0: resolution: { - integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==, + integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } hasBin: true dependencies: - "@eslint/eslintrc": 1.4.1 - "@humanwhocodes/config-array": 0.11.8 + "@eslint-community/eslint-utils": 4.4.0(eslint@8.56.0) + "@eslint-community/regexpp": 4.10.0 + "@eslint/eslintrc": 2.1.4 + "@eslint/js": 8.56.0 + "@humanwhocodes/config-array": 0.11.14 "@humanwhocodes/module-importer": 1.0.1 "@nodelib/fs.walk": 1.2.8 + "@ungap/structured-clone": 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0(eslint@8.34.0) - eslint-visitor-keys: 3.3.0 - espree: 9.4.1 - esquery: 1.4.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.20.0 - grapheme-splitter: 1.0.4 + graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.3.0 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.1 - regexpp: 3.2.0 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color @@ -5426,16 +5777,16 @@ packages: } dev: true - /espree@9.4.1: + /espree@9.6.1: resolution: { - integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==, + integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.3.0 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -5447,10 +5798,10 @@ packages: hasBin: true dev: true - /esquery@1.4.0: + /esquery@1.5.0: resolution: { - integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, + integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, } engines: { node: ">=0.10" } dependencies: @@ -5467,14 +5818,6 @@ packages: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - } - engines: { node: ">=4.0" } - dev: true - /estraverse@5.3.0: resolution: { @@ -5497,6 +5840,15 @@ packages: } dev: true + /estree-walker@3.0.3: + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } + dependencies: + "@types/estree": 1.0.5 + dev: true + /esutils@2.0.3: resolution: { @@ -5515,6 +5867,13 @@ packages: es5-ext: 0.10.62 dev: true + /eventemitter3@5.0.1: + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } + dev: true + /execa@5.1.1: resolution: { @@ -5551,6 +5910,32 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } + 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 + dev: true + + /exit-hook@2.2.1: + resolution: + { + integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==, + } + engines: { node: ">=6" } + dev: true + /exit@0.1.2: resolution: { @@ -5559,18 +5944,12 @@ packages: engines: { node: ">= 0.8.0" } dev: true - /expect@29.4.1: + /expand-template@2.0.3: resolution: { - integrity: sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A==, + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - dependencies: - "@jest/expect-utils": 29.4.1 - jest-get-type: 29.2.0 - jest-matcher-utils: 29.4.1 - jest-message-util: 29.4.1 - jest-util: 29.4.1 + engines: { node: ">=6" } dev: true /expect@29.4.2: @@ -5587,6 +5966,20 @@ packages: jest-util: 29.4.2 dev: true + /expect@29.7.0: + resolution: + { + integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + dependencies: + "@jest/expect-utils": 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + /ext@1.7.0: resolution: { @@ -5636,6 +6029,20 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob@3.3.2: + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify@2.1.0: resolution: { @@ -5694,6 +6101,13 @@ packages: flat-cache: 3.0.4 dev: true + /file-uri-to-path@1.0.0: + resolution: + { + integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==, + } + dev: true + /fill-range@7.0.1: resolution: { @@ -5763,10 +6177,28 @@ packages: is-callable: 1.2.7 dev: true - /fraction.js@4.2.0: + /foreground-child@3.1.1: + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, + } + engines: { node: ">=14" } + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /fraction.js@4.3.7: + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } + dev: true + + /fs-constants@1.0.0: resolution: { - integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==, + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, } dev: true @@ -5812,6 +6244,17 @@ packages: dev: true optional: true + /fsevents@2.3.3: + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true + optional: true + /function-bind@1.1.1: resolution: { @@ -5819,6 +6262,13 @@ packages: } dev: true + /function-bind@1.1.2: + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } + dev: true + /function.prototype.name@1.1.5: resolution: { @@ -5855,10 +6305,18 @@ packages: engines: { node: 6.* || 8.* || >= 10.* } dev: true - /get-func-name@2.0.0: + /get-east-asian-width@1.2.0: + resolution: + { + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, + } + engines: { node: ">=18" } + dev: true + + /get-func-name@2.0.2: resolution: { - integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, } dev: true @@ -5881,6 +6339,16 @@ packages: engines: { node: ">=8.0.0" } dev: true + /get-source@2.0.12: + resolution: + { + integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==, + } + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + dev: true + /get-stream@6.0.1: resolution: { @@ -5889,6 +6357,14 @@ packages: engines: { node: ">=10" } dev: true + /get-stream@8.0.1: + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } + dev: true + /get-symbol-description@1.0.0: resolution: { @@ -5900,10 +6376,19 @@ packages: get-intrinsic: 1.2.0 dev: true - /get-tsconfig@4.4.0: + /get-tsconfig@4.7.2: + resolution: + { + integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, + } + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /github-from-package@0.0.0: resolution: { - integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==, + integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, } dev: true @@ -5927,6 +6412,28 @@ packages: is-glob: 4.0.3 dev: true + /glob-to-regexp@0.4.1: + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, + } + dev: true + + /glob@10.3.10: + resolution: + { + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, + } + engines: { node: ">=16 || 14 >=14.17" } + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + /glob@7.1.6: resolution: { @@ -6024,14 +6531,21 @@ packages: /graceful-fs@4.2.10: resolution: { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + } + dev: true + + /grapheme-splitter@1.0.4: + resolution: + { + integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, } dev: true - /grapheme-splitter@1.0.4: + /graphemer@1.4.0: resolution: { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, } dev: true @@ -6111,6 +6625,16 @@ packages: function-bind: 1.1.1 dev: true + /hasown@2.0.0: + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: { node: ">= 0.4" } + dependencies: + function-bind: 1.1.2 + dev: true + /hono@2.7.8: resolution: { @@ -6170,12 +6694,20 @@ packages: engines: { node: ">=12.20.0" } dev: true - /husky@8.0.3: + /human-signals@5.0.0: resolution: { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, } - engines: { node: ">=14" } + engines: { node: ">=16.17.0" } + dev: true + + /husky@9.0.10: + resolution: + { + integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==, + } + engines: { node: ">=18" } hasBin: true dev: true @@ -6189,6 +6721,13 @@ packages: safer-buffer: 2.1.2 dev: true + /ieee754@1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } + dev: true + /ignore@5.2.4: resolution: { @@ -6220,6 +6759,13 @@ packages: resolve-cwd: 3.0.0 dev: true + /import-meta-resolve@4.0.0: + resolution: + { + integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==, + } + dev: true + /imurmurhash@0.1.4: resolution: { @@ -6272,16 +6818,16 @@ packages: side-channel: 1.0.4 dev: true - /intl-messageformat@9.13.0: + /intl-messageformat@10.5.11: resolution: { - integrity: sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==, + integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==, } dependencies: - "@formatjs/ecma402-abstract": 1.11.4 - "@formatjs/fast-memoize": 1.2.1 - "@formatjs/icu-messageformat-parser": 2.1.0 - tslib: 2.5.0 + "@formatjs/ecma402-abstract": 1.18.2 + "@formatjs/fast-memoize": 2.2.0 + "@formatjs/icu-messageformat-parser": 2.7.6 + tslib: 2.6.2 dev: true /is-array-buffer@3.0.1: @@ -6302,13 +6848,6 @@ packages: } dev: true - /is-arrayish@0.3.2: - resolution: - { - integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, - } - dev: true - /is-bigint@1.0.4: resolution: { @@ -6347,23 +6886,22 @@ packages: engines: { node: ">= 0.4" } dev: true - /is-ci@3.0.1: + /is-core-module@2.11.0: resolution: { - integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, + integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, } - hasBin: true dependencies: - ci-info: 3.7.1 + has: 1.0.3 dev: true - /is-core-module@2.11.0: + /is-core-module@2.13.1: resolution: { - integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, } dependencies: - has: 1.0.3 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -6409,6 +6947,16 @@ packages: engines: { node: ">=12" } dev: true + /is-fullwidth-code-point@5.0.0: + resolution: + { + integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, + } + engines: { node: ">=18" } + dependencies: + get-east-asian-width: 1.2.0 + dev: true + /is-generator-fn@2.1.0: resolution: { @@ -6484,6 +7032,15 @@ packages: } dev: true + /is-reference@3.0.2: + resolution: + { + integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==, + } + dependencies: + "@types/estree": 1.0.5 + dev: true + /is-regex@1.1.4: resolution: { @@ -6614,7 +7171,7 @@ packages: engines: { node: ">=8" } dependencies: "@babel/core": 7.20.12 - "@babel/parser": 7.20.13 + "@babel/parser": 7.21.8 "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -6622,6 +7179,22 @@ packages: - supports-color dev: true + /istanbul-lib-instrument@6.0.1: + resolution: + { + integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==, + } + engines: { node: ">=10" } + dependencies: + "@babel/core": 7.20.12 + "@babel/parser": 7.21.8 + "@istanbuljs/schema": 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-report@3.0.0: resolution: { @@ -6659,6 +7232,18 @@ packages: istanbul-lib-report: 3.0.0 dev: true + /jackspeak@2.3.6: + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, + } + engines: { node: ">=14" } + dependencies: + "@isaacs/cliui": 8.0.2 + optionalDependencies: + "@pkgjs/parseargs": 0.11.0 + dev: true + /javascript-natural-sort@0.7.1: resolution: { @@ -6666,51 +7251,54 @@ packages: } dev: true - /jest-changed-files@29.4.2: + /jest-changed-files@29.7.0: resolution: { - integrity: sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw==, + integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: execa: 5.1.1 + jest-util: 29.7.0 p-limit: 3.1.0 dev: true - /jest-circus@29.4.2: + /jest-circus@29.7.0: resolution: { - integrity: sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg==, + integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/environment": 29.4.2 - "@jest/expect": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/environment": 29.7.0 + "@jest/expect": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 chalk: 4.1.2 co: 4.6.0 - dedent: 0.7.0 + dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 29.4.2 - jest-matcher-utils: 29.4.2 - jest-message-util: 29.4.2 - jest-runtime: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 29.4.2 + pretty-format: 29.7.0 + pure-rand: 6.0.4 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true - /jest-cli@29.4.2(@types/node@18.13.0): + /jest-cli@29.7.0(@types/node@20.11.16): resolution: { - integrity: sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q==, + integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true @@ -6720,28 +7308,28 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/types": 29.4.2 + "@jest/core": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.11.16) exit: 0.1.2 - graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.4.2(@types/node@18.13.0) - jest-util: 29.4.2 - jest-validate: 29.4.2 - prompts: 2.4.2 + jest-config: 29.7.0(@types/node@20.11.16) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.6.2 transitivePeerDependencies: - "@types/node" + - babel-plugin-macros - supports-color - ts-node dev: true - /jest-config@29.4.2(@types/node@18.13.0): + /jest-config@29.7.0(@types/node@20.11.16): resolution: { - integrity: sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA==, + integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } peerDependencies: @@ -6754,176 +7342,177 @@ packages: optional: true dependencies: "@babel/core": 7.20.12 - "@jest/test-sequencer": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 - babel-jest: 29.4.2(@babel/core@7.20.12) + "@jest/test-sequencer": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 + babel-jest: 29.7.0(@babel/core@7.20.12) chalk: 4.1.2 ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.4.2 - jest-environment-node: 29.4.2 - jest-get-type: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-runner: 29.4.2 - jest-util: 29.4.2 - jest-validate: 29.4.2 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.4.2 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true - /jest-diff@29.4.1: + /jest-diff@29.4.2: resolution: { - integrity: sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw==, + integrity: sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 - diff-sequences: 29.3.1 + diff-sequences: 29.4.2 jest-get-type: 29.4.2 pretty-format: 29.4.2 dev: true - /jest-diff@29.4.2: + /jest-diff@29.7.0: resolution: { - integrity: sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g==, + integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 - diff-sequences: 29.4.2 - jest-get-type: 29.4.2 - pretty-format: 29.4.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-docblock@29.4.2: + /jest-docblock@29.7.0: resolution: { - integrity: sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag==, + integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: detect-newline: 3.1.0 dev: true - /jest-each@29.4.2: + /jest-each@29.7.0: resolution: { - integrity: sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA==, + integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 + "@jest/types": 29.6.3 chalk: 4.1.2 - jest-get-type: 29.4.2 - jest-util: 29.4.2 - pretty-format: 29.4.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 dev: true - /jest-environment-node@29.4.2: + /jest-environment-node@29.7.0: resolution: { - integrity: sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w==, + integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/environment": 29.4.2 - "@jest/fake-timers": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 - jest-mock: 29.4.2 - jest-util: 29.4.2 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true - /jest-get-type@29.2.0: + /jest-get-type@29.4.2: resolution: { - integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==, + integrity: sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true - /jest-get-type@29.4.2: + /jest-get-type@29.6.3: resolution: { - integrity: sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg==, + integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true - /jest-haste-map@29.4.2: + /jest-haste-map@29.7.0: resolution: { - integrity: sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw==, + integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 + "@jest/types": 29.6.3 "@types/graceful-fs": 4.1.6 - "@types/node": 18.13.0 + "@types/node": 20.11.16 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 - jest-regex-util: 29.4.2 - jest-util: 29.4.2 - jest-worker: 29.4.2 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /jest-leak-detector@29.4.2: + /jest-leak-detector@29.7.0: resolution: { - integrity: sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA==, + integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - jest-get-type: 29.4.2 - pretty-format: 29.4.2 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-matcher-utils@29.4.1: + /jest-matcher-utils@29.4.2: resolution: { - integrity: sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA==, + integrity: sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 - jest-diff: 29.4.1 - jest-get-type: 29.2.0 + jest-diff: 29.4.2 + jest-get-type: 29.4.2 pretty-format: 29.4.2 dev: true - /jest-matcher-utils@29.4.2: + /jest-matcher-utils@29.7.0: resolution: { - integrity: sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg==, + integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 - jest-diff: 29.4.2 - jest-get-type: 29.4.2 - pretty-format: 29.4.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-message-util@29.4.1: + /jest-message-util@29.4.2: resolution: { - integrity: sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ==, + integrity: sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: @@ -6938,37 +7527,37 @@ packages: stack-utils: 2.0.6 dev: true - /jest-message-util@29.4.2: + /jest-message-util@29.7.0: resolution: { - integrity: sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==, + integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: "@babel/code-frame": 7.18.6 - "@jest/types": 29.4.2 + "@jest/types": 29.6.3 "@types/stack-utils": 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.4.2 + pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 dev: true - /jest-mock@29.4.2: + /jest-mock@29.7.0: resolution: { - integrity: sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g==, + integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 - "@types/node": 18.13.0 - jest-util: 29.4.2 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 + jest-util: 29.7.0 dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.4.2): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: { integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, @@ -6980,118 +7569,117 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.4.2 + jest-resolve: 29.7.0 dev: true - /jest-regex-util@29.4.2: + /jest-regex-util@29.6.3: resolution: { - integrity: sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig==, + integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dev: true - /jest-resolve-dependencies@29.4.2: + /jest-resolve-dependencies@29.7.0: resolution: { - integrity: sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg==, + integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - jest-regex-util: 29.4.2 - jest-snapshot: 29.4.2 + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.4.2: + /jest-resolve@29.7.0: resolution: { - integrity: sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw==, + integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-pnp-resolver: 1.2.3(jest-resolve@29.4.2) - jest-util: 29.4.2 - jest-validate: 29.4.2 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 resolve: 1.22.1 resolve.exports: 2.0.0 slash: 3.0.0 dev: true - /jest-runner@29.4.2: + /jest-runner@29.7.0: resolution: { - integrity: sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg==, + integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/console": 29.4.2 - "@jest/environment": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/transform": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/console": 29.7.0 + "@jest/environment": 29.7.0 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 - jest-docblock: 29.4.2 - jest-environment-node: 29.4.2 - jest-haste-map: 29.4.2 - jest-leak-detector: 29.4.2 - jest-message-util: 29.4.2 - jest-resolve: 29.4.2 - jest-runtime: 29.4.2 - jest-util: 29.4.2 - jest-watcher: 29.4.2 - jest-worker: 29.4.2 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.4.2: + /jest-runtime@29.7.0: resolution: { - integrity: sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw==, + integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/environment": 29.4.2 - "@jest/fake-timers": 29.4.2 - "@jest/globals": 29.4.2 - "@jest/source-map": 29.4.2 - "@jest/test-result": 29.4.2 - "@jest/transform": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/environment": 29.7.0 + "@jest/fake-timers": 29.7.0 + "@jest/globals": 29.7.0 + "@jest/source-map": 29.6.3 + "@jest/test-result": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-message-util: 29.4.2 - jest-mock: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 - semver: 7.3.8 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.4.2: + /jest-snapshot@29.7.0: resolution: { - integrity: sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw==, + integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: @@ -7099,109 +7687,105 @@ packages: "@babel/generator": 7.20.14 "@babel/plugin-syntax-jsx": 7.18.6(@babel/core@7.20.12) "@babel/plugin-syntax-typescript": 7.20.0(@babel/core@7.20.12) - "@babel/traverse": 7.20.13 "@babel/types": 7.20.7 - "@jest/expect-utils": 29.4.2 - "@jest/transform": 29.4.2 - "@jest/types": 29.4.2 - "@types/babel__traverse": 7.18.3 - "@types/prettier": 2.7.2 + "@jest/expect-utils": 29.7.0 + "@jest/transform": 29.7.0 + "@jest/types": 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12) chalk: 4.1.2 - expect: 29.4.2 + expect: 29.7.0 graceful-fs: 4.2.10 - jest-diff: 29.4.2 - jest-get-type: 29.4.2 - jest-haste-map: 29.4.2 - jest-matcher-utils: 29.4.2 - jest-message-util: 29.4.2 - jest-util: 29.4.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 29.4.2 - semver: 7.3.8 + pretty-format: 29.7.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /jest-util@29.4.1: + /jest-util@29.4.2: resolution: { - integrity: sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==, + integrity: sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.1 - "@types/node": 18.13.0 + "@jest/types": 29.4.2 + "@types/node": 20.11.16 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-util@29.4.2: + /jest-util@29.7.0: resolution: { - integrity: sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==, + integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate@29.4.2: + /jest-validate@29.7.0: resolution: { - integrity: sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q==, + integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/types": 29.4.2 + "@jest/types": 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.4.2 + jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.4.2 + pretty-format: 29.7.0 dev: true - /jest-watcher@29.4.2: + /jest-watcher@29.7.0: resolution: { - integrity: sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w==, + integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/test-result": 29.4.2 - "@jest/types": 29.4.2 - "@types/node": 18.13.0 + "@jest/test-result": 29.7.0 + "@jest/types": 29.6.3 + "@types/node": 20.11.16 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.4.2 + jest-util: 29.7.0 string-length: 4.0.2 dev: true - /jest-worker@29.4.2: + /jest-worker@29.7.0: resolution: { - integrity: sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw==, + integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@types/node": 18.13.0 - jest-util: 29.4.2 + "@types/node": 20.11.16 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.4.2(@types/node@18.13.0): + /jest@29.7.0(@types/node@20.11.16): resolution: { - integrity: sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg==, + integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } hasBin: true @@ -7211,16 +7795,25 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.4.2 - "@jest/types": 29.4.2 + "@jest/core": 29.7.0 + "@jest/types": 29.6.3 import-local: 3.1.0 - jest-cli: 29.4.2(@types/node@18.13.0) + jest-cli: 29.7.0(@types/node@20.11.16) transitivePeerDependencies: - "@types/node" + - babel-plugin-macros - supports-color - ts-node dev: true + /jiti@1.21.0: + resolution: + { + integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, + } + hasBin: true + dev: true + /joycon@3.1.1: resolution: { @@ -7229,10 +7822,10 @@ packages: engines: { node: ">=10" } dev: true - /js-sdsl@4.3.0: + /js-base64@3.7.6: resolution: { - integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==, + integrity: sha512-NPrWuHFxFUknr1KqJRDgUQPexQF0uIJWjeT+2KjEePhitQxQEx5EJBG1lVn5/hc8aLycTpXrDOgPQ6Zq+EDiTA==, } dev: true @@ -7350,6 +7943,32 @@ packages: engines: { node: ">=6" } dev: true + /known-css-properties@0.29.0: + resolution: + { + integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==, + } + dev: true + + /kysely-d1@0.3.0(kysely@0.25.0): + resolution: + { + integrity: sha512-9wTbE6ooLiYtBa4wPg9e4fjfcmvRtgE/2j9pAjYrIq+iz+EsH/Hj9YbtxpEXA6JoRgfulVQ1EtGj6aycGGRpYw==, + } + peerDependencies: + kysely: "*" + dependencies: + kysely: 0.25.0 + dev: true + + /kysely@0.25.0: + resolution: + { + integrity: sha512-srn0efIMu5IoEBk0tBmtGnoUss4uwvxtbFQWG/U2MosfqIace1l43IFP1PmEpHRDp+Z79xIcKEqmHH3dAvQdQA==, + } + engines: { node: ">=14.0.0" } + dev: true + /leven@3.1.0: resolution: { @@ -7369,14 +7988,22 @@ packages: type-check: 0.4.0 dev: true - /lilconfig@2.0.6: + /lilconfig@2.1.0: resolution: { - integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==, + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, } engines: { node: ">=10" } dev: true + /lilconfig@3.0.0: + resolution: + { + integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==, + } + engines: { node: ">=14" } + dev: true + /lines-and-columns@1.2.4: resolution: { @@ -7384,52 +8011,41 @@ packages: } dev: true - /lint-staged@13.1.1: + /lint-staged@15.2.1: resolution: { - integrity: sha512-LLJLO0Kdbcv2a+CvSF4p1M7jBZOajKSMpBUvyR8+bXccsqPER0/NxTFQSpNHjqwV9kM3tkHczYerTB5wI+bksQ==, + integrity: sha512-dhwAPnM85VdshybV9FWI/9ghTvMLoQLEXgVMx+ua2DN7mdfzd/tRfoU2yhMcBac0RHkofoxdnnJUokr8s4zKmQ==, } - engines: { node: ^14.13.1 || >=16.0.0 } + engines: { node: ">=18.12.0" } hasBin: true dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.19 - commander: 9.5.0 + chalk: 5.3.0 + commander: 11.1.0 debug: 4.3.4 - execa: 6.1.0 - lilconfig: 2.0.6 - listr2: 5.0.7 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 micromatch: 4.0.5 - normalize-path: 3.0.0 - object-inspect: 1.12.3 pidtree: 0.6.0 - string-argv: 0.3.1 - yaml: 2.2.1 + string-argv: 0.3.2 + yaml: 2.3.4 transitivePeerDependencies: - - enquirer - supports-color dev: true - /listr2@5.0.7: + /listr2@8.0.1: resolution: { - integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==, + integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==, } - engines: { node: ^14.13.1 || >=16.0.0 } - peerDependencies: - enquirer: ">= 2.3.0 < 3" - peerDependenciesMeta: - enquirer: - optional: true + engines: { node: ">=18.0.0" } dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.19 - log-update: 4.0.0 - p-map: 4.0.0 + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 rfdc: 1.3.0 - rxjs: 7.8.0 - through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 9.0.0 dev: true /load-tsconfig@0.2.3: @@ -7453,12 +8069,22 @@ packages: strip-bom: 3.0.0 dev: true - /local-pkg@0.4.3: + /local-pkg@0.5.0: resolution: { - integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, } engines: { node: ">=14" } + dependencies: + mlly: 1.5.0 + pkg-types: 1.0.3 + dev: true + + /locate-character@3.0.0: + resolution: + { + integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==, + } dev: true /locate-path@5.0.0: @@ -7530,17 +8156,18 @@ packages: } dev: true - /log-update@4.0.0: + /log-update@6.0.0: resolution: { - integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, + integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==, } - engines: { node: ">=10" } + engines: { node: ">=18" } dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 dev: true /loupe@2.3.6: @@ -7548,8 +8175,26 @@ packages: { integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==, } + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 + dependencies: + get-func-name: 2.0.2 + dev: true + + /loupe@2.3.7: + resolution: + { + integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==, + } dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 + dev: true + + /lru-cache@10.2.0: + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==, + } + engines: { node: 14 || >=16.14 } dev: true /lru-cache@4.1.5: @@ -7606,24 +8251,14 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string@0.27.0: - resolution: - { - integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, - } - engines: { node: ">=12" } - dependencies: - "@jridgewell/sourcemap-codec": 1.4.14 - dev: true - - /magic-string@0.30.0: + /magic-string@0.30.6: resolution: { - integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==, + integrity: sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==, } engines: { node: ">=12" } dependencies: - "@jridgewell/sourcemap-codec": 1.4.14 + "@jridgewell/sourcemap-codec": 1.4.15 dev: true /make-dir@3.1.0: @@ -7668,15 +8303,22 @@ packages: engines: { node: ">=8" } dev: true - /marked@4.2.12: + /marked@4.3.0: resolution: { - integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==, + integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==, } engines: { node: ">= 12" } hasBin: true dev: true + /mdn-data@2.0.30: + resolution: + { + integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, + } + dev: true + /memoizee@0.4.15: resolution: { @@ -7784,6 +8426,22 @@ packages: hasBin: true dev: true + /mimetext@3.0.16: + resolution: + { + integrity: sha512-uqtsQ2eNEpqoLUBSGSF6Y9eSbbNNeiknv7M6k5nzcs7M0uWtSjqWINYe6ZY/CowxnVDtNFSX+k9K6IicPboNBg==, + } + dependencies: + "@babel/runtime": 7.20.13 + "@babel/runtime-corejs3": 7.23.9 + "@tsconfig/esm": 1.0.5 + "@tsconfig/node18": 2.0.1 + "@tsconfig/strictest": 2.0.2 + "@types/node": 20.11.16 + js-base64: 3.7.6 + mime-types: 2.1.35 + dev: true + /mimic-fn@2.1.0: resolution: { @@ -7800,6 +8458,14 @@ packages: engines: { node: ">=12" } dev: true + /mimic-response@3.1.0: + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + } + engines: { node: ">=10" } + dev: true + /min-indent@1.0.1: resolution: { @@ -7853,6 +8519,32 @@ packages: - utf-8-validate dev: true + /miniflare@3.20240129.0: + resolution: + { + integrity: sha512-27pDhlP2G/4gXmvnSt6LjMQ8KrkmbJElIQmn+BLjdiyIx+zXY4E8MSPJmi9flgf0dn3wtjuHO2ASenuopqqxrw==, + } + engines: { node: ">=16.13" } + hasBin: true + dependencies: + "@cspotcode/source-map-support": 0.8.1 + acorn: 8.8.2 + acorn-walk: 8.2.0 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.2 + workerd: 1.20240129.0 + ws: 8.12.0 + youch: 3.3.3 + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /minimatch@3.1.2: resolution: { @@ -7862,12 +8554,12 @@ packages: brace-expansion: 1.1.11 dev: true - /minimatch@6.1.10: + /minimatch@9.0.3: resolution: { - integrity: sha512-+zx+2Cp+C4Ar8yNvGtxbLr7AjblzdF16P8CeyZEEGVAIhTLHM51wchc6+JKQkxdznmQtHn/dWQgzt5SiU3+leg==, + integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, } - engines: { node: ">=10" } + engines: { node: ">=16 || 14 >=14.17" } dependencies: brace-expansion: 2.0.1 dev: true @@ -7891,6 +8583,14 @@ packages: } dev: true + /minipass@7.0.4: + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, + } + engines: { node: ">=16 || 14 >=14.17" } + dev: true + /mixme@0.5.5: resolution: { @@ -7899,6 +8599,13 @@ packages: engines: { node: ">= 8.0.0" } dev: true + /mkdirp-classic@0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } + dev: true + /mkdirp@0.5.6: resolution: { @@ -7909,16 +8616,16 @@ packages: minimist: 1.2.7 dev: true - /mlly@1.1.0: + /mlly@1.5.0: resolution: { - integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==, + integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==, } dependencies: - acorn: 8.8.2 - pathe: 1.1.0 - pkg-types: 1.0.1 - ufo: 1.0.1 + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.3.2 dev: true /mri@1.2.0: @@ -7929,10 +8636,10 @@ packages: engines: { node: ">=4" } dev: true - /mrmime@1.0.1: + /mrmime@2.0.0: resolution: { - integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, + integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==, } engines: { node: ">=10" } dev: true @@ -7979,10 +8686,19 @@ packages: hasBin: true dev: true - /natural-compare-lite@1.4.0: + /nanoid@3.3.7: + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /napi-build-utils@1.0.2: resolution: { - integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, + integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==, } dev: true @@ -8008,6 +8724,16 @@ packages: } dev: true + /node-abi@3.54.0: + resolution: + { + integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==, + } + engines: { node: ">=10" } + dependencies: + semver: 7.5.4 + dev: true + /node-fetch@2.6.8: resolution: { @@ -8038,6 +8764,13 @@ packages: } dev: true + /node-releases@2.0.14: + resolution: + { + integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, + } + dev: true + /node-releases@2.0.8: resolution: { @@ -8186,19 +8919,28 @@ packages: mimic-fn: 4.0.0 dev: true - /optionator@0.9.1: + /openapi3-ts@4.2.1: + resolution: + { + integrity: sha512-KL1mKwkZii5ce+tb24KCUmQHyWB/oanG5fzUY35UB+wenWJv4Kr/IWBntpn5R8ODiJcxx13ZDophcpHnLGeIOw==, + } + dependencies: + yaml: 2.3.4 + dev: true + + /optionator@0.9.3: resolution: { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, + integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, } engines: { node: ">= 0.8.0" } dependencies: + "@aashutoshrathi/word-wrap": 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /os-tmpdir@1.0.2: @@ -8246,12 +8988,12 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: + /p-limit@5.0.0: resolution: { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==, } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + engines: { node: ">=18" } dependencies: yocto-queue: 1.0.0 dev: true @@ -8284,16 +9026,6 @@ packages: engines: { node: ">=6" } dev: true - /p-map@4.0.0: - resolution: - { - integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, - } - engines: { node: ">=10" } - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-try@2.2.0: resolution: { @@ -8378,6 +9110,17 @@ packages: } dev: true + /path-scurry@1.10.1: + resolution: + { + integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, + } + engines: { node: ">=16 || 14 >=14.17" } + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + /path-to-regexp@2.2.1: resolution: { @@ -8400,10 +9143,10 @@ packages: engines: { node: ">=8" } dev: true - /pathe@1.1.0: + /pathe@1.1.2: resolution: { - integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==, + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, } dev: true @@ -8414,6 +9157,17 @@ packages: } dev: true + /periscopic@3.1.0: + resolution: + { + integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==, + } + dependencies: + "@types/estree": 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: true + /picocolors@1.0.0: resolution: { @@ -8472,42 +9226,55 @@ packages: find-up: 4.1.0 dev: true - /pkg-types@1.0.1: + /pkg-types@1.0.3: resolution: { - integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==, + integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, } dependencies: jsonc-parser: 3.2.0 - mlly: 1.1.0 - pathe: 1.1.0 + mlly: 1.5.0 + pathe: 1.1.2 dev: true - /playwright-core@1.30.0: + /playwright-core@1.41.2: resolution: { - integrity: sha512-7AnRmTCf+GVYhHbLJsGUtskWTE33SwMZkybJ0v6rqR1boxq2x36U7p1vDRV7HO2IwTZgmycracLxPEJI49wu4g==, + integrity: sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==, } - engines: { node: ">=14" } + engines: { node: ">=16" } hasBin: true dev: true - /postcss-import@14.1.0(postcss@8.4.21): + /playwright@1.41.2: resolution: { - integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==, + integrity: sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==, } - engines: { node: ">=10.0.0" } + engines: { node: ">=16" } + hasBin: true + dependencies: + playwright-core: 1.41.2 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /postcss-import@15.1.0(postcss@8.4.33): + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.33 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.21): + /postcss-js@4.0.1(postcss@8.4.33): resolution: { integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, @@ -8517,10 +9284,10 @@ packages: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.21 + postcss: 8.4.33 dev: true - /postcss-load-config@3.1.4(postcss@8.4.21): + /postcss-load-config@3.1.4(postcss@8.4.33): resolution: { integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, @@ -8535,24 +9302,68 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.0.6 - postcss: 8.4.21 + lilconfig: 2.1.0 + postcss: 8.4.33 yaml: 1.10.2 dev: true - /postcss-nested@6.0.0(postcss@8.4.21): + /postcss-load-config@4.0.2(postcss@8.4.33): + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: ">= 14" } + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.33 + yaml: 2.3.4 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.33): resolution: { - integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==, + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, } engines: { node: ">=12.0" } peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.21 + postcss: 8.4.33 postcss-selector-parser: 6.0.11 dev: true + /postcss-safe-parser@6.0.0(postcss@8.4.33): + resolution: + { + integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, + } + engines: { node: ">=12.0" } + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.33 + dev: true + + /postcss-scss@4.0.9(postcss@8.4.33): + resolution: + { + integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==, + } + engines: { node: ">=12.0" } + peerDependencies: + postcss: ^8.4.29 + dependencies: + postcss: 8.4.33 + dev: true + /postcss-selector-parser@6.0.10: resolution: { @@ -8582,18 +9393,40 @@ packages: } dev: true - /postcss@8.4.21: + /postcss@8.4.33: resolution: { - integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==, + integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==, } engines: { node: ^10 || ^12 || >=14 } dependencies: - nanoid: 3.3.4 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true + /prebuild-install@7.1.1: + resolution: + { + integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==, + } + engines: { node: ">=10" } + hasBin: true + dependencies: + detect-libc: 2.0.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.7 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.54.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + /preferred-pm@3.0.3: resolution: { @@ -8615,50 +9448,68 @@ packages: engines: { node: ">= 0.8.0" } dev: true - /prettier-plugin-svelte@2.9.0(prettier@2.8.4)(svelte@3.55.1): + /prettier-plugin-organize-imports@3.2.4(prettier@3.2.4)(typescript@5.3.3): + resolution: + { + integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==, + } + peerDependencies: + "@volar/vue-language-plugin-pug": ^1.0.4 + "@volar/vue-typescript": ^1.0.4 + prettier: ">=2.0" + typescript: ">=2.9" + peerDependenciesMeta: + "@volar/vue-language-plugin-pug": + optional: true + "@volar/vue-typescript": + optional: true + dependencies: + prettier: 3.2.4 + typescript: 5.3.3 + dev: true + + /prettier-plugin-svelte@3.1.2(prettier@3.2.4)(svelte@4.2.9): resolution: { - integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==, + integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==, } peerDependencies: - prettier: ^1.16.4 || ^2.0.0 - svelte: ^3.2.0 + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: - prettier: 2.8.4 - svelte: 3.55.1 + prettier: 3.2.4 + svelte: 4.2.9 dev: true - /prettier-plugin-tailwindcss@0.2.2(@trivago/prettier-plugin-sort-imports@4.0.0)(prettier-plugin-svelte@2.9.0)(prettier@2.8.4): + /prettier-plugin-tailwindcss@0.5.11(@trivago/prettier-plugin-sort-imports@4.3.0)(prettier-plugin-organize-imports@3.2.4)(prettier-plugin-svelte@3.1.2)(prettier@3.2.4): resolution: { - integrity: sha512-5RjUbWRe305pUpc48MosoIp6uxZvZxrM6GyOgsbGLTce+ehePKNm7ziW2dLG2air9aXbGuXlHVSQQw4Lbosq3w==, + integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==, } - engines: { node: ">=12.17.0" } + engines: { node: ">=14.21.3" } peerDependencies: - "@prettier/plugin-php": "*" + "@ianvs/prettier-plugin-sort-imports": "*" "@prettier/plugin-pug": "*" "@shopify/prettier-plugin-liquid": "*" - "@shufo/prettier-plugin-blade": "*" "@trivago/prettier-plugin-sort-imports": "*" - prettier: ">=2.2.0" + prettier: ^3.0 prettier-plugin-astro: "*" prettier-plugin-css-order: "*" prettier-plugin-import-sort: "*" prettier-plugin-jsdoc: "*" + prettier-plugin-marko: "*" prettier-plugin-organize-attributes: "*" prettier-plugin-organize-imports: "*" prettier-plugin-style-order: "*" prettier-plugin-svelte: "*" prettier-plugin-twig-melody: "*" peerDependenciesMeta: - "@prettier/plugin-php": + "@ianvs/prettier-plugin-sort-imports": optional: true "@prettier/plugin-pug": optional: true "@shopify/prettier-plugin-liquid": optional: true - "@shufo/prettier-plugin-blade": - optional: true "@trivago/prettier-plugin-sort-imports": optional: true prettier-plugin-astro: @@ -8669,6 +9520,8 @@ packages: optional: true prettier-plugin-jsdoc: optional: true + prettier-plugin-marko: + optional: true prettier-plugin-organize-attributes: optional: true prettier-plugin-organize-imports: @@ -8680,9 +9533,10 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - "@trivago/prettier-plugin-sort-imports": 4.0.0(@vue/compiler-sfc@3.3.4)(prettier@2.8.4) - prettier: 2.8.4 - prettier-plugin-svelte: 2.9.0(prettier@2.8.4)(svelte@3.55.1) + "@trivago/prettier-plugin-sort-imports": 4.3.0(prettier@3.2.4) + prettier: 3.2.4 + prettier-plugin-organize-imports: 3.2.4(prettier@3.2.4)(typescript@5.3.3) + prettier-plugin-svelte: 3.1.2(prettier@3.2.4)(svelte@4.2.9) dev: true /prettier@2.8.4: @@ -8694,42 +9548,46 @@ packages: hasBin: true dev: true - /pretty-format@27.5.1: + /prettier@3.2.4: resolution: { - integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, + integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==, } - engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 + engines: { node: ">=14" } + hasBin: true dev: true - /pretty-format@29.4.1: + /pretty-format@29.4.2: resolution: { - integrity: sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg==, + integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/schemas": 29.4.0 + "@jest/schemas": 29.4.2 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true - /pretty-format@29.4.2: + /pretty-format@29.7.0: resolution: { - integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==, + integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@jest/schemas": 29.4.2 + "@jest/schemas": 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true + /printable-characters@1.0.42: + resolution: + { + integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==, + } + dev: true + /prompts@2.4.2: resolution: { @@ -8748,6 +9606,16 @@ packages: } dev: true + /pump@3.0.0: + resolution: + { + integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, + } + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode@1.4.1: resolution: { @@ -8763,27 +9631,26 @@ packages: engines: { node: ">=6" } dev: true - /queue-microtask@1.2.3: + /pure-rand@6.0.4: resolution: { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==, } dev: true - /quick-lru@4.0.1: + /queue-microtask@1.2.3: resolution: { - integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, } - engines: { node: ">=8" } dev: true - /quick-lru@5.1.1: + /quick-lru@4.0.1: resolution: { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, + integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, } - engines: { node: ">=10" } + engines: { node: ">=8" } dev: true /range-parser@1.2.0: @@ -8807,13 +9674,6 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-is@17.0.2: - resolution: - { - integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, - } - dev: true - /react-is@18.2.0: resolution: { @@ -8868,6 +9728,18 @@ packages: strip-bom: 3.0.0 dev: true + /readable-stream@3.6.2: + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: ">= 6" } + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + /readdirp@3.6.0: resolution: { @@ -8896,6 +9768,13 @@ packages: } dev: true + /regenerator-runtime@0.14.1: + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, + } + dev: true + /regexp.prototype.flags@1.4.3: resolution: { @@ -8908,18 +9787,10 @@ packages: functions-have-names: 1.2.3 dev: true - /regexparam@2.0.1: - resolution: - { - integrity: sha512-zRgSaYemnNYxUv+/5SeoHI0eJIgTL/A2pUtXUPLHQxUldagouJ9p+K6IbIZ/JiQuCEv2E2B1O11SjVQy3aMCkw==, - } - engines: { node: ">=8" } - dev: true - - /regexpp@3.2.0: + /regexparam@3.0.0: resolution: { - integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, + integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==, } engines: { node: ">=8" } dev: true @@ -8993,6 +9864,13 @@ packages: engines: { node: ">=8" } dev: true + /resolve-pkg-maps@1.0.0: + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } + dev: true + /resolve.exports@2.0.0: resolution: { @@ -9001,6 +9879,14 @@ packages: engines: { node: ">=10" } dev: true + /resolve.exports@2.0.2: + resolution: + { + integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, + } + engines: { node: ">=10" } + dev: true + /resolve@1.22.1: resolution: { @@ -9013,12 +9899,24 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor@3.1.0: + /resolve@1.22.8: resolution: { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, } - engines: { node: ">=8" } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@4.0.0: + resolution: + { + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } dependencies: onetime: 5.1.2 signal-exit: 3.0.7 @@ -9089,15 +9987,30 @@ packages: estree-walker: 0.6.1 dev: true - /rollup@3.12.0: + /rollup@4.9.6: resolution: { - integrity: sha512-4MZ8kA2HNYahIjz63rzrMMRvDqQDeS9LoriJvMuV0V6zIGysP36e9t4yObUfwdT9h/szXoHQideICftcdZklWg==, + integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==, } - engines: { node: ">=14.18.0", npm: ">=8.0.0" } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true + dependencies: + "@types/estree": 1.0.5 optionalDependencies: - fsevents: 2.3.2 + "@rollup/rollup-android-arm-eabi": 4.9.6 + "@rollup/rollup-android-arm64": 4.9.6 + "@rollup/rollup-darwin-arm64": 4.9.6 + "@rollup/rollup-darwin-x64": 4.9.6 + "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 + "@rollup/rollup-linux-arm64-gnu": 4.9.6 + "@rollup/rollup-linux-arm64-musl": 4.9.6 + "@rollup/rollup-linux-riscv64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-musl": 4.9.6 + "@rollup/rollup-win32-arm64-msvc": 4.9.6 + "@rollup/rollup-win32-ia32-msvc": 4.9.6 + "@rollup/rollup-win32-x64-msvc": 4.9.6 + fsevents: 2.3.3 dev: true /run-parallel@1.2.0: @@ -9109,15 +10022,6 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.0: - resolution: - { - integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==, - } - dependencies: - tslib: 2.5.0 - dev: true - /sade@1.8.1: resolution: { @@ -9217,6 +10121,17 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.5.4: + resolution: + { + integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, + } + engines: { node: ">=10" } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /serve-handler@6.1.5: resolution: { @@ -9233,10 +10148,10 @@ packages: range-parser: 1.2.0 dev: true - /serve@14.2.0: + /serve@14.2.1: resolution: { - integrity: sha512-+HOw/XK1bW8tw5iBilBz/mJLWRzM8XM6MPxL4J/dKzdxq1vfdEWSwhaR7/yS8EJp5wzvP92p1qirysJvnEtjXg==, + integrity: sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==, } engines: { node: ">= 14" } hasBin: true @@ -9270,6 +10185,13 @@ packages: } dev: true + /set-cookie-parser@2.6.0: + resolution: + { + integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==, + } + dev: true + /shebang-command@1.2.0: resolution: { @@ -9306,10 +10228,10 @@ packages: engines: { node: ">=8" } dev: true - /shiki@0.14.1: + /shiki@0.14.7: resolution: { - integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==, + integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==, } dependencies: ansi-sequence-parser: 1.1.0 @@ -9343,24 +10265,41 @@ packages: } dev: true - /simple-swizzle@0.2.2: + /signal-exit@4.1.0: + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } + dev: true + + /simple-concat@1.0.1: + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, + } + dev: true + + /simple-get@4.0.1: resolution: { - integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, } dependencies: - is-arrayish: 0.3.2 + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 dev: true - /sirv@2.0.2: + /sirv@2.0.4: resolution: { - integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==, + integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==, } engines: { node: ">= 10" } dependencies: - "@polka/url": 1.0.0-next.21 - mrmime: 1.0.1 + "@polka/url": 1.0.0-next.24 + mrmime: 2.0.0 totalist: 3.0.0 dev: true @@ -9379,39 +10318,26 @@ packages: engines: { node: ">=8" } dev: true - /slice-ansi@3.0.0: - resolution: - { - integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, - } - engines: { node: ">=8" } - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /slice-ansi@4.0.0: + /slice-ansi@5.0.0: resolution: { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, } - engines: { node: ">=10" } + engines: { node: ">=12" } dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 dev: true - /slice-ansi@5.0.0: + /slice-ansi@7.1.0: resolution: { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, } - engines: { node: ">=12" } + engines: { node: ">=18" } dependencies: ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 + is-fullwidth-code-point: 5.0.0 dev: true /smartwrap@2.0.2: @@ -9588,11 +10514,29 @@ packages: } dev: true - /std-env@3.3.2: + /stacktracey@2.1.8: + resolution: + { + integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==, + } + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 + dev: true + + /std-env@3.7.0: + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } + dev: true + + /stoppable@1.1.0: resolution: { - integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==, + integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==, } + engines: { node: ">=4", npm: ">=6" } dev: true /stream-transform@2.1.3: @@ -9612,10 +10556,10 @@ packages: engines: { node: ">=10.0.0" } dev: true - /string-argv@0.3.1: + /string-argv@0.3.2: resolution: { - integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==, + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, } engines: { node: ">=0.6.19" } dev: true @@ -9655,6 +10599,18 @@ packages: strip-ansi: 7.0.1 dev: true + /string-width@7.1.0: + resolution: + { + integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==, + } + engines: { node: ">=18" } + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + /string.prototype.trimend@1.0.6: resolution: { @@ -9677,6 +10633,15 @@ packages: es-abstract: 1.21.1 dev: true + /string_decoder@1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + /strip-ansi@6.0.1: resolution: { @@ -9697,6 +10662,16 @@ packages: ansi-regex: 6.0.1 dev: true + /strip-ansi@7.1.0: + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom@3.0.0: resolution: { @@ -9755,13 +10730,13 @@ packages: engines: { node: ">=8" } dev: true - /strip-literal@1.0.1: + /strip-literal@1.3.0: resolution: { - integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==, + integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==, } dependencies: - acorn: 8.8.2 + acorn: 8.11.3 dev: true /sucrase@3.29.0: @@ -9780,6 +10755,23 @@ packages: ts-interface-checker: 0.1.13 dev: true + /sucrase@3.35.0: + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: ">=16 || 14 >=14.17" } + hasBin: true + dependencies: + "@jridgewell/gen-mapping": 0.3.2 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: true + /supports-color@5.5.0: resolution: { @@ -9818,14 +10810,14 @@ packages: engines: { node: ">= 0.4" } dev: true - /svelte-check@3.0.3(@babel/core@7.20.12)(postcss@8.4.21)(svelte@3.55.1): + /svelte-check@3.6.3(@babel/core@7.20.12)(postcss@8.4.33)(svelte@4.2.9): resolution: { - integrity: sha512-ByBFXo3bfHRGIsYEasHkdMhLkNleVfszX/Ns1oip58tPJlKdo5Ssr8kgVIuo5oq00hss8AIcdesuy0Xt0BcTvg==, + integrity: sha512-Q2nGnoysxUnB9KjnjpQLZwdjK62DHyW6nuH/gm2qteFnDk0lCehe/6z8TsIvYeKjC6luKaWxiNGyOcWiLLPSwA==, } hasBin: true peerDependencies: - svelte: ^3.55.0 + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: "@jridgewell/trace-mapping": 0.3.17 chokidar: 3.5.3 @@ -9833,9 +10825,9 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 3.55.1 - svelte-preprocess: 5.0.1(@babel/core@7.20.12)(postcss@8.4.21)(svelte@3.55.1)(typescript@4.9.5) - typescript: 4.9.5 + svelte: 4.2.9 + svelte-preprocess: 5.1.3(@babel/core@7.20.12)(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - "@babel/core" - coffeescript @@ -9848,56 +10840,77 @@ packages: - sugarss dev: true - /svelte-hmr@0.15.1(svelte@3.55.1): + /svelte-eslint-parser@0.33.1(svelte@4.2.9): + resolution: + { + integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 + peerDependenciesMeta: + svelte: + optional: true + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + postcss: 8.4.33 + postcss-scss: 4.0.9(postcss@8.4.33) + svelte: 4.2.9 + dev: true + + /svelte-hmr@0.15.3(svelte@4.2.9): resolution: { - integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==, + integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==, } engines: { node: ^12.20 || ^14.13.1 || >= 16 } peerDependencies: - svelte: ">=3.19.0" + svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 3.55.1 + svelte: 4.2.9 dev: true - /svelte-i18n@3.6.0(svelte@3.55.1): + /svelte-i18n@4.0.0(svelte@4.2.9): resolution: { - integrity: sha512-qvvcMqHVCXJ5pHoQR5uGzWAW5vS3qB9mBq+W6veLZ6jkrzZGOziR+wyOUJsc59BupMh+Ae30qjOndFrRU6v5jA==, + integrity: sha512-4vivjKZADUMRIhTs38JuBNy3unbnh9AFRxWFLxq62P4NHic+/BaIZZlAsvqsCdnp7IdJf5EoSiH6TNdItcjA6g==, } engines: { node: ">= 16" } hasBin: true peerDependencies: - svelte: ^3.25.1 + svelte: ^3 || ^4 dependencies: cli-color: 2.0.3 deepmerge: 4.2.2 + esbuild: 0.19.12 estree-walker: 2.0.2 - intl-messageformat: 9.13.0 + intl-messageformat: 10.5.11 sade: 1.8.1 - svelte: 3.55.1 + svelte: 4.2.9 tiny-glob: 0.2.9 dev: true - /svelte-preprocess@5.0.1(@babel/core@7.20.12)(postcss@8.4.21)(svelte@3.55.1)(typescript@4.9.5): + /svelte-preprocess@5.1.3(@babel/core@7.20.12)(postcss@8.4.33)(svelte@4.2.9)(typescript@5.3.3): resolution: { - integrity: sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==, + integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==, } - engines: { node: ">= 14.10.0" } + engines: { node: ">= 16.0.0", pnpm: ^8.0.0 } requiresBuild: true peerDependencies: "@babel/core": ^7.10.2 coffeescript: ^2.5.1 less: ^3.11.3 || ^4.0.0 postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 pug: ^3.0.0 sass: ^1.26.8 stylus: ^0.55.0 sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 - typescript: ^3.9.5 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: ">=3.9.5 || ^4.0.0 || ^5.0.0" peerDependenciesMeta: "@babel/core": optional: true @@ -9922,61 +10935,144 @@ packages: dependencies: "@babel/core": 7.20.12 "@types/pug": 2.0.6 - "@types/sass": 1.43.1 detect-indent: 6.1.0 - magic-string: 0.27.0 - postcss: 8.4.21 + magic-string: 0.30.6 + postcss: 8.4.33 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 3.55.1 - typescript: 4.9.5 + svelte: 4.2.9 + typescript: 5.3.3 dev: true - /svelte@3.55.1: + /svelte@4.2.9: resolution: { - integrity: sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==, + integrity: sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==, } - engines: { node: ">= 8" } + engines: { node: ">=16" } + dependencies: + "@ampproject/remapping": 2.2.1 + "@jridgewell/sourcemap-codec": 1.4.15 + "@jridgewell/trace-mapping": 0.3.22 + "@types/estree": 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.6 + periscopic: 3.1.0 dev: true - /tailwindcss@3.2.6(postcss@8.4.21): + /sveltekit-api@0.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.9): resolution: { - integrity: sha512-BfgQWZrtqowOQMC2bwaSNe7xcIjdDEgixWGYOd6AL0CbKHJlvhfdbINeAW76l1sO+1ov/MJ93ODJ9yluRituIw==, + integrity: sha512-NDpFiC1cSPQoflFS8hOZmle8aNfVijkeh+qaGnT6z7ZhfEkkoKZbFNCbmyzBskOC1TFsKFF53iYDBRs+lg0Dzg==, + } + peerDependencies: + "@sveltejs/kit": ^1.0.0 || ^2.0.0 + svelte: ^3.0.0 || ^4.0.0 + dependencies: + "@asteasolutions/zod-to-openapi": 6.3.1(zod@3.22.4) + "@sveltejs/kit": 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + debug: 4.3.4 + svelte: 4.2.9 + type-fest: 4.10.2 + zod: 3.22.4 + zod-validation-error: 3.0.0(zod@3.22.4) + transitivePeerDependencies: + - supports-color + dev: true + + /sveltekit-db@0.2.0(@sveltejs/kit@2.5.0)(better-sqlite3@9.3.0)(kysely-d1@0.3.0)(svelte@4.2.9): + resolution: + { + integrity: sha512-DqCn4B6vwjWw7oROaEv5nijGLzW1fndx1bPNpPUEvA3P+oX1ZyNHDn+pDqnbY8KKEgXd7gUxiJH9VvNJ/vb9ag==, } - engines: { node: ">=12.13.0" } - hasBin: true peerDependencies: - postcss: ^8.0.9 + "@sveltejs/kit": ^1.0.0 || ^2.0.0 + better-sqlite3: "*" + kysely-d1: "*" + svelte: "*" + peerDependenciesMeta: + better-sqlite3: + optional: true + kysely-d1: + optional: true + dependencies: + "@sveltejs/kit": 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + better-sqlite3: 9.3.0 + debug: 4.3.4 + kysely: 0.25.0 + kysely-d1: 0.3.0(kysely@0.25.0) + svelte: 4.2.9 + transitivePeerDependencies: + - supports-color + dev: true + + /tailwindcss@3.4.1: + resolution: + { + integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==, + } + engines: { node: ">=14.0.0" } + hasBin: true dependencies: + "@alloc/quick-lru": 5.2.0 arg: 5.0.2 chokidar: 3.5.3 - color-name: 1.1.4 - detective: 5.2.1 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.12 + fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - lilconfig: 2.0.6 + jiti: 1.21.0 + lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0(postcss@8.4.21) - postcss-js: 4.0.1(postcss@8.4.21) - postcss-load-config: 3.1.4(postcss@8.4.21) - postcss-nested: 6.0.0(postcss@8.4.21) + postcss: 8.4.33 + postcss-import: 15.1.0(postcss@8.4.33) + postcss-js: 4.0.1(postcss@8.4.33) + postcss-load-config: 4.0.2(postcss@8.4.33) + postcss-nested: 6.0.1(postcss@8.4.33) postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 + resolve: 1.22.8 + sucrase: 3.35.0 transitivePeerDependencies: - ts-node dev: true + /tar-fs@2.1.1: + resolution: + { + integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==, + } + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + dev: true + + /tar-stream@2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: ">=6" } + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /term-size@2.2.1: resolution: { @@ -10023,13 +11119,6 @@ packages: any-promise: 1.3.0 dev: true - /through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } - dev: true - /timers-ext@0.1.7: resolution: { @@ -10050,25 +11139,25 @@ packages: globrex: 0.1.2 dev: true - /tinybench@2.3.1: + /tinybench@2.6.0: resolution: { - integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==, + integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==, } dev: true - /tinypool@0.3.1: + /tinypool@0.8.2: resolution: { - integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==, + integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==, } engines: { node: ">=14.0.0" } dev: true - /tinyspy@1.1.1: + /tinyspy@2.2.0: resolution: { - integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==, + integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==, } engines: { node: ">=14.0.0" } dev: true @@ -10148,6 +11237,18 @@ packages: engines: { node: ">=8" } dev: true + /ts-api-utils@1.0.3(typescript@5.3.3): + resolution: + { + integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, + } + engines: { node: ">=16.13.0" } + peerDependencies: + typescript: ">=4.2.0" + dependencies: + typescript: 5.3.3 + dev: true + /ts-interface-checker@0.1.13: resolution: { @@ -10155,12 +11256,12 @@ packages: } dev: true - /ts-jest@29.0.5(@babel/core@7.20.12)(esbuild@0.16.3)(jest@29.4.2)(typescript@4.9.5): + /ts-jest@29.1.2(@babel/core@7.20.12)(esbuild@0.17.19)(jest@29.7.0)(typescript@5.3.3): resolution: { - integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==, + integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: ^16.10.0 || ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: "@babel/core": ">=7.0.0-beta.0 <8" @@ -10168,7 +11269,7 @@ packages: babel-jest: ^29.0.0 esbuild: "*" jest: ^29.0.0 - typescript: ">=4.3" + typescript: ">=4.3 <6" peerDependenciesMeta: "@babel/core": optional: true @@ -10181,44 +11282,40 @@ packages: dependencies: "@babel/core": 7.20.12 bs-logger: 0.2.6 - esbuild: 0.16.3 + esbuild: 0.17.19 fast-json-stable-stringify: 2.1.0 - jest: 29.4.2(@types/node@18.13.0) - jest-util: 29.4.1 + jest: 29.7.0(@types/node@20.11.16) + jest-util: 29.4.2 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.3.8 - typescript: 4.9.5 + semver: 7.5.4 + typescript: 5.3.3 yargs-parser: 21.1.1 dev: true - /tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } - dev: true - - /tslib@2.5.0: + /tslib@2.6.2: resolution: { - integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, } dev: true - /tsup@6.6.2(postcss@8.4.21)(typescript@4.9.5): + /tsup@8.0.1(postcss@8.4.33)(typescript@5.3.3): resolution: { - integrity: sha512-+yQ6SI4rVtp1+YpcYOePumJLEVQ896CDNRt9dJ2L/DeMnLf1+FTOCVw5eioLBH0xLdHgogO9NQ6vPNF5MfkSJw==, + integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==, } - engines: { node: ">=14" } + engines: { node: ">=18" } hasBin: true peerDependencies: + "@microsoft/api-extractor": ^7.36.0 "@swc/core": ^1 postcss: ^8.4.12 - typescript: ^4.1.0 + typescript: ">=4.5.0" peerDependenciesMeta: + "@microsoft/api-extractor": + optional: true "@swc/core": optional: true postcss: @@ -10226,52 +11323,39 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.17.8) + bundle-require: 4.0.1(esbuild@0.19.12) cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.17.8 + esbuild: 0.19.12 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss: 8.4.21 - postcss-load-config: 3.1.4(postcss@8.4.21) + postcss: 8.4.33 + postcss-load-config: 4.0.2(postcss@8.4.33) resolve-from: 5.0.0 - rollup: 3.12.0 + rollup: 4.9.6 source-map: 0.8.0-beta.0 sucrase: 3.29.0 tree-kill: 1.2.2 - typescript: 4.9.5 + typescript: 5.3.3 transitivePeerDependencies: - supports-color - ts-node dev: true - /tsutils@3.21.0(typescript@4.9.5): - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - } - engines: { node: ">= 6" } - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - dependencies: - tslib: 1.14.1 - typescript: 4.9.5 - dev: true - - /tsx@3.12.3: + /tsx@4.7.0: resolution: { - integrity: sha512-Wc5BFH1xccYTXaQob+lEcimkcb/Pq+0en2s+ruiX0VEIC80nV7/0s7XRahx8NnsoCnpCVUPz8wrqVSPi760LkA==, + integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==, } + engines: { node: ">=18.0.0" } hasBin: true dependencies: - "@esbuild-kit/cjs-loader": 2.4.2 - "@esbuild-kit/core-utils": 3.0.0 - "@esbuild-kit/esm-loader": 2.5.5 + esbuild: 0.19.12 + get-tsconfig: 4.7.2 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /tty-table@4.1.6: @@ -10291,6 +11375,15 @@ packages: yargs: 17.6.2 dev: true + /tunnel-agent@0.6.0: + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + /type-check@0.4.0: resolution: { @@ -10357,6 +11450,22 @@ packages: engines: { node: ">=12.20" } dev: true + /type-fest@3.13.1: + resolution: + { + integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==, + } + engines: { node: ">=14.16" } + dev: true + + /type-fest@4.10.2: + resolution: + { + integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==, + } + engines: { node: ">=16" } + dev: true + /type@1.2.0: resolution: { @@ -10382,21 +11491,21 @@ packages: is-typed-array: 1.1.10 dev: true - /typedoc@0.23.25(typescript@4.9.5): + /typedoc@0.25.7(typescript@5.3.3): resolution: { - integrity: sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==, + integrity: sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==, } - engines: { node: ">= 14.14" } + engines: { node: ">= 16" } hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x dependencies: lunr: 2.3.9 - marked: 4.2.12 - minimatch: 6.1.10 - shiki: 0.14.1 - typescript: 4.9.5 + marked: 4.3.0 + minimatch: 9.0.3 + shiki: 0.14.7 + typescript: 5.3.3 dev: true /typescript@4.9.5: @@ -10408,10 +11517,19 @@ packages: hasBin: true dev: true - /ufo@1.0.1: + /typescript@5.3.3: + resolution: + { + integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==, + } + engines: { node: ">=14.17" } + hasBin: true + dev: true + + /ufo@1.3.2: resolution: { - integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==, + integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==, } dev: true @@ -10427,14 +11545,21 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /undici@5.18.0: + /undici-types@5.26.5: resolution: { - integrity: sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==, + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, } - engines: { node: ">=12.18" } + dev: true + + /undici@5.28.2: + resolution: + { + integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==, + } + engines: { node: ">=14.0" } dependencies: - busboy: 1.6.0 + "@fastify/busboy": 2.1.0 dev: true /undici@5.9.1: @@ -10467,6 +11592,20 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, + } + hasBin: true + peerDependencies: + browserslist: ">= 4.21.0" + dependencies: + browserslist: 4.22.3 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-check@1.5.4: resolution: { @@ -10507,7 +11646,7 @@ packages: } engines: { node: ">=10.12.0" } dependencies: - "@jridgewell/trace-mapping": 0.3.17 + "@jridgewell/trace-mapping": 0.3.22 "@types/istanbul-lib-coverage": 2.0.4 convert-source-map: 1.9.0 dev: true @@ -10540,25 +11679,23 @@ packages: engines: { node: ">= 0.8" } dev: true - /vite-node@0.28.4(@types/node@18.13.0): + /vite-node@1.2.2(@types/node@20.11.16): resolution: { - integrity: sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ==, + integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==, } - engines: { node: ">=v14.16.0" } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.1.0 - pathe: 1.1.0 + pathe: 1.1.2 picocolors: 1.0.0 - source-map: 0.6.1 - source-map-support: 0.5.21 - vite: 4.1.1(@types/node@18.13.0) + vite: 5.0.12(@types/node@20.11.16) transitivePeerDependencies: - "@types/node" - less + - lightningcss - sass - stylus - sugarss @@ -10566,16 +11703,17 @@ packages: - terser dev: true - /vite@4.1.1(@types/node@18.13.0): + /vite@5.0.12(@types/node@20.11.16): resolution: { - integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==, + integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==, } - engines: { node: ^14.18.0 || >=16.0.0 } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: - "@types/node": ">= 14" + "@types/node": ^18.0.0 || >=20.0.0 less: "*" + lightningcss: ^1.21.0 sass: "*" stylus: "*" sugarss: "*" @@ -10585,6 +11723,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -10594,45 +11734,47 @@ packages: terser: optional: true dependencies: - "@types/node": 18.13.0 - esbuild: 0.16.17 - postcss: 8.4.21 - resolve: 1.22.1 - rollup: 3.12.0 + "@types/node": 20.11.16 + esbuild: 0.19.12 + postcss: 8.4.33 + rollup: 4.9.6 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /vitefu@0.2.4(vite@4.1.1): + /vitefu@0.2.5(vite@5.0.12): resolution: { - integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==, + integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==, } peerDependencies: - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: vite: optional: true dependencies: - vite: 4.1.1(@types/node@18.13.0) + vite: 5.0.12(@types/node@20.11.16) dev: true - /vitest@0.28.4: + /vitest@1.2.2(@types/node@20.11.16): resolution: { - integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==, + integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==, } - engines: { node: ">=v14.16.0" } + engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true peerDependencies: "@edge-runtime/vm": "*" - "@vitest/browser": "*" - "@vitest/ui": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": ^1.0.0 + "@vitest/ui": ^1.0.0 happy-dom: "*" jsdom: "*" peerDependenciesMeta: "@edge-runtime/vm": optional: true + "@types/node": + optional: true "@vitest/browser": optional: true "@vitest/ui": @@ -10642,32 +11784,31 @@ packages: jsdom: optional: true dependencies: - "@types/chai": 4.3.4 - "@types/chai-subset": 1.3.3 - "@types/node": 18.13.0 - "@vitest/expect": 0.28.4 - "@vitest/runner": 0.28.4 - "@vitest/spy": 0.28.4 - "@vitest/utils": 0.28.4 - acorn: 8.8.2 - acorn-walk: 8.2.0 + "@types/node": 20.11.16 + "@vitest/expect": 1.2.2 + "@vitest/runner": 1.2.2 + "@vitest/snapshot": 1.2.2 + "@vitest/spy": 1.2.2 + "@vitest/utils": 1.2.2 + acorn-walk: 8.3.2 cac: 6.7.14 - chai: 4.3.7 + chai: 4.4.1 debug: 4.3.4 - local-pkg: 0.4.3 - pathe: 1.1.0 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.6 + pathe: 1.1.2 picocolors: 1.0.0 - source-map: 0.6.1 - std-env: 3.3.2 - strip-literal: 1.0.1 - tinybench: 2.3.1 - tinypool: 0.3.1 - tinyspy: 1.1.1 - vite: 4.1.1(@types/node@18.13.0) - vite-node: 0.28.4(@types/node@18.13.0) + std-env: 3.7.0 + strip-literal: 1.3.0 + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.0.12(@types/node@20.11.16) + vite-node: 1.2.2(@types/node@20.11.16) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -10831,23 +11972,31 @@ packages: string-width: 5.1.2 dev: true - /word-wrap@1.2.3: + /workerd@1.20240129.0: resolution: { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, + integrity: sha512-t4pnsmjjk/u+GdVDgH2M1AFmJaBUABshYK/vT/HNrAXsHSwN6VR8Yqw0JQ845OokO34VLkuUtYQYyxHHKpdtsw==, } - engines: { node: ">=0.10.0" } + engines: { node: ">=16" } + hasBin: true + requiresBuild: true + optionalDependencies: + "@cloudflare/workerd-darwin-64": 1.20240129.0 + "@cloudflare/workerd-darwin-arm64": 1.20240129.0 + "@cloudflare/workerd-linux-64": 1.20240129.0 + "@cloudflare/workerd-linux-arm64": 1.20240129.0 + "@cloudflare/workerd-windows-64": 1.20240129.0 dev: true - /worktop@0.8.0-next.14: + /worktop@0.8.0-next.18: resolution: { - integrity: sha512-RZgqHu1w/JcUdWOE/BUEAzarrUUHh39eWkLdX8XpA6MfgLJF6X5Vl26CV7/wcm4O/UpZvHMGJUtB9eYTqDjc9g==, + integrity: sha512-+TvsA6VAVoMC3XDKR5MoC/qlLqDixEfOBysDEKnPIPou/NvoPWCAuXHXMsswwlvmEuvX56lQjvELLyLuzTKvRw==, } engines: { node: ">=12" } dependencies: - mrmime: 1.0.1 - regexparam: 2.0.1 + mrmime: 2.0.0 + regexparam: 3.0.0 dev: true /wrangler@2.9.1: @@ -10883,6 +12032,36 @@ packages: - utf-8-validate dev: true + /wrangler@3.26.0: + resolution: + { + integrity: sha512-2FKDyL0wV6ws+9AHkQl5/Yzn17kG9jlpgyT7wqCDkhb5q+TCL/I8N5IKVwXe8tRrTluBI1QQZRRymoA5nu0pHw==, + } + engines: { node: ">=16.17.0" } + hasBin: true + dependencies: + "@cloudflare/kv-asset-handler": 0.2.0 + "@esbuild-plugins/node-globals-polyfill": 0.2.3(esbuild@0.17.19) + "@esbuild-plugins/node-modules-polyfill": 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.5.3 + esbuild: 0.17.19 + miniflare: 3.20240129.0 + nanoid: 3.3.4 + path-to-regexp: 6.2.1 + resolve: 1.22.8 + resolve.exports: 2.0.2 + selfsigned: 2.1.1 + source-map: 0.6.1 + xxhash-wasm: 1.0.2 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /wrap-ansi@6.2.0: resolution: { @@ -10919,6 +12098,18 @@ packages: strip-ansi: 7.0.1 dev: true + /wrap-ansi@9.0.0: + resolution: + { + integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, + } + engines: { node: ">=18" } + dependencies: + ansi-styles: 6.2.1 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: { @@ -10953,14 +12144,6 @@ packages: optional: true dev: true - /xtend@4.0.2: - resolution: - { - integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, - } - engines: { node: ">=0.4" } - dev: true - /xxhash-wasm@1.0.2: resolution: { @@ -11012,10 +12195,10 @@ packages: engines: { node: ">= 6" } dev: true - /yaml@2.2.1: + /yaml@2.3.4: resolution: { - integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==, + integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==, } engines: { node: ">= 14" } dev: true @@ -11103,21 +12286,32 @@ packages: stack-trace: 0.0.10 dev: true - /zod-validation-error@0.3.1(zod@3.20.6): + /youch@3.3.3: + resolution: + { + integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==, + } + dependencies: + cookie: 0.5.0 + mustache: 4.2.0 + stacktracey: 2.1.8 + dev: true + + /zod-validation-error@3.0.0(zod@3.22.4): resolution: { - integrity: sha512-3m7VcE4YT3ZdGJoYBZnLt8E1S/r8zPFNDWMc2njaeC7Vxe5FQbgIiwHoerSkli5PgsUyxWQhpFxEAJXkBJvoDg==, + integrity: sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ==, } - engines: { node: ^14.17 || >=16.0.0 } + engines: { node: ">=18.0.0" } peerDependencies: zod: ^3.18.0 dependencies: - zod: 3.20.6 + zod: 3.22.4 dev: true - /zod@3.20.6: + /zod@3.22.4: resolution: { - integrity: sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==, + integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==, } dev: true diff --git a/src/api/config/GET.ts b/src/api/config/GET.ts new file mode 100644 index 0000000..cf592d6 --- /dev/null +++ b/src/api/config/GET.ts @@ -0,0 +1,40 @@ +import { MainkeyAuth } from "$api"; +import { config, type ConfigKey } from "$lib/server/config"; +import { db } from "$lib/server/db"; +import { Endpoint, error, z } from "sveltekit-api"; + +type Key = Exclude; + +export const Output = z.object({ + config: z + .record(z.enum(["cors", "save-raw"]), z.string().nullable()) + .describe("A map of configuration keys to their values"), +}); + +export const Error = { + 401: error(401, "Unauthorized"), +}; + +export default new Endpoint({ Output, Error, Modifier: MainkeyAuth }).handle( + async (_, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + const result = await db + .selectFrom("Config") + .select(["Config.key", "Config.value"]) + .where("Config.key", "<>", "mainkey") + .execute(); + + return { + config: Object.fromEntries(result.map((row) => [row.key, row.value])), + }; + }, +); diff --git a/src/api/config/[key]/GET.ts b/src/api/config/[key]/GET.ts new file mode 100644 index 0000000..4ad7188 --- /dev/null +++ b/src/api/config/[key]/GET.ts @@ -0,0 +1,37 @@ +import { MainkeyAuth } from "$api"; +import { config, type ConfigKey } from "$lib/server/config"; +import { Endpoint, error, z } from "sveltekit-api"; + +type Key = Exclude; + +export const Param = z.object({ + key: z + .enum(["cors", "save-raw"]) + .describe("The configuration key to set"), +}); + +export const Output = z.object({ + value: z.string().nullable().describe("The value of the configuration key"), +}); + +export const Error = { + 401: error(401, "Unauthorized"), +}; + +export default new Endpoint({ Param, Output, Error, Modifier: MainkeyAuth }).handle( + async (param, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + const value = await config.get(param.key); + + return { value }; + }, +); diff --git a/src/api/config/[key]/PUT.ts b/src/api/config/[key]/PUT.ts new file mode 100644 index 0000000..ba5bd76 --- /dev/null +++ b/src/api/config/[key]/PUT.ts @@ -0,0 +1,41 @@ +import { MainkeyAuth } from "$api"; +import { config, type ConfigKey } from "$lib/server/config"; +import { Endpoint, error, z } from "sveltekit-api"; + +type Key = Exclude; + +export const Param = z.object({ + key: z + .enum(["cors", "save-raw"]) + .describe("The configuration key to set"), +}); + +export const Input = z.object({ + value: z.string().max(1024).describe("The new value to set for the configuration key"), +}); + +export const Output = z.object({ + message: z.string().describe("A message indicating the success of the operation"), +}); + +export const Error = { + 401: error(401, "Unauthorized"), +}; + +export default new Endpoint({ Param, Input, Output, Error, Modifier: MainkeyAuth }).handle( + async (param, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + await config.set(param.key, param.value); + + return { message: "Updated" }; + }, +); diff --git a/src/api/config/mainkey/PUT.ts b/src/api/config/mainkey/PUT.ts new file mode 100644 index 0000000..365b160 --- /dev/null +++ b/src/api/config/mainkey/PUT.ts @@ -0,0 +1,29 @@ +import { MainkeyAuth } from "$api"; +import { config } from "$lib/server/config"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Input = z.object({ + mainkey: z.string().min(32).max(256).describe("The new main key to use for the service"), +}); + +export const Output = z.object({ + message: z.string().describe("A message indicating the success of the operation"), +}); + +export const Error = { + 401: error(401, "Previous main key does not match"), +}; + +export default new Endpoint({ Input, Output, Error, Modifier: MainkeyAuth }).handle( + async (param, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + const previous = await config.get("mainkey"); + if (previous && mainkey !== previous) { + throw Error[401]; + } + + await config.set("mainkey", param.mainkey); + + return { message: "Updated" }; + }, +); diff --git a/src/api/healthcheck/GET.ts b/src/api/healthcheck/GET.ts new file mode 100644 index 0000000..706edbb --- /dev/null +++ b/src/api/healthcheck/GET.ts @@ -0,0 +1,28 @@ +import { config } from "$lib/server/config"; +import { check } from "$lib/server/db"; +import { error as e } from "@sveltejs/kit"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Output = z.object({ + message: z.string().describe("A message indicating the health of the service, always 'OK'"), +}); + +export const Error = { + 503: error(503, "Service unavailable, some configuration is missing"), +}; + +export async function healthcheck() { + const err = await check(); + if (err) { + e(503, `Database check failed: ${err}`); + } + + const mainkey = await config.get("mainkey"); + if (!mainkey) { + e(503, "Main key is not set"); + } + + return { message: "OK" }; +} + +export default new Endpoint({ Output, Error }).handle(healthcheck); diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..a0746eb --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,48 @@ +import { API, type RouteModifier } from "sveltekit-api"; +import { version } from "../../package.json"; + +export const MainkeyAuth: RouteModifier = (c) => { + c.security = [{ mainkey: [] }]; + return c; +}; + +export const TokenAuth: RouteModifier = (c) => { + c.security = [{ token: [] }]; + return c; +}; + +export default new API( + import.meta.glob("./**/*.ts"), + { + openapi: "3.0.0", + info: { + title: "Hermes Mail Service API", + version, + description: + "Hermes is an open-source edge email sending service, which is designed to be easy to setup and use.", + }, + servers: [ + { + url: "{scheme}://{host}", + variables: { + scheme: { enum: ["http", "https"], default: "http" }, + host: { default: "localhost:5173" }, + }, + }, + ], + }, + undefined, + (r) => { + r.registerComponent("securitySchemes", "mainkey", { + type: "http", + scheme: "bearer", + description: "The main key to use for configuration", + }); + + r.registerComponent("securitySchemes", "token", { + type: "http", + scheme: "bearer", + description: "The issued token to use for authentication", + }); + }, +); diff --git a/src/api/send/POST.ts b/src/api/send/POST.ts new file mode 100644 index 0000000..73b72d1 --- /dev/null +++ b/src/api/send/POST.ts @@ -0,0 +1,122 @@ +import { TokenAuth } from "$api"; +import { config } from "$lib/server/config"; +import { db } from "$lib/server/db"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const ContentItem = z.object({ + type: z + .enum(["text/plain", "text/html"]) + .describe("The mime type of the content you are including in your email"), + value: z + .string() + .max(200_000) + .describe( + "The actual content of the specified mime type that you are including in the message", + ), +}); + +export const EmailAddress = z + .object({ + email: z.string().email(), + name: z.string().optional(), + }) + .or( + z + .string() + .email() + .transform((email) => ({ email, name: undefined })), + ); + +export const CustomHeaders = z + .record(z.string()) + .describe( + "A JSON object containing key/value pairs of header names and the value to substitute for them.\nThe Key/value pairs must be strings. You must ensure these are properly encoded if they\ncontain unicode characters. Must not be one of the reserved headers (received, dkim-signature,\nContent-Type, Content-Transfer-Encoding, To, From, Subject, Reply-To, CC, BCC).", + ); + +export const Personalization = z.object({ + to: z.array(EmailAddress).min(1).max(1000), + from: EmailAddress.optional(), + bcc: z.array(EmailAddress).max(1000).optional(), + cc: z.array(EmailAddress).max(1000).optional(), + headers: CustomHeaders.optional(), + reply_to: EmailAddress.optional(), + subject: z.string().optional(), +}); + +export const Input = z.object({ + from: EmailAddress, + personalizations: z.array(Personalization).min(1).max(1000), + subject: z.string().min(1).max(200), + content: z.array(ContentItem), + headers: CustomHeaders.optional(), + reply_to: EmailAddress.optional(), +}); + +export const Output = z.object({ + ok: z.boolean(), + error: z.string().optional(), +}); + +export const Error = { + "Bad Request": error(400, "Bad Request"), + "Invalid Token": error(401, "Invalid Token"), + "Not Permitted": error(403, "Sender Address / Domain Not Permitted"), +}; + +export default new Endpoint({ Input, Output, Error, Modifier: TokenAuth }).handle( + async (param, { request }) => { + const authorization = request.headers.get("authorization")?.replace("Bearer ", "") ?? ""; + if (!authorization) { + throw Error["Invalid Token"]; + } + + const token = await db + .selectFrom("Token") + .selectAll() + .where("Token.id", "=", authorization) + .executeTakeFirst(); + if (!token) { + throw Error["Invalid Token"]; + } + + const allow = new RegExp(token.scope).test(param.from.email); + if (!allow) { + throw Error["Not Permitted"]; + } + + const save_raw = await config.get("save-raw"); + + const froms = new Set( + param.personalizations.flatMap((p) => p.from?.email ?? param.from.email), + ); + const tos = new Set(param.personalizations.flatMap((p) => p.to.map((t) => t.email))); + + await db + .insertInto("UsageRecord") + .values({ + token: token.id, + timestamp: Date.now(), + subject: param.subject, + from: [...froms].join(", "), + to: [...tos].join(", "), + raw: save_raw ? JSON.stringify(param) : null, + }) + .executeTakeFirst(); + + const req = new Request("https://api.mailchannels.net/tx/v1/send", { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(param), + }); + + const res = await fetch(req); + if (!res.ok) { + return { + ok: false, + error: `MailChannels API ${res.status} ${res.statusText}: ${await res.text()}`, + }; + } + + return { ok: true }; + }, +); diff --git a/src/api/token/GET.ts b/src/api/token/GET.ts new file mode 100644 index 0000000..b23b2c3 --- /dev/null +++ b/src/api/token/GET.ts @@ -0,0 +1,62 @@ +import { MainkeyAuth } from "$api"; +import { config } from "$lib/server/config"; +import { db } from "$lib/server/db"; +import type { Token } from "$lib/server/db/schema"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Query = z.object({ + offset: z.number().int().nonnegative().default(0).describe("The number of tokens to skip"), + limit: z.number().int().nonnegative().default(10).describe("The number of tokens to take"), + order: z + .enum(["asc", "desc"]) + .optional() + .default("desc") + .describe("The order to sort the tokens"), + sort: z + .enum(["scope", "created", "expires"]) + .optional() + .default("created") + .describe("The field to sort the tokens by"), +}); + +export const Output = z.object({ + tokens: z + .array( + z.object({ + id: z.string().describe("The token ID"), + scope: z.string().describe("The token scope"), + created: z.number().describe("The token creation date"), + expires: z.number().describe("The token expiration date"), + }), + ) + .describe("The tokens"), +}) satisfies z.ZodSchema<{ tokens: Token[] }>; + +export const Error = { + 401: error(401, "Unauthorized"), + 404: error(404, "Token not found"), +}; + +export default new Endpoint({ Query, Output, Error, Modifier: MainkeyAuth }).handle( + async (param, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + const tokens = await db + .selectFrom("Token") + .selectAll() + .limit(param.limit) + .offset(param.offset) + .orderBy(`Token.${param.sort}`, param.order) + .execute(); + + return { tokens }; + }, +); diff --git a/src/api/token/POST.ts b/src/api/token/POST.ts new file mode 100644 index 0000000..be929c3 --- /dev/null +++ b/src/api/token/POST.ts @@ -0,0 +1,57 @@ +import { MainkeyAuth } from "$api"; +import { config } from "$lib/server/config"; +import { db } from "$lib/server/db"; +import type { Token } from "$lib/server/db/schema"; +import { generate_token_id } from "$lib/server/token"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Input = z.object({ + scope: z.string().min(1).max(1000).describe("The token scope"), + expires: z.number().nonnegative().describe("The token expiration date"), +}) satisfies z.ZodSchema>; + +export const Output = z.object({ + id: z.string().describe("The token ID"), + scope: z.string().describe("The token scope"), + created: z.number().describe("The token creation date"), + expires: z.number().describe("The token expiration date"), +}) satisfies z.ZodSchema; + +export const Error = { + 400: error(400, "Bad Request"), + 401: error(401, "Unauthorized"), +}; + +export default new Endpoint({ Input, Output, Error, Modifier: MainkeyAuth }).handle( + async (param, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + try { + new RegExp(param.scope); + } catch { + throw Error[400]; + } + + const token: Token = { + id: generate_token_id(), + created: Date.now(), + ...param, + }; + + const result = await db.insertInto("Token").values(token).executeTakeFirst(); + + if (result.numInsertedOrUpdatedRows === 0n) { + throw Error[400]; + } + + return token; + }, +); diff --git a/src/api/token/[id]/DELETE.ts b/src/api/token/[id]/DELETE.ts new file mode 100644 index 0000000..ad76d79 --- /dev/null +++ b/src/api/token/[id]/DELETE.ts @@ -0,0 +1,39 @@ +import { MainkeyAuth } from "$api"; +import { config } from "$lib/server/config"; +import { db } from "$lib/server/db"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Param = z.object({ + id: z.string().describe("The token to check"), +}); + +export const Output = z.object({ + ok: z.boolean().describe("Whether the token was deleted"), +}); + +export const Error = { + 401: error(401, "Unauthorized"), + 404: error(404, "Token not found"), +}; + +export default new Endpoint({ Param, Output, Error, Modifier: MainkeyAuth }).handle( + async ({ id }, { request }) => { + const mainkey = request.headers.get("Authorization")?.replace("Bearer ", "") ?? ""; + if (!mainkey) { + throw Error[401]; + } + + const correct = await config.get("mainkey"); + if (mainkey !== correct) { + throw Error[401]; + } + + const token = await db.deleteFrom("Token").where("Token.id", "=", id).executeTakeFirst(); + + if (token.numDeletedRows === 0n) { + throw Error[404]; + } + + return { ok: true }; + }, +); diff --git a/src/api/token/[id]/GET.ts b/src/api/token/[id]/GET.ts new file mode 100644 index 0000000..826a60b --- /dev/null +++ b/src/api/token/[id]/GET.ts @@ -0,0 +1,32 @@ +import { db } from "$lib/server/db"; +import type { Token } from "$lib/server/db/schema"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Param = z.object({ + id: z.string().describe("The token to check"), +}); + +export const Output = z.object({ + id: z.string().describe("The token ID"), + scope: z.string().describe("The token scope"), + created: z.number().describe("The token creation date"), + expires: z.number().describe("The token expiration date"), +}) satisfies z.ZodSchema; + +export const Error = { + 404: error(404, "Token not found"), +}; + +export default new Endpoint({ Param, Output, Error }).handle(async ({ id }) => { + const token = await db + .selectFrom("Token") + .selectAll() + .where("Token.id", "=", id) + .executeTakeFirst(); + + if (!token) { + throw Error[404]; + } + + return token; +}); diff --git a/src/api/token/[id]/records/GET.ts b/src/api/token/[id]/records/GET.ts new file mode 100644 index 0000000..9ec51d5 --- /dev/null +++ b/src/api/token/[id]/records/GET.ts @@ -0,0 +1,36 @@ +import { db } from "$lib/server/db"; +import type { UsageRecord } from "$lib/server/db/schema"; +import { Endpoint, error, z } from "sveltekit-api"; + +export const Param = z.object({ + id: z.string().describe("The token to check"), +}); + +export const Output = z.object({ + records: z.array( + z.object({ + token: z.string().describe("The token ID"), + timestamp: z.number().describe("The timestamp of the record"), + from: z.string().describe("The source of the record"), + to: z.string().describe("The destination of the record"), + subject: z.string().describe("The subject of the record"), + raw: z.string().nullable().describe("The raw data of the send request"), + }), + ), +}) satisfies z.ZodSchema<{ records: UsageRecord[] }>; + +export const Error = { + 404: error(404, "Token not found"), +}; + +export default new Endpoint({ Param, Output, Error }).handle(async ({ id }) => { + const records = await db + .selectFrom("UsageRecord") + .selectAll() + .where("UsageRecord.token", "=", id) + .orderBy("UsageRecord.timestamp", "desc") + .limit(10) + .execute(); + + return { records }; +}); diff --git a/src/app.d.ts b/src/app.d.ts index b452824..d470e71 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,5 +1,3 @@ -import type { KVNamespace } from "@cloudflare/workers-types"; - // See https://kit.svelte.dev/docs/types#app // for information about these interfaces declare global { @@ -9,12 +7,7 @@ declare global { // interface PageData {} interface Platform { env?: { - // We use this KV namespace to store JWTs - STORE: KVNamespace; - // Fall back to this key if the MAIN_KEY is not set in the config - MAIN_KEY: string; - // Fall back to this value if the ALWAYS_CHECK is not set in the config - ALWAYS_CHECK?: string; + D1: D1Database; }; } } diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 27b471d..a1c1de5 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,49 +1,32 @@ -import { dev } from "$app/environment"; -import { CONFIG } from "$lib/server/config"; -import { $t } from "$lib/server/t"; -import { locale } from "svelte-i18n"; +import { config } from "$lib/server/config"; +import { check, init } from "$lib/server/db"; import type { Handle } from "@sveltejs/kit"; - -const CONFIG_MAX_TTL = 1000 * 60 * 5; +import { locale } from "svelte-i18n"; export const handle: Handle = async ({ event, resolve }) => { const lang = event.request.headers.get("accept-language")?.split(",")[0] || "en"; - locale.set(lang); + await locale.set(lang); + + if (event.url.pathname === "/") { + const error = await check(); + if (error) { + console.error("Database Health Check:", error); + console.error("Try to initialize the database ..."); + await init(); + console.error("Database initialized"); + } + } if (event.url.pathname.startsWith("/template")) { return resolve(event); } - if (!dev) { - if (!event.platform?.env?.STORE) { - return new Response( - JSON.stringify({ - message: await $t("errors.missing-env"), - }), - { status: 500 }, - ); - } - - if (CONFIG.$DATE + CONFIG_MAX_TTL < Date.now()) { - const config = await event.platform.env.STORE.get("app:config", "json"); - if (!config) { - return new Response( - JSON.stringify({ - message: await $t("errors.config-not-set"), - }), - { status: 500 }, - ); - } - Object.assign(CONFIG, config); - CONFIG.$DATE = Date.now(); - } - } - const res = await resolve(event); - if (CONFIG.CORS) { + const cors = await config.get("cors"); + if (cors) { const res2 = new Response(res.body, res); - res2.headers.set("Access-Control-Allow-Origin", CONFIG.CORS); + res2.headers.set("Access-Control-Allow-Origin", cors); res2.headers.set("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, PATCH, DELETE"); res2.headers.set("Access-Control-Allow-Headers", "Content-Type, Authorization"); return res2; diff --git a/src/lib/mainkey.ts b/src/lib/mainkey.ts new file mode 100644 index 0000000..4b483f9 --- /dev/null +++ b/src/lib/mainkey.ts @@ -0,0 +1,7 @@ +export async function encode(raw: string): Promise { + const encoded = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(raw)); + const hash = Array.from(new Uint8Array(encoded)) + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); + return hash; +} diff --git a/src/lib/server/config.ts b/src/lib/server/config.ts index 78d326b..3cea918 100644 --- a/src/lib/server/config.ts +++ b/src/lib/server/config.ts @@ -1,16 +1,46 @@ -export const CONFIG: Config = { - $DATE: 0, -}; - -export interface Config { - /** This is used to check the cache status of the config */ - $DATE: number; - /** This is the main key used to sign JWTs */ - MAIN_KEY?: string; - /** Enable CORS? */ - CORS?: string; - /** Default TTL for JWTs */ - DEFAULT_TTL?: number; - /** If this is set, it will always check if the JWT is in the KV namespace before sending the email? */ - ALWAYS_CHECK?: boolean; +import { db } from "./db"; + +export type ConfigKey = "mainkey" | "cors" | "save-raw"; + +class Config { + protected cache = new Map(); + + public async get(key: ConfigKey): Promise { + if (!this.cache.has(key)) { + const result = await db + .selectFrom("Config") + .select("value") + .where("Config.key", "=", key) + .executeTakeFirst(); + this.cache.set(key, result?.value || null); + } + + return this.cache.get(key) || null; + } + + public async set(key: ConfigKey, value: string): Promise { + if (this.cache.has(key)) { + if (this.cache.get(key) === value) { + return false; + } + } + + this.cache.set(key, value); + const result = await db.insertInto("Config").values({ key, value }).executeTakeFirst(); + return result.numInsertedOrUpdatedRows === 1n; + } + + public async delete(key: ConfigKey): Promise { + if (this.cache.has(key)) { + this.cache.delete(key); + } + + const result = await db + .deleteFrom("Config") + .where("Config.key", "=", key) + .executeTakeFirst(); + return result.numDeletedRows === 1n; + } } + +export const config = new Config(); diff --git a/src/lib/server/db/index.ts b/src/lib/server/db/index.ts new file mode 100644 index 0000000..99c908a --- /dev/null +++ b/src/lib/server/db/index.ts @@ -0,0 +1,71 @@ +import { DB } from "sveltekit-db"; +import type { Database } from "./schema"; + +export const db = DB(); + +/** + * Checks if the required tables exist in the database. + * @returns A string containing the error, or null if no error was found. + */ +export async function check(): Promise { + const tables = await db.introspection.getTables(); + const names = tables.map((table) => table.name); + const expected = ["Config", "Token", "UsageRecord"] satisfies (keyof Database)[]; + const missing = expected.filter((name) => !names.includes(name)); + + if (missing.length) { + return `Missing tables: ${missing.join(", ")}`; + } + + return null; +} + +export async function init() { + await db.schema + .createTable("Config") + .ifNotExists() + .addColumn("key", "text", (col) => col.primaryKey()) + .addColumn("value", "text", (col) => col.notNull()) + .execute(); + + await db.schema + .createTable("Token") + .ifNotExists() + .addColumn("id", "text", (col) => col.primaryKey()) + .addColumn("scope", "text", (col) => col.notNull()) + .addColumn("created", "integer", (col) => col.notNull()) + .addColumn("expires", "integer", (col) => col.notNull()) + .execute(); + + await db.schema + .createTable("UsageRecord") + .ifNotExists() + .addColumn("token", "text", (col) => col.references("Token.id")) + .addColumn("timestamp", "integer", (col) => col.notNull()) + .addColumn("subject", "text", (col) => col.notNull()) + .addColumn("from", "text", (col) => col.notNull()) + .addColumn("to", "text", (col) => col.notNull()) + .addColumn("raw", "text") + .execute(); + + await db.schema + .createIndex("TokenDate") + .ifNotExists() + .on("Token") + .columns(["created", "expires"]) + .execute(); + + await db.schema + .createIndex("UsageRecordToken") + .ifNotExists() + .on("UsageRecord") + .columns(["token"]) + .execute(); + + await db.schema + .createIndex("UsageRecordTimestamp") + .ifNotExists() + .on("UsageRecord") + .columns(["timestamp desc"]) + .execute(); +} diff --git a/src/lib/server/db/schema.ts b/src/lib/server/db/schema.ts new file mode 100644 index 0000000..1309107 --- /dev/null +++ b/src/lib/server/db/schema.ts @@ -0,0 +1,26 @@ +export interface Config { + key: string; + value: string; +} + +export interface Token { + id: string; + scope: string; + created: number; + expires: number; +} + +export interface UsageRecord { + token: string; + timestamp: number; + from: string; + to: string; + subject: string; + raw: string | null; +} + +export interface Database { + Config: Config; + Token: Token; + UsageRecord: UsageRecord; +} diff --git a/src/lib/server/token.ts b/src/lib/server/token.ts new file mode 100644 index 0000000..4e20f72 --- /dev/null +++ b/src/lib/server/token.ts @@ -0,0 +1,12 @@ +export function generate_token_id() { + const prefix = "hermes"; + const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const length = 48; + + const vals = crypto.getRandomValues(new Uint8Array(length)); + const random = Array.from(vals) + .map((val) => characters[val % characters.length]) + .join(""); + + return `${prefix}-${random}`; +} diff --git a/src/routes/api/config/+server.ts b/src/routes/api/config/+server.ts new file mode 100644 index 0000000..5392613 --- /dev/null +++ b/src/routes/api/config/+server.ts @@ -0,0 +1,3 @@ +import api from "$api"; + +export const GET = (evt) => api.handle(evt); diff --git a/src/routes/api/config/[key]/+server.ts b/src/routes/api/config/[key]/+server.ts new file mode 100644 index 0000000..23de185 --- /dev/null +++ b/src/routes/api/config/[key]/+server.ts @@ -0,0 +1,5 @@ +import api from "$api"; + +export const OPTIONS = (evt) => api.handle(evt); +export const PUT = (evt) => api.handle(evt); +export const GET = (evt) => api.handle(evt); diff --git a/src/routes/api/config/mainkey/+server.ts b/src/routes/api/config/mainkey/+server.ts new file mode 100644 index 0000000..6c87328 --- /dev/null +++ b/src/routes/api/config/mainkey/+server.ts @@ -0,0 +1,4 @@ +import api from "$api"; + +export const OPTIONS = (evt) => api.handle(evt); +export const PUT = (evt) => api.handle(evt); diff --git a/src/routes/api/healthcheck/+server.ts b/src/routes/api/healthcheck/+server.ts new file mode 100644 index 0000000..5392613 --- /dev/null +++ b/src/routes/api/healthcheck/+server.ts @@ -0,0 +1,3 @@ +import api from "$api"; + +export const GET = (evt) => api.handle(evt); diff --git a/src/routes/api/key/+server.ts b/src/routes/api/key/+server.ts deleted file mode 100644 index e85e72c..0000000 --- a/src/routes/api/key/+server.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CONFIG } from "$lib/server/config"; -import { $t } from "$lib/server/t"; -import { z } from "zod"; -import { fromZodError } from "zod-validation-error"; -import { json, error } from "@sveltejs/kit"; -import JWT from "@tsndr/cloudflare-worker-jwt"; -import type { RequestHandler } from "./$types"; - -export const POST: RequestHandler = async ({ request, platform }) => { - try { - const body = await request.json().catch(() => ({})); - - const { key, allowlist, ttl } = z - .object({ - key: z.string().min(1).max(1000), - allowlist: z.array(z.string().min(1)).min(1), - ttl: z - .number() - .min(0) - .max(60 * 60 * 24 * 365 * 3) - .optional(), - }) - .parse(body); - - const KEY = CONFIG.MAIN_KEY ?? platform?.env?.MAIN_KEY ?? "key"; - if (key !== KEY) { - throw error(401, await $t("errors.invalid-main-key")); - } - - const TTL = ttl || CONFIG.DEFAULT_TTL || 60 * 60 * 24; - const jti = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`; - const exp = Math.floor(Date.now() / 1000) + TTL; - - const jwt = await JWT.sign({ allowlist, exp, jti }, KEY); - - await platform?.env?.STORE.put(`jwt:${jti}`, jwt, { - expirationTtl: TTL, - metadata: { allowlist, exp }, - }); - return json({ jwt }); - } catch (err) { - if (err instanceof z.ZodError) { - throw error(400, fromZodError(err).message); - } - if (err && typeof err === "object" && "status" in err) { - throw err; - } - console.error(err); - throw error(500, await $t("errors.internal-server-error")); - } -}; diff --git a/src/routes/api/key/[id]/+server.ts b/src/routes/api/key/[id]/+server.ts deleted file mode 100644 index 3b45ec1..0000000 --- a/src/routes/api/key/[id]/+server.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { CONFIG } from "$lib/server/config"; -import { $t } from "$lib/server/t"; -import { json, error } from "@sveltejs/kit"; -import type { RequestHandler } from "./$types"; - -export const DELETE: RequestHandler = async ({ request, params, platform }) => { - try { - const key = request.headers.get("x-key"); - const jti = params.id; - - const KEY = CONFIG.MAIN_KEY ?? platform?.env?.MAIN_KEY ?? "key"; - if (key !== KEY) { - throw error(401, await $t("errors.invalid-main-key")); - } - - if (!platform?.env?.STORE) { - throw error(500, await $t("errors.missing-env")); - } - - await platform.env.STORE.delete(`jwt:${jti}`); - return json({ success: true }); - } catch (err) { - if (err && typeof err === "object" && "status" in err) { - throw err; - } - console.error(err); - throw error(500, await $t("errors.internal-server-error")); - } -}; diff --git a/src/routes/api/keys/+server.ts b/src/routes/api/keys/+server.ts deleted file mode 100644 index b2da27b..0000000 --- a/src/routes/api/keys/+server.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { CONFIG } from "$lib/server/config"; -import { $t } from "$lib/server/t"; -import { z } from "zod"; -import { fromZodError } from "zod-validation-error"; -import { json, error } from "@sveltejs/kit"; -import JWT from "@tsndr/cloudflare-worker-jwt"; -import type { RequestHandler } from "./$types"; - -export const POST: RequestHandler = async ({ request, platform }) => { - try { - const body = await request.json().catch(() => ({})); - - const { key } = z - .object({ - key: z.string().min(1).max(1000), - }) - .parse(body); - - const KEY = CONFIG.MAIN_KEY ?? platform?.env?.MAIN_KEY ?? "key"; - if (key !== KEY) { - throw error(401, await $t("errors.invalid-main-key")); - } - - if (!platform?.env?.STORE) { - throw error(500, await $t("errors.missing-env")); - } - - const { keys } = await platform.env.STORE.list({ prefix: "jwt:", limit: 1000 }); - - return json({ keys }); - } catch (err) { - if (err instanceof z.ZodError) { - throw error(400, fromZodError(err).message); - } - if (err && typeof err === "object" && "status" in err) { - throw err; - } - console.error(err); - throw error(500, await $t("errors.internal-server-error")); - } -}; diff --git a/src/routes/api/openapi.json/+server.ts b/src/routes/api/openapi.json/+server.ts new file mode 100644 index 0000000..6b89ec5 --- /dev/null +++ b/src/routes/api/openapi.json/+server.ts @@ -0,0 +1,6 @@ +import api from "$api"; +import { json } from "@sveltejs/kit"; + +export const prerender = true; + +export const GET = async (evt) => json(await api.openapi(evt)); diff --git a/src/routes/api/send/+server.ts b/src/routes/api/send/+server.ts index d32865a..fbbb2b3 100644 --- a/src/routes/api/send/+server.ts +++ b/src/routes/api/send/+server.ts @@ -1,100 +1,4 @@ -import { CONFIG } from "$lib/server/config"; -import { $t } from "$lib/server/t"; -import { z } from "zod"; -import { fromZodError } from "zod-validation-error"; -import { error } from "@sveltejs/kit"; -import JWT from "@tsndr/cloudflare-worker-jwt"; -import type { RequestHandler } from "./$types"; +import api from "$api"; -export const POST: RequestHandler = async ({ request, fetch, platform }) => { - try { - const body = await request.json().catch(() => ({})); - - const { from, to, subject, content } = z - .object({ - from: z.object({ email: z.string().email(), name: z.string().min(1).max(100) }), - to: z.array(z.string().email()), - subject: z.string().min(1).max(100), - content: z - .string() - .min(1) - .max(100_000) - .or( - z.object({ - template: z.string().min(1).max(100), - params: z.record(z.string().max(1_000)).optional(), - }), - ), - }) - .parse(body); - - const jwt = request.headers.get("authorization")?.replace("Bearer ", "") ?? ""; - if (!jwt) { - throw error(401, await $t("errors.no-jwt")); - } - const valid = await JWT.verify(jwt, CONFIG.MAIN_KEY ?? platform?.env?.MAIN_KEY ?? "key"); - if (!valid) { - throw error(401, await $t("errors.invalid-jwt")); - } - const { jti, allowlist } = JWT.decode(jwt).payload as { jti: string; allowlist: string[] }; - const allowed = allowlist.map((x) => new RegExp(x)).some((x) => x.test(from.email)); - if (!allowed) { - throw error(403, await $t("errors.not-allowed")); - } - if (CONFIG.ALWAYS_CHECK ?? platform?.env?.ALWAYS_CHECK) { - const stored = await platform?.env?.STORE.get(`jwt:${jti}`); - if (!stored) { - throw error(401, await $t("errors.invalid-jwt")); - } - } - - let rendered_template = ""; - if (typeof content === "object") { - try { - const search = new URLSearchParams(); - for (const [key, value] of Object.entries(content.params ?? {})) { - search.append(key, value); - } - const res = await fetch(`/template/${content.template}?${search}`); - - if (!res.ok) { - throw new Error(); - } - - rendered_template = await res.text(); - } catch { - throw error(500, await $t("errors.template-render-failed")); - } - } - - // API reference: https://api.mailchannels.net/tx/v1/documentation - const req = new Request("https://api.mailchannels.net/tx/v1/send", { - method: "POST", - headers: { "content-type": "application/json" }, - body: JSON.stringify({ - from, - personalizations: to.map((email) => ({ to: [{ email }] })), - subject, - content: [ - { - type: "text/html", - value: rendered_template || content, - }, - ], - }), - }); - - const response = await fetch(req); - - return response; - } catch (err) { - if (err instanceof z.ZodError) { - throw error(400, fromZodError(err).message); - } - if (err && typeof err === "object" && "status" in err) { - throw err; - } - console.error(err); - throw error(500, await $t("errors.internal-server-error")); - } -}; +export const OPTIONS = (evt) => api.handle(evt); +export const POST = (evt) => api.handle(evt); diff --git a/src/routes/api/template/[id]/+server.ts b/src/routes/api/template/[id]/+server.ts deleted file mode 100644 index 46a2285..0000000 --- a/src/routes/api/template/[id]/+server.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { json } from "@sveltejs/kit"; -import type { RequestHandler } from "./$types"; - -export const GET: RequestHandler = async ({ url, params, fetch }) => { - const target = new URL(`/template/${params.id}`, url.origin); - url.searchParams.forEach((value, key) => target.searchParams.set(key, value)); - - const res = await fetch(target); - const text = await res.text(); - - return json({ html: text }); -}; diff --git a/src/routes/api/token/+server.ts b/src/routes/api/token/+server.ts new file mode 100644 index 0000000..2ae1dc4 --- /dev/null +++ b/src/routes/api/token/+server.ts @@ -0,0 +1,5 @@ +import api from "$api"; + +export const OPTIONS = (evt) => api.handle(evt); +export const POST = (evt) => api.handle(evt); +export const GET = (evt) => api.handle(evt); diff --git a/src/routes/api/token/[id]/+server.ts b/src/routes/api/token/[id]/+server.ts new file mode 100644 index 0000000..1784466 --- /dev/null +++ b/src/routes/api/token/[id]/+server.ts @@ -0,0 +1,5 @@ +import api from "$api"; + +export const OPTIONS = (evt) => api.handle(evt); +export const DELETE = (evt) => api.handle(evt); +export const GET = (evt) => api.handle(evt); diff --git a/src/routes/api/token/[id]/records/+server.ts b/src/routes/api/token/[id]/records/+server.ts new file mode 100644 index 0000000..5392613 --- /dev/null +++ b/src/routes/api/token/[id]/records/+server.ts @@ -0,0 +1,3 @@ +import api from "$api"; + +export const GET = (evt) => api.handle(evt); diff --git a/svelte.config.js b/svelte.config.js index 4cd50d6..0408c25 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,5 +1,5 @@ import adapter from "@sveltejs/adapter-cloudflare"; -import { vitePreprocess } from "@sveltejs/kit/vite"; +import { vitePreprocess } from "@sveltejs/vite-plugin-svelte"; /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -11,6 +11,7 @@ const config = { adapter: adapter(), alias: { "$i18n/*": "./locales/*", + $api: "./src/api", }, }, }; From b5afd79519614705dff957e7b88328dac154d727 Mon Sep 17 00:00:00 2001 From: JacobLinCool Date: Sun, 4 Feb 2024 05:17:33 +0800 Subject: [PATCH 02/13] feat: setup page --- src/routes/(app)/+layout.svelte | 6 +- src/routes/(app)/+page.server.ts | 11 ++ src/routes/(app)/+page.svelte | 5 +- src/routes/(app)/user/+page.svelte | 68 ------------ src/routes/(setup)/+layout.svelte | 11 ++ src/routes/(setup)/+layout.ts | 13 +++ src/routes/(setup)/setup/+page.server.ts | 15 +++ src/routes/(setup)/setup/+page.svelte | 120 ++++++++++++++++++++++ src/routes/(template)/template/+layout.ts | 9 -- src/routes/(template)/template/.gitignore | 1 - src/routes/{(app) => }/styles.css | 0 11 files changed, 175 insertions(+), 84 deletions(-) create mode 100644 src/routes/(app)/+page.server.ts delete mode 100644 src/routes/(app)/user/+page.svelte create mode 100644 src/routes/(setup)/+layout.svelte create mode 100644 src/routes/(setup)/+layout.ts create mode 100644 src/routes/(setup)/setup/+page.server.ts create mode 100644 src/routes/(setup)/setup/+page.svelte delete mode 100644 src/routes/(template)/template/+layout.ts delete mode 100644 src/routes/(template)/template/.gitignore rename src/routes/{(app) => }/styles.css (100%) diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 0657a65..8438859 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -1,6 +1,6 @@ @@ -11,13 +11,13 @@
-