diff --git a/Golem/.eslintrc b/Golem/.eslintrc
new file mode 100644
index 0000000..485d431
--- /dev/null
+++ b/Golem/.eslintrc
@@ -0,0 +1,9 @@
+{
+ "extends": "@antfu",
+ "rules": {
+ "vue/html-indent": ["error", 4],
+ "@typescript-eslint/indent": ["error", 4],
+ "no-console": "off",
+ "curly": ["error", "all"]
+ }
+}
\ No newline at end of file
diff --git a/Golem/.github/workflows/release-preview.yml b/Golem/.github/workflows/release-preview.yml
new file mode 100644
index 0000000..2733dd5
--- /dev/null
+++ b/Golem/.github/workflows/release-preview.yml
@@ -0,0 +1,59 @@
+name: Deploy preview environment
+
+on:
+ pull_request:
+ types: [ opened, synchronize, reopened ]
+
+jobs:
+ release:
+ name: Push application to Vercel
+ runs-on: ubuntu-latest
+ steps:
+ - id: script
+ uses: actions/github-script@f05a81df23035049204b043b50c3322045ce7eb3 # pin@v3
+ with:
+ script: |
+ const isPr = [ 'pull_request', 'pull_request_target' ].includes(context.eventName)
+ core.setOutput('ref', isPr ? context.payload.pull_request.head.ref : context.ref)
+ core.setOutput('repo', isPr ? context.payload.pull_request.head.repo.full_name : context.repo.full_name)
+ core.setOutput('pr-number', context.payload.pull_request.number)
+ core.setOutput('repo-name', context.payload.pull_request.head.repo.full_name.split('/')[1])
+
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+ ref: ${{ steps.script.outputs.ref }}
+ repository: ${{ steps.script.outputs.repo }}
+
+ - name: Deploy to Vercel
+ id: deploy
+ uses: BetaHuhn/deploy-to-vercel-action@v1 # pin@ffcc89a6d79de43d964945ce053395c2958610b1
+ env:
+ DOMAIN: golem-${{ steps.script.outputs.pr-number }}.vercel.app
+ with:
+ GITHUB_TOKEN: ${{ steps.auth.outputs.token }}
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
+ VERCEL_SCOPE: ${{ secrets.VERCEL_ORG_ID }}
+ PR_PREVIEW_DOMAIN: ${{ env.DOMAIN }}
+ BUILD_ENV: |
+ REDIRECT_URL=${{ env.DOMAIN }}
+ GOLEM_PASSWORD=${{ secrets.GEPPETO_PASSWORD }}#${{ steps.script.outputs.pr-number }}
+ APP_VERSION=${{ steps.script.outputs.ref }}#${{ steps.script.outputs.pr-number }}
+
+ - name: Deta Space Deployment
+ uses: neobrains/space-deployment-github-action@v0.5
+ with:
+ access_token: ${{ secrets.DETA_ACCESS_TOKEN }}
+ project_id: ${{ secrets.DETA_PROJECT_ID }}
+ space_push: true
+
diff --git a/Golem/.github/workflows/release-production.yml b/Golem/.github/workflows/release-production.yml
new file mode 100644
index 0000000..fabf83c
--- /dev/null
+++ b/Golem/.github/workflows/release-production.yml
@@ -0,0 +1,125 @@
+name: Deploy production environment
+
+on:
+ workflow_dispatch:
+
+jobs:
+ create-release:
+ name: Create release
+ runs-on: ubuntu-latest
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+ ref: ${{ steps.script.outputs.ref }}
+ repository: ${{ steps.script.outputs.repo }}
+
+ - uses: clicampo/action-publish-semver-release@v1
+ id: release
+ with:
+ github-token: ${{ steps.auth.outputs.token }}
+ git-committer-name: Release bot
+ git-committer-email: release@bot.com
+ release-candidate: false
+ # slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
+ # project-url: ${{ github.server_url }}/${{ github.repository }}
+ # production-action-url: ${{ github.server_url }}/${{ github.repository }}/actions/workflows/release-production.yml
+
+ - name: Create release artifacts
+ # Create a artifact with the release version, the name is the commit hash
+ run: |
+ mkdir -p artifacts
+ echo "${{ steps.release.outputs.next-version }}" > artifacts/${{ github.sha }}.txt
+
+ - name: Upload release artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: release-artifacts
+ path: artifacts
+
+ publish-to-vercel:
+ name: Push application to Vercel
+ runs-on: ubuntu-latest
+ needs: create-release
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+
+ - name: Deploy to Vercel
+ id: deploy
+ uses: BetaHuhn/deploy-to-vercel-action@v1 # pin@ffcc89a6d79de43d964945ce053395c2958610b1
+ env:
+ DOMAIN: app.golem.chat
+ with:
+ GITHUB_TOKEN: ${{ steps.auth.outputs.token }}
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
+ VERCEL_SCOPE: ${{ secrets.VERCEL_ORG_ID }}
+ PR_PREVIEW_DOMAIN: ${{ env.DOMAIN }}
+ PRODUCTION: true
+ ALIAS_DOMAINS: |
+ ${{ env.DOMAIN }}
+ BUILD_ENV: |
+ REDIRECT_URL=${{ env.DOMAIN }}
+ APP_VERSION=${{ steps.script.outputs.ref }}#${{ steps.script.outputs.pr-number }}
+
+
+ publish-to-deta-space:
+ name: Push application to Deta Space
+ runs-on: ubuntu-latest
+ needs: create-release
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+
+ - name: Get release artifacts
+ uses: actions/download-artifact@v2
+ with:
+ name: release-artifacts
+ path: artifacts
+
+ - name: Read release version # and set as a output
+ id: release
+ run: |
+ echo "::set-output name=release-version::$(cat artifacts/${{ github.sha }}.txt)"
+
+ - name: Deta Space Deployment
+ uses: henrycunh/space-deployment-github-action@05e4e73d6801abed32a3580c8e794ea790fab827
+ with:
+ access_token: ${{ secrets.DETA_ACCESS_TOKEN }}
+ project_id: ${{ secrets.DETA_PROJECT_ID }}
+ release_version: ${{ steps.release.outputs.release-version }}
+ use_experimental_build_pipeline: true
+ space_push: true
+ list_on_discovery: true
+ space_release: true
+
+
+
\ No newline at end of file
diff --git a/Golem/.github/workflows/release-staging.yml b/Golem/.github/workflows/release-staging.yml
new file mode 100644
index 0000000..30df9e1
--- /dev/null
+++ b/Golem/.github/workflows/release-staging.yml
@@ -0,0 +1,117 @@
+name: Deploy staging environment
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ create-release:
+ name: Create release
+ runs-on: ubuntu-latest
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+ ref: ${{ steps.script.outputs.ref }}
+ repository: ${{ steps.script.outputs.repo }}
+
+ - uses: clicampo/action-publish-semver-release@v1
+ id: release
+ with:
+ github-token: ${{ steps.auth.outputs.token }}
+ git-committer-name: Release bot
+ git-committer-email: release@bot.com
+ # slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
+ # project-url: ${{ github.server_url }}/${{ github.repository }}
+ # production-action-url: ${{ github.server_url }}/${{ github.repository }}/actions/workflows/release-production.yml
+
+ - name: Create release artifacts
+ # Create a artifact with the release version, the name is the commit hash
+ run: |
+ mkdir -p artifacts
+ echo "${{ steps.release.outputs.next-version }}" > artifacts/${{ github.sha }}.txt
+
+ - name: Upload release artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: release-artifacts
+ path: artifacts
+
+ publish-to-vercel:
+ name: Push application to Vercel
+ runs-on: ubuntu-latest
+ needs: create-release
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+
+ - name: Deploy to Vercel
+ id: deploy
+ uses: BetaHuhn/deploy-to-vercel-action@v1 # pin@ffcc89a6d79de43d964945ce053395c2958610b1
+ env:
+ DOMAIN: golem-chat-staging.vercel.app
+ with:
+ GITHUB_TOKEN: ${{ steps.auth.outputs.token }}
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
+ VERCEL_SCOPE: ${{ secrets.VERCEL_ORG_ID }}
+ PR_PREVIEW_DOMAIN: ${{ env.DOMAIN }}
+ ALIAS_DOMAINS: |
+ ${{ env.DOMAIN }}
+
+
+ publish-to-deta-space:
+ name: Push application to Deta Space
+ runs-on: ubuntu-latest
+ needs: create-release
+ steps:
+ - name: Get Token
+ id: auth
+ uses: peter-murray/workflow-application-token-action@e8782d687a306fb13d733244d0f2a50e272d3752 # pin@v1
+ with:
+ application_id: ${{ secrets.APPLICATION_ID }}
+ application_private_key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
+
+ - name: Checkout
+ uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3
+ with:
+ fetch-depth: 0
+
+ - name: Get release artifacts
+ uses: actions/download-artifact@v2
+ with:
+ name: release-artifacts
+ path: artifacts
+
+ - name: Read release version # and set as a output
+ id: release
+ run: |
+ echo "::set-output name=release-version::$(cat artifacts/${{ github.sha }}.txt)"
+
+ - name: Deta Space Deployment
+ uses: henrycunh/space-deployment-github-action@05e4e73d6801abed32a3580c8e794ea790fab827
+ with:
+ access_token: ${{ secrets.DETA_ACCESS_TOKEN }}
+ project_id: ${{ secrets.DETA_PROJECT_ID }}
+ release_version: ${{ steps.release.outputs.release-version }}
+ use_experimental_build_pipeline: true
+ space_push: true
\ No newline at end of file
diff --git a/Golem/.gitignore b/Golem/.gitignore
new file mode 100644
index 0000000..ec0df72
--- /dev/null
+++ b/Golem/.gitignore
@@ -0,0 +1,12 @@
+node_modules
+*.log*
+.nuxt
+.nitro
+.cache
+.output
+.env
+dist
+
+.space
+.vercel
+.DS_Store
\ No newline at end of file
diff --git a/Golem/.npmrc b/Golem/.npmrc
new file mode 100644
index 0000000..bf2e764
--- /dev/null
+++ b/Golem/.npmrc
@@ -0,0 +1 @@
+shamefully-hoist=true
diff --git a/Golem/Discovery.md b/Golem/Discovery.md
new file mode 100644
index 0000000..219f910
--- /dev/null
+++ b/Golem/Discovery.md
@@ -0,0 +1,37 @@
+---
+app_name: Golem
+tagline: An open-source ChatGPT UI alternative
+theme_color: "#f7f7f7"
+git: "https://github.com/henrycunh/golem"
+---
+
+
+
+
+
+
+
+
+![](./docs/screenshot.png)
+
+## 🚀 Key Features:
+
+- ✅ Access to GPT-3.5 / GPT-4 APIs
+- 🎨 Customizable UI
+- ⭐️ Favorite messages and conversations
+- 🔎 Search messages
+- 🗑️ Delete message
+
+## ☁ Hosted on the Personal Cloud with Deta
+
+- 🔑 Your data and conversations only belong to you
+- 📦 Integrate easily with other apps, everything on the personal cloud is programmable
+- 🍻 Share chat history
+
+## 🗺️ Roadmap:
+
+- 📄 External knowledge (documents, websites, etc.) support
+- 🤖 Additional AI language models support
+- ☁️ User accounts and cross device synchronisation
+- 🌍 Multi-language support
+- 🔌 Plugins support
\ No newline at end of file
diff --git a/Golem/Dockerfile b/Golem/Dockerfile
new file mode 100644
index 0000000..ac206a0
--- /dev/null
+++ b/Golem/Dockerfile
@@ -0,0 +1,29 @@
+# Use a builder stage to install and build dependencies
+FROM node:16-alpine AS builder
+
+WORKDIR /app
+
+# Install pnpm globally and copy package files
+COPY pnpm-lock.yaml package.json ./
+COPY scripts/prepare.ts ./scripts/prepare.ts
+RUN yarn global add pnpm && pnpm install
+
+# Copy app source code and build for production
+COPY . .
+RUN pnpm run build
+RUN ls
+
+# Use a second stage to create a smaller image without build dependencies
+FROM node:16-alpine
+
+WORKDIR /app
+
+# Copy built app from previous stage
+COPY --from=builder /app/.output /app
+
+# Expose the port and switch to non-root user
+EXPOSE 3000
+USER node
+
+# Start the app by running the server entrypoint
+CMD ["node", "./server/index.mjs"]
\ No newline at end of file
diff --git a/Golem/LICENSE b/Golem/LICENSE
new file mode 100644
index 0000000..6996a78
--- /dev/null
+++ b/Golem/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 henrycunh
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Golem/README.md b/Golem/README.md
new file mode 100644
index 0000000..5539781
--- /dev/null
+++ b/Golem/README.md
@@ -0,0 +1,61 @@
+
+
+
+
+
+
Golem is an open-source conversational UI and alternative to ChatGPT
+
+
+
+
+
+
+
+
+## 🚀 Key Features:
+
+- ✅ Access to GPT-3.5 / GPT-4 APIs
+- 🎨 Customizable UI
+- 🌑 Dark mode
+- 🗑️ Delete messages
+- ⭐️ Favorite messages and conversations
+- 🔎 Search messages
+- ⚙️ Custom settings for conversations
+
+## ☁ Host on the Personal Cloud with Deta
+
+- 🔑 Your data and conversations only belong to you
+- 📦 Integrate easily with other apps, everything on the personal cloud is programmable
+- 💠 Cross device synchronisation
+- 🍻 Share chat history
+
+
+
+## 🛠 Configuration
+You can use **environment variables** to customize your instance.
+
+| Variable | Description |
+| -------- | ----------- |
+| **`GOLEM_PASSWORD`** | Protects the instance with this password, which will be prompted at every usage. |
+| **`OPENAI_API_KEY`** | Enforces the usage of this API Key on the instance. |
+
+## 🐳 Running on Docker
+You can run Golem on Docker with the following command:
+
+```bash
+docker run -p3000:3000 theajax/golem
+```
+
+## 🗺️ Roadmap:
+
+- 📄 External knowledge (documents, websites, etc.) support
+- 🤖 Additional AI language models support
+- 🌍 Multi-language support
+- 🔌 Plugins support
+
+
+
diff --git a/Golem/Spacefile b/Golem/Spacefile
new file mode 100644
index 0000000..df9a69f
--- /dev/null
+++ b/Golem/Spacefile
@@ -0,0 +1,18 @@
+# Spacefile Docs: https://go.deta.dev/docs/spacefile/v0
+v: 0
+icon: assets/logo.png
+micros:
+ - name: golem
+ src: .
+ engine: nuxt
+ primary: true
+ public_routes:
+ - /chat/share/*
+ - /_nuxt/*
+ - /api/trpc/deta*
+ - /shiki/*
+ - /image/*
+ - /*.png
+ - /*.ico
+ - /sw.js
+ - /manifest.json
\ No newline at end of file
diff --git a/Golem/app.vue b/Golem/app.vue
new file mode 100644
index 0000000..0a2f3c8
--- /dev/null
+++ b/Golem/app.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/assets/css/main.css b/Golem/assets/css/main.css
new file mode 100644
index 0000000..7a1d66c
--- /dev/null
+++ b/Golem/assets/css/main.css
@@ -0,0 +1,187 @@
+* {
+ box-sizing: border-box;
+ touch-action: manipulation;
+}
+
+html {
+ @apply font-text;
+}
+
+input, textarea {
+ @apply font-text;
+}
+
+html.scroll-lock {
+ position: fixed;
+ overflow-y: scroll;
+ top: var(--window-scroll-top);
+ width: 100%;
+}
+
+.bg-enter-active,
+.bg-leave-active {
+ transition: background-color 0.2s ease-in-out, filter 0.2s ease-in-out;
+}
+
+.bg-enter-from,
+.bg-leave-to {
+ background-color: transparent !important;
+ filter: blur(0px) !important;
+}
+
+.scale-enter-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ margin 0.18s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.scale-leave-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ margin 0.25s cubic-bezier(0, 0.55, 0.45, 1);
+}
+
+.scale-enter-from,
+.scale-leave-to {
+ opacity: 0;
+ transform: scale(0.45) !important;
+ margin: 0 !important;
+}
+
+/* Appear from right */
+.appear-right-enter-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ width 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ padding-left 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ padding-right 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ margin 0.18s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.appear-right-leave-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ width 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ padding-left 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ padding-right 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ margin 0.25s cubic-bezier(0, 0.55, 0.45, 1);
+}
+
+.appear-right-enter-from,
+.appear-right-leave-to {
+ opacity: 0 !important;
+ transform: translateX(20px) !important;
+ width: 0 !important;
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ margin: 0 !important;
+}
+
+
+/* Appear from left */
+.appear-left-enter-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ width 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ margin 0.18s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.appear-left-leave-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ width 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ margin 0.25s cubic-bezier(0, 0.55, 0.45, 1);
+}
+
+.appear-left-enter-from,
+.appear-left-leave-to {
+ opacity: 0 !important;
+ transform: translateX(-20px) !important;
+ width: 0 !important;
+ margin: 0 !important;
+}
+
+/* Appear from top */
+.appear-top-enter-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ height 0.18s cubic-bezier(0.5, 1, 0.89, 1),
+ margin 0.18s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.appear-top-leave-active {
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
+ opacity 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ height 0.25s cubic-bezier(0, 0.55, 0.45, 1),
+ margin 0.25s cubic-bezier(0, 0.55, 0.45, 1);
+}
+
+.appear-top-enter-from,
+.appear-top-leave-to {
+ opacity: 0 !important;
+ transform: translateY(-20px) !important;
+ height: 0 !important;
+ margin: 0 !important;
+}
+
+.page-enter-active,
+.page-leave-active {
+ transition: all 0.250s cubic-bezier(0.5, 1, 0.89, 1);
+}
+.page-enter-from,
+.page-leave-to {
+ opacity: 0;
+ transform: translateY(20px);
+ filter: grayscale(1);
+}
+
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.25s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.fade-enter-from,
+.fade-leave-to {
+ opacity: 0;
+}
+
+.slide-top-enter-active,
+.slide-top-leave-active {
+ transition: transform 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ opacity 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ height 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ margin 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ padding 0.25s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.slide-top-enter-from,
+.slide-top-leave-to {
+ opacity: 0 !important;
+ transform: translateY(-20px) !important;
+ height: 0 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+}
+
+.slide-right-enter-active,
+.slide-right-leave-active {
+ transition: transform 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ opacity 0.25s cubic-bezier(0.5, 1, 0.89, 1),
+ padding 0.25s cubic-bezier(0.5, 1, 0.89, 1);
+}
+
+.slide-right-enter-from,
+.slide-right-leave-to {
+ opacity: 0 !important;
+ transform: translateX(200px) !important;
+}
+
+.v-popper__inner {
+ font-size: 14px;
+}
+
+@media (max-width: 640px) {
+ .v-popper__inner {
+ font-size: 11px;
+ }
+}
\ No newline at end of file
diff --git a/Golem/assets/logo.png b/Golem/assets/logo.png
new file mode 100644
index 0000000..eaca898
Binary files /dev/null and b/Golem/assets/logo.png differ
diff --git a/Golem/components/animated-text.vue b/Golem/components/animated-text.vue
new file mode 100644
index 0000000..9357817
--- /dev/null
+++ b/Golem/components/animated-text.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+ {{ value }}
+
+
+
+
+
diff --git a/Golem/components/app-chat/header.vue b/Golem/components/app-chat/header.vue
new file mode 100644
index 0000000..28b35b2
--- /dev/null
+++ b/Golem/components/app-chat/header.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
diff --git a/Golem/components/app-chat/history-container.vue b/Golem/components/app-chat/history-container.vue
new file mode 100644
index 0000000..a587b28
--- /dev/null
+++ b/Golem/components/app-chat/history-container.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/app-chat/history-empty.vue b/Golem/components/app-chat/history-empty.vue
new file mode 100644
index 0000000..adac9f3
--- /dev/null
+++ b/Golem/components/app-chat/history-empty.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/app-chat/history-typing.vue b/Golem/components/app-chat/history-typing.vue
new file mode 100644
index 0000000..951e732
--- /dev/null
+++ b/Golem/components/app-chat/history-typing.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/app-chat/history.vue b/Golem/components/app-chat/history.vue
new file mode 100644
index 0000000..6464a3c
--- /dev/null
+++ b/Golem/components/app-chat/history.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/app-chat/index.vue b/Golem/components/app-chat/index.vue
new file mode 100644
index 0000000..741468e
--- /dev/null
+++ b/Golem/components/app-chat/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/Golem/components/app-chat/prompt.vue b/Golem/components/app-chat/prompt.vue
new file mode 100644
index 0000000..bda548f
--- /dev/null
+++ b/Golem/components/app-chat/prompt.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
diff --git a/Golem/components/app-chat/scroll-to-bottom-button.vue b/Golem/components/app-chat/scroll-to-bottom-button.vue
new file mode 100644
index 0000000..9d62f63
--- /dev/null
+++ b/Golem/components/app-chat/scroll-to-bottom-button.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/Golem/components/app-chat/settings-value.vue b/Golem/components/app-chat/settings-value.vue
new file mode 100644
index 0000000..c1eb4f9
--- /dev/null
+++ b/Golem/components/app-chat/settings-value.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+ {{ settingTitle }}
+
+
+
+ {{ settingValue }}
+
+
+
+
diff --git a/Golem/components/app-chat/settings.vue b/Golem/components/app-chat/settings.vue
new file mode 100644
index 0000000..2784684
--- /dev/null
+++ b/Golem/components/app-chat/settings.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+ Settings
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/app-messages-sidebar/favorite-conversations.vue b/Golem/components/app-messages-sidebar/favorite-conversations.vue
new file mode 100644
index 0000000..da2500b
--- /dev/null
+++ b/Golem/components/app-messages-sidebar/favorite-conversations.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/Golem/components/app-messages-sidebar/index.vue b/Golem/components/app-messages-sidebar/index.vue
new file mode 100644
index 0000000..3e63551
--- /dev/null
+++ b/Golem/components/app-messages-sidebar/index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ New chat
+
+
+ Clear all
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/app-messages-sidebar/recent-conversations.vue b/Golem/components/app-messages-sidebar/recent-conversations.vue
new file mode 100644
index 0000000..a255b9e
--- /dev/null
+++ b/Golem/components/app-messages-sidebar/recent-conversations.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+ Recent
+
+
+
+
+
+
+
+
+ No results
+
+
+ Try a different search term
+
+
+
+
+
diff --git a/Golem/components/app-navbar-mobile.vue b/Golem/components/app-navbar-mobile.vue
new file mode 100644
index 0000000..7e65992
--- /dev/null
+++ b/Golem/components/app-navbar-mobile.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
diff --git a/Golem/components/app-navbar/index.vue b/Golem/components/app-navbar/index.vue
new file mode 100644
index 0000000..2a93707
--- /dev/null
+++ b/Golem/components/app-navbar/index.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
diff --git a/Golem/components/app-prompt-input.vue b/Golem/components/app-prompt-input.vue
new file mode 100644
index 0000000..07bc87c
--- /dev/null
+++ b/Golem/components/app-prompt-input.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stop talking!
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/app-splash-screen.vue b/Golem/components/app-splash-screen.vue
new file mode 100644
index 0000000..a450d42
--- /dev/null
+++ b/Golem/components/app-splash-screen.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
diff --git a/Golem/components/color-mode-toggle.vue b/Golem/components/color-mode-toggle.vue
new file mode 100644
index 0000000..9b2be5f
--- /dev/null
+++ b/Golem/components/color-mode-toggle.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/Golem/components/conversation-tab.vue b/Golem/components/conversation-tab.vue
new file mode 100644
index 0000000..9aa0c81
--- /dev/null
+++ b/Golem/components/conversation-tab.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+ {{ lastMessage.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/dialog.vue b/Golem/components/dialog.vue
new file mode 100644
index 0000000..a0f0045
--- /dev/null
+++ b/Golem/components/dialog.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/go/button-select.vue b/Golem/components/go/button-select.vue
new file mode 100644
index 0000000..4e47329
--- /dev/null
+++ b/Golem/components/go/button-select.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/Golem/components/go/button.vue b/Golem/components/go/button.vue
new file mode 100644
index 0000000..0b0343f
--- /dev/null
+++ b/Golem/components/go/button.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/go/input.vue b/Golem/components/go/input.vue
new file mode 100644
index 0000000..0745b9c
--- /dev/null
+++ b/Golem/components/go/input.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/go/link.vue b/Golem/components/go/link.vue
new file mode 100644
index 0000000..069382b
--- /dev/null
+++ b/Golem/components/go/link.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/go/long-press-button.vue b/Golem/components/go/long-press-button.vue
new file mode 100644
index 0000000..8229d6c
--- /dev/null
+++ b/Golem/components/go/long-press-button.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/go/splash.vue b/Golem/components/go/splash.vue
new file mode 100644
index 0000000..73ebb84
--- /dev/null
+++ b/Golem/components/go/splash.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ subtitle }}
+
+
+
diff --git a/Golem/components/go/typography.vue b/Golem/components/go/typography.vue
new file mode 100644
index 0000000..a20bfa4
--- /dev/null
+++ b/Golem/components/go/typography.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
diff --git a/Golem/components/knowledge/manager.vue b/Golem/components/knowledge/manager.vue
new file mode 100644
index 0000000..678d981
--- /dev/null
+++ b/Golem/components/knowledge/manager.vue
@@ -0,0 +1,81 @@
+
diff --git a/Golem/components/logo.vue b/Golem/components/logo.vue
new file mode 100644
index 0000000..6d6e33b
--- /dev/null
+++ b/Golem/components/logo.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ Universal ChatGPT UI
+
+
+
+
diff --git a/Golem/components/markdown/code-block.vue b/Golem/components/markdown/code-block.vue
new file mode 100644
index 0000000..6fa4e46
--- /dev/null
+++ b/Golem/components/markdown/code-block.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+ {{ copied ? 'copied!' : 'copy' }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/markdown/code-inline.vue b/Golem/components/markdown/code-inline.vue
new file mode 100644
index 0000000..545e113
--- /dev/null
+++ b/Golem/components/markdown/code-inline.vue
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Golem/components/markdown/heading.vue b/Golem/components/markdown/heading.vue
new file mode 100644
index 0000000..15a2010
--- /dev/null
+++ b/Golem/components/markdown/heading.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/Golem/components/markdown/paragraph.vue b/Golem/components/markdown/paragraph.vue
new file mode 100644
index 0000000..23cb8ed
--- /dev/null
+++ b/Golem/components/markdown/paragraph.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/markdown/renderer.vue b/Golem/components/markdown/renderer.vue
new file mode 100644
index 0000000..b514148
--- /dev/null
+++ b/Golem/components/markdown/renderer.vue
@@ -0,0 +1,93 @@
+
diff --git a/Golem/components/markdown/unordered-list.vue b/Golem/components/markdown/unordered-list.vue
new file mode 100644
index 0000000..bccc510
--- /dev/null
+++ b/Golem/components/markdown/unordered-list.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/Golem/components/message.client.vue b/Golem/components/message.client.vue
new file mode 100644
index 0000000..8e1604d
--- /dev/null
+++ b/Golem/components/message.client.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+ {{ message.role === 'assistant' ? 'Golem' : 'You' }}
+
+
+
+
+
+
+
+
+ {{ message.text }}
+
+
+
+
+
+
+
+ {{ tokenCount }} tokens
+
+
+
+
+
+
+ Delete
+
+
+
+
+
+
+
diff --git a/Golem/components/search-bar.vue b/Golem/components/search-bar.vue
new file mode 100644
index 0000000..f08da11
--- /dev/null
+++ b/Golem/components/search-bar.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/Golem/components/settings/creativity/select.vue b/Golem/components/settings/creativity/select.vue
new file mode 100644
index 0000000..f248688
--- /dev/null
+++ b/Golem/components/settings/creativity/select.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/Golem/components/settings/max-tokens/input.vue b/Golem/components/settings/max-tokens/input.vue
new file mode 100644
index 0000000..012ec43
--- /dev/null
+++ b/Golem/components/settings/max-tokens/input.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Maximum Tokens
+
+
+ Leave blank to not limit.
+
+
+
+
diff --git a/Golem/components/settings/model/options.vue b/Golem/components/settings/model/options.vue
new file mode 100644
index 0000000..20cb7a1
--- /dev/null
+++ b/Golem/components/settings/model/options.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+ Options
+
+
+
+ Max Tokens
+
+
+ Limits the number of tokens that can be generated by the model.
+ Leave blank to not limit.
+
+
+
+
+
diff --git a/Golem/components/settings/model/select.vue b/Golem/components/settings/model/select.vue
new file mode 100644
index 0000000..ad29503
--- /dev/null
+++ b/Golem/components/settings/model/select.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/Golem/components/sidebar/api-key-alert.vue b/Golem/components/sidebar/api-key-alert.vue
new file mode 100644
index 0000000..3298037
--- /dev/null
+++ b/Golem/components/sidebar/api-key-alert.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+ Provide your API key to start a conversation.
+
+
+ Click here
+
+
+
+
diff --git a/Golem/components/sidebar/item.vue b/Golem/components/sidebar/item.vue
new file mode 100644
index 0000000..97881a7
--- /dev/null
+++ b/Golem/components/sidebar/item.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/Golem/components/skeleton.vue b/Golem/components/skeleton.vue
new file mode 100644
index 0000000..1bbd7d9
--- /dev/null
+++ b/Golem/components/skeleton.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/Golem/composables/appearence.ts b/Golem/composables/appearence.ts
new file mode 100644
index 0000000..8bd68c9
--- /dev/null
+++ b/Golem/composables/appearence.ts
@@ -0,0 +1,32 @@
+import { tailwindcssPaletteGenerator } from '@bobthered/tailwindcss-palette-generator'
+import { useStorage } from '@vueuse/core'
+
+export function useAppearance() {
+ const color = useStorage('golem-base-color', '#a633cc')
+ const navigationBarPosition = useStorage('golem-navbar-position', 'left')
+
+ function setPalette(newColor?: string) {
+ if (newColor) {
+ color.value = newColor
+ }
+ const palette = tailwindcssPaletteGenerator(color.value)
+ for (const [shade, color] of Object.entries(palette.primary)) {
+ const hexToRgb = (hex: string) => {
+ hex = hex.replace('#', '')
+ const r = parseInt(hex.substring(0, 2), 16)
+ const g = parseInt(hex.substring(2, 4), 16)
+ const b = parseInt(hex.substring(4, 6), 16)
+ return `${r}, ${g}, ${b}`
+ }
+ document.documentElement.style.setProperty(`--color-primary-${shade}`, hexToRgb(color))
+ }
+ }
+
+ return {
+ color,
+ setPalette,
+ navigationBarPosition,
+ }
+}
+
+export type NavigationBarPosition = 'top' | 'bottom' | 'left' | 'right'
diff --git a/Golem/composables/conversation.ts b/Golem/composables/conversation.ts
new file mode 100644
index 0000000..8224f30
--- /dev/null
+++ b/Golem/composables/conversation.ts
@@ -0,0 +1,574 @@
+import type { ChatMessage } from 'chatgpt-web'
+import { nanoid } from 'nanoid'
+import { Configuration, OpenAIApi } from 'openai'
+import pLimit from 'p-limit'
+import { encode } from 'gpt-token-utils'
+import type { types } from '~~/utils/types'
+import trimIndent from '~~/utils/string'
+
+const MaxTokensPerModel = {
+ 'mistral-7b-v0.1': 8180,
+ 'llama3-8b': 4080,
+} as Record
+
+
+
+
+export const useConversations = () => {
+ const db = useIDB()
+
+ const { isDetaEnabled, deta } = useDeta()
+ const { apiKey } = useSettings()
+ const { maxTokens, modelUsed } = useSettings()
+ const { knowledgeList } = useKnowledge()
+ const { complete } = useLanguageModel()
+
+ const currentConversationId = useState(() => '')
+ const currentConversation = useState(() => null)
+ const conversationList = useState(() => null)
+ const conversationAbortMap = useState>(() => ({}))
+
+ const knowledgeUsedInConversation = computed(() => {
+ if (currentConversation.value === null) {
+ return []
+ }
+ return currentConversation.value.knowledge?.map((knowledgeId) => {
+ return knowledgeList.value?.find(knowledge => knowledge.id === knowledgeId)
+ }).filter(knowledge => knowledge !== undefined) || [] as types.KnowledgeItem[]
+ })
+ const isTyping = useState>(() => ({}))
+ const isTypingInCurrentConversation = computed(() => {
+ return isTyping.value[currentConversationId.value] || false
+ })
+ const followupQuestions = useState> | null>(() => null)
+
+ async function listConversations() {
+ return await db.table('conversations').toArray()
+ }
+
+ async function updateConversationList() {
+ conversationList.value = await listConversations()
+ }
+
+ async function getConversationById(id: string) {
+ return await db.table('conversations').get(id)
+ }
+
+ async function createConversation(title: string, options?: Partial) {
+ const newConversation: types.Conversation = {
+ id: nanoid(),
+ title,
+ messages: [],
+ createdAt: new Date(),
+ updatedAt: new Date(),
+ knowledge: [],
+ ...options,
+ }
+ const newKey = await db.table('conversations').add(newConversation)
+ if (!newKey) {
+ throw new Error('Failed to create conversation')
+ }
+ if (isDetaEnabled.value) {
+ deta.conversation.create(newConversation)
+ }
+ await updateConversationList()
+ return newConversation
+ }
+
+ async function cloneConversation(conversationId: string, lastMessageId?: string, titlePrefix?: string) {
+ const titlePrefixWithDefault = titlePrefix || 'Copy: '
+ const originConversation = await getConversationById(conversationId)
+ let messageList = []
+
+ if (lastMessageId) {
+ const lastMessage = await getMessageById(conversationId, lastMessageId)
+ messageList = getMessageChain(originConversation.messages, lastMessage)
+ }
+ else {
+ messageList = originConversation.messages
+ }
+
+ await createConversation(
+ '',
+ {
+ ...originConversation,
+ id: nanoid(),
+ title: [titlePrefixWithDefault, originConversation.title].join(''),
+ messages: messageList,
+ createdAt: new Date(),
+ updatedAt: new Date(),
+ },
+ )
+ }
+
+ async function forkConversation(id: string, lastMessageId: string) {
+ await cloneConversation(id, lastMessageId, 'Fork: ')
+ }
+
+ async function addMessageToConversation(id: string, message: ChatMessage) {
+ const conversation = await db.table('conversations').get(id)
+ if (!conversation) {
+ throw new Error('Conversation not found')
+ }
+ const updatedMessage = getUpdatedMessage(message, conversation.id)
+
+ const newConversation = {
+ ...conversation,
+ messages: [...conversation.messages, updatedMessage],
+ updatedAt: new Date(),
+ }
+ await db.table('conversations').put(newConversation)
+ if (isDetaEnabled.value) {
+ deta.message.create(updatedMessage)
+ }
+ if (currentConversationId.value === id) {
+ currentConversation.value = newConversation
+ }
+ }
+
+ async function getMessageById(conversationId: string, id: string) {
+ const conversation = await db.table('conversations').get(conversationId)
+ if (!conversation) {
+ throw new Error('Conversation not found')
+ }
+ return conversation.messages.find((message: ChatMessage) => message.id === id) as ChatMessage
+ }
+
+ async function updateLastAssistantMessage(conversationId: string, message: types.Message) {
+ const conversation = await db.table('conversations').get(conversationId)
+ if (!conversation) {
+ throw new Error('Conversation not found')
+ }
+ const systemMessages = conversation.messages.filter((message: ChatMessage) => message.role === 'assistant')
+ if (systemMessages.length === 0) {
+ return null
+ }
+ const lastSystemMessage = systemMessages[systemMessages.length - 1]
+ if (!lastSystemMessage) {
+ return null
+ }
+
+ const newConversation = {
+ ...conversation,
+ messages: conversation.messages.map((currentMessage: ChatMessage) => {
+ console.log({"current msg" : currentMessage})
+ if (currentMessage.id === lastSystemMessage.id) {
+ console.log(currentMessage, message, "shubham")
+ return {
+ ...currentMessage,
+ text: currentMessage.text + message.text,
+ updatedAt: new Date(),
+ }
+ }
+ return currentMessage
+ }),
+ updatedAt: new Date(),
+ }
+ await db.table('conversations').put(newConversation)
+ if (currentConversationId.value === conversationId) {
+ currentConversation.value = newConversation
+ }
+ }
+
+ const updateConversation = async (id: string, update: Partial) => {
+ const conversation = await db.table('conversations').get(id)
+ if (!conversation) {
+ throw new Error('Conversation not found')
+ }
+ const newConversation: types.Conversation = {
+ ...conversation,
+ ...update,
+ }
+
+ await db.table('conversations').put(newConversation)
+ if (isDetaEnabled.value) {
+ deta.conversation.update(newConversation)
+ }
+ await updateConversationList()
+ if (currentConversationId.value === id) {
+ currentConversation.value = newConversation
+ }
+ }
+
+ const updateConversationSettings = async (id: string, update: Partial) => {
+ const conversation: types.Conversation = await db.table('conversations').get(id)
+ if (!conversation) {
+ throw new Error('Conversation not found')
+ }
+ const newConversation: types.Conversation = {
+ ...conversation,
+ settings: {
+ ...conversation.settings,
+ ...update,
+ },
+ }
+ logger.info('Updating conversation settings')
+ await updateConversation(id, newConversation)
+ }
+
+ const deleteConversation = async (id: string) => {
+ await db.table('conversations').delete(id)
+ if (isDetaEnabled.value) {
+ deta.conversation.delete(id)
+ }
+ await updateConversationList()
+ }
+
+ async function addErrorMessage(message: string) {
+ if (!currentConversation.value) {
+ return
+ }
+ const newMessage: types.Message = {
+ id: nanoid(),
+ role: 'assistant' as const,
+ text: message,
+ updatedAt: new Date(),
+ createdAt: new Date(),
+ isError: true,
+ }
+ await addMessageToConversation(currentConversation.value.id, newMessage)
+ }
+
+ async function clearErrorMessages() {
+ if (!currentConversation.value) {
+ return
+ }
+ const conversation = await getConversationById(currentConversation.value.id)
+ if (!conversation) {
+ return
+ }
+ const newMessages = conversation.messages.filter((message: types.Message) => !message.isError)
+ await updateConversation(currentConversation.value.id, {
+ messages: [...newMessages],
+ })
+ }
+
+ const sendMessage = async (message: string) => {
+ if (!process.client) {
+ return
+ }
+
+ const fromConversation = currentConversation.value
+ if (!fromConversation) {
+ return
+ }
+
+ const assistantMessageList = (fromConversation.messages || []).filter((message: ChatMessage) => message.role === 'assistant')
+ const lastAssistantMessage = assistantMessageList[assistantMessageList.length - 1]
+ const userMessage = {
+ id: nanoid(),
+ role: 'user' as const,
+ text: message,
+ parentMessageId: lastAssistantMessage?.id,
+ updatedAt: new Date(),
+ }
+
+ // Adds the user message to the conversation
+ addMessageToConversation(fromConversation.id, userMessage)
+ setConversationTypingStatus(fromConversation.id, true)
+
+ let messageList: any[] = getMessageChain(fromConversation.messages, userMessage)
+ messageList = [
+ {
+ role: 'system',
+ text: fromConversation.systemMessage || getDefaultSystemMessage(),
+ id: 'system-message',
+ },
+ ...messageList,
+ ]
+ messageList = messageList.map(message => ({
+ role: message.role,
+ content: message.text,
+ }))
+
+ // TODO: Add knowledge to the conversation
+ // if (knowledgeUsedInConversation.value.length > 0) {
+ // let lastMessageId = lastSystemMessage?.id
+ // for (const knowledge of knowledgeUsedInConversation.value) {
+ // const messageId = nanoid()
+ // lastMessages.push({
+ // id: messageId,
+ // role: 'user',
+ // text: `Use this as knowledge for the rest of our conversation:\n${knowledge?.sections[0]?.content}\n---`,
+ // parentMessageId: lastMessageId,
+ // updatedAt: new Date(),
+ // createdAt: new Date(),
+ // })
+ // lastMessageId = messageId
+ // }
+ // userMessage.parentMessageId = lastMessageId
+ // }
+
+ // Count the tokens to see if message is too long
+ const getTokenCount = () => encode(messageList.map(message => message.content).join('\n\n')).length
+ let lastTokenCount = getTokenCount()
+ if (getTokenCount() > MaxTokensPerModel[modelUsed.value]) {
+ logger.info('Message is too long, removing messages...', { lastTokenCount, MaxTokensPerModel, modelUsed })
+ // Remove the first message that is not a system message
+ // until the token count is less than the max or there are no more messages
+ while (messageList.length > 1 && lastTokenCount > MaxTokensPerModel[modelUsed.value]) {
+ messageList = [
+ messageList[0],
+ ...(messageList.filter(({ role }) => role !== 'system').slice(1)),
+ ]
+ lastTokenCount = getTokenCount()
+ }
+ if (messageList.length === 1) {
+ await addErrorMessage('Your message is too long, please try again.')
+ return
+ }
+ }
+
+ let thisMessage: ChatMessage | null = null
+ let messageCreated = false
+
+ const waiting = () => new Promise((resolve, reject) => {
+ setTimeout(() => {
+ resolve('ok')
+ }, 500)
+ })
+
+ const upsertAssistantMessage = async (messageResponse: types.Message, finalUpdate?: boolean) => {
+ await waiting()
+
+ if (!thisMessage) {
+ thisMessage = await getMessageById(fromConversation.id, messageResponse.id)
+ }
+
+ if (thisMessage) {
+ console.log("indide 2")
+
+ await updateLastAssistantMessage(fromConversation.id, messageResponse)
+ if (finalUpdate) {
+ if (isDetaEnabled.value) {
+ deta.message.update(getUpdatedMessage(messageResponse, fromConversation.id))
+ }
+ }
+ }
+
+ else if (!messageCreated) {
+ console.log("indide 3")
+
+ messageCreated = true
+ await addMessageToConversation(fromConversation.id, messageResponse)
+ }
+ }
+
+ const { sendMessage } = useLanguageModel()
+ const abortController = new AbortController()
+ conversationAbortMap.value[fromConversation.id] = abortController
+ const { data: assistantMessage, error: messageError } = await handle(sendMessage({
+ messages: messageList,
+ model: fromConversation.settings?.model || modelUsed.value,
+ max_tokens: Number(fromConversation.settings?.maxTokens || maxTokens.value) > 0 ? Number(fromConversation.settings?.maxTokens || maxTokens.value) : undefined,
+ temperature: resolveCreativity(fromConversation.settings?.creativity),
+ async onProgress(partial: types.Message) {
+ await upsertAssistantMessage(partial)
+ },
+ signal: abortController.signal,
+ stream: true,
+ convId: currentConversationId.value
+ }))
+
+ if (messageError) {
+ const { cause } = (messageError as any)
+ const errorCode: string = cause.error.code || cause.error.type
+ logger.error('Error sending message', cause, cause.error)
+ const errorHandlerMapping = {
+ async model_not_found() {
+ await addErrorMessage('The model you are using is not available. Please select another model in the settings.')
+ },
+ async context_length_exceeded() {
+ await addErrorMessage('Your message is too long or the amount of maximum tokens is too high, please try again with a shorter message or with less tokens as max.')
+ },
+ async invalid_api_key() {
+ await addErrorMessage('Your API key is invalid. Please check your API key in the settings.')
+ },
+ async insufficient_quota() {
+ await addErrorMessage('Insufficient quota. If you\'re using a free plan, consider upgrading to a pay-as-you-use plan.')
+ },
+ } as Record Promise>
+
+ if (errorCode in errorHandlerMapping) {
+ await errorHandlerMapping[errorCode]()
+ }
+ }
+ else {
+ assistantMessage.parentMessageId = userMessage.id
+ setConversationTypingStatus(fromConversation.id, false)
+ await upsertAssistantMessage(assistantMessage as any, true)
+ await updateConversationList()
+
+ if (fromConversation.title.trim() === 'Untitled Conversation') {
+ await generateConversationTitle(fromConversation.id)
+ }
+ }
+
+ setConversationTypingStatus(fromConversation.id, false)
+
+ // TODO: Add follow up questions feature
+ // getFollowupQuestions(message)
+ }
+
+ const switchConversation = async (id: string) => {
+ currentConversationId.value = id
+ currentConversation.value = await getConversationById(id)
+ logger.info('Switched to conversation', currentConversation.value?.id)
+ }
+
+ async function generateConversationTitle(conversationId: string) {
+ const conversation = await getConversationById(conversationId)
+ if (!conversation) {
+ return ''
+ }
+ const lastMessages = conversation.messages.slice(-3)
+ const lastMessagesContent = lastMessages.map((message: ChatMessage) => message.text)
+ const conversationTitle = await complete(lastMessagesContent.join('\n'), {
+ systemMessage: 'You are a very clever machine that can determine a very short title for a conversation. The user sends you the content of a conversation and you only output a very short title for it, really concise. Title:',
+ temperature: 0,
+ maxTokens: Number(maxTokens),
+ })
+
+ conversation.title = conversationTitle?.replace(/Title\:/g, '').replace(/\"/g, '').trim()
+ await updateConversation(conversationId, conversation)
+ }
+
+ async function removeMessageFromConversation(conversationId: string, messageId: string) {
+ const conversation = await getConversationById(conversationId)
+ if (!conversation) {
+ return
+ }
+ conversation.messages = conversation.messages.filter((message: ChatMessage) => message.id !== messageId)
+ await updateConversation(conversationId, conversation)
+ if (isDetaEnabled.value) {
+ deta.message.delete(messageId)
+ }
+ }
+
+ async function clearConversations() {
+ if (!conversationList.value) {
+ return
+ }
+ const limit = pLimit(10)
+ await Promise.all(conversationList.value.map(
+ (conversation: types.Conversation) => limit(() => deleteConversation(conversation.id)),
+ ))
+ const newConversation = await createConversation('Untitled Conversation')
+ await switchConversation(newConversation.id)
+ }
+
+ function setConversationTypingStatus(conversationId: string, status: boolean) {
+ isTyping.value = {
+ ...isTyping.value,
+ [conversationId]: status,
+ }
+ }
+
+ async function getFollowupQuestions(text: string) {
+ const client = new OpenAIApi(new Configuration({
+ apiKey: apiKey.value || '',
+ }))
+ const response = await client.createCompletion({
+ model: 'text-davinci-003',
+ prompt: [
+ 'Given the last user question:',
+ text,
+ 'Output 3 questions that the user might ask next, one by line, without list number. The last line has only ###:',
+ ].join('\n'),
+ stop: '###',
+ max_tokens: 500,
+ })
+ followupQuestions.value = {
+ ...followupQuestions.value,
+ [currentConversationId.value]: (response.data.choices[0].text || '').split('\n').filter((text: string) => text.trim() !== ''),
+ }
+ }
+
+ async function stopConversationMessageGeneration(conversationId: string) {
+ const abortController = conversationAbortMap.value[conversationId]
+ if (abortController) {
+ abortController.abort()
+ }
+ }
+
+ async function updateConversationMessage(conversationId: string, messageId: string, message: Partial) {
+ const conversation = await getConversationById(conversationId)
+ if (!conversation) {
+ return
+ }
+ const messageIndex = conversation.messages.findIndex((m: types.Message) => m.id === messageId)
+ if (messageIndex === -1) {
+ return
+ }
+ conversation.messages[messageIndex] = {
+ ...conversation.messages[messageIndex],
+ ...message,
+ }
+ await updateConversation(conversationId, conversation)
+ if (isDetaEnabled.value) {
+ deta.message.update(conversation.messages[messageIndex])
+ }
+ }
+
+ return {
+ clearConversations,
+ clearErrorMessages,
+ cloneConversation,
+ conversationList,
+ createConversation,
+ currentConversation,
+ deleteConversation,
+ followupQuestions,
+ forkConversation,
+ getConversationById,
+ isTyping,
+ isTypingInCurrentConversation,
+ knowledgeUsedInConversation,
+ listConversations,
+ removeMessageFromConversation,
+ sendMessage,
+ stopConversationMessageGeneration,
+ switchConversation,
+ updateConversation,
+ updateConversationSettings,
+ updateConversationList,
+ updateConversationMessage,
+ }
+}
+
+function getUpdatedMessage(message: ChatMessage, conversationId: string): types.Message {
+ return {
+ ...message,
+ updatedAt: new Date(),
+ createdAt: (message as types.Message).createdAt || new Date(),
+ conversationId,
+ }
+}
+
+function getMessageChain(messages: ChatMessage[], message: ChatMessage): ChatMessage[] {
+ const parentMessage = messages.find((m: ChatMessage) => m.id === message.parentMessageId)
+ if (!parentMessage) {
+ return [message]
+ }
+ return [...getMessageChain(messages, parentMessage), message]
+}
+
+function getDefaultSystemMessage() {
+ const currentDate = new Date().toISOString().split('T')[0]
+ return trimIndent(`
+ You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.
+ Knowledge cutoff: 2021-09-01
+ Current date: ${currentDate}
+ `)
+}
+
+function resolveCreativity(creativity?: types.Creativity | null) {
+ if (!creativity) {
+ return 0.7
+ }
+ return mapValue({
+ none: 0.0,
+ normal: 0.7,
+ high: 1.2,
+ }, creativity, 0.7)
+}
diff --git a/Golem/composables/deta.ts b/Golem/composables/deta.ts
new file mode 100644
index 0000000..b3d65b7
--- /dev/null
+++ b/Golem/composables/deta.ts
@@ -0,0 +1,102 @@
+import pLimit from 'p-limit'
+import type { types } from '~~/utils/types'
+
+export function useDeta() {
+ const idb = useIDB()
+ const client = useClient()
+ const isDetaEnabled = useState('is-deta-enabled', () => false)
+
+ const deta = {
+ conversation: {
+ async get(id: string) {
+ const result = await client.deta.conversations.get.query({ id })
+ return parseDateFields(result, ['updatedAt', 'createdAt'] as const)
+ },
+ async create(conversation: types.Conversation) {
+ logger.info('Creating conversation', conversation)
+ return await client.deta.conversations.create.mutate(conversation)
+ },
+ async update(conversation: types.Conversation) {
+ logger.info('Updating conversation', conversation)
+ return await client.deta.conversations.update.mutate(conversation)
+ },
+ async delete(id: string) {
+ const res = await client.deta.conversations.delete.mutate({ id })
+ const conversationMessageList = await client.deta.messages.list.query({ conversationId: id })
+ const messageIds = conversationMessageList.map(item => item.id)
+ const limit = pLimit(10)
+ await Promise.all(messageIds.map(id => limit(() => client.deta.messages.delete.mutate({ id }))))
+ logger.info('Deleted conversation', id, 'and', messageIds.length, 'messages')
+ return res
+ },
+ async list() {
+ const conversations = await client.deta.conversations.list.query()
+ return conversations.map(conversation => parseDateFields(conversation, ['updatedAt', 'createdAt'] as const))
+ },
+ async sync(id: string) {
+ const conversation = await deta.conversation.get(id)
+ if (!conversation) {
+ throw new DetaError(`Conversation not found with id ${id}`, 'NOT_FOUND')
+ }
+ const messages = await client.deta.messages.list.query({ conversationId: id })
+ // Check if the conversation exists in the local db
+ const localConversation = await idb.table('conversations').get(id)
+ const newConversation = {
+ id: conversation.key as string,
+ title: conversation.title,
+ updatedAt: conversation.updatedAt,
+ createdAt: conversation.createdAt,
+ metadata: conversation.metadata,
+ messages: messages.map(message => parseDateFields(message, ['updatedAt', 'createdAt'] as const)),
+ }
+ if (!localConversation) {
+ // If not, create it
+ logger.info('Creating conversation', newConversation.id)
+ await idb.table('conversations').add(newConversation)
+ }
+ else {
+ logger.info('Updating conversation', newConversation.id)
+ // If it does, update it
+ try {
+ await idb.table('conversations').put(newConversation)
+ }
+ catch (e) {
+ logger.error(e)
+ }
+ }
+ },
+ },
+ message: {
+ async get(id: string) {
+ return await client.deta.messages.get.query({ id })
+ },
+ async create(message: types.Message) {
+ logger.info('Creating message', message.id)
+ return await client.deta.messages.create.mutate(message)
+ },
+ update: async (message: types.Message) => {
+ logger.info('Updating message', message.id)
+ return await client.deta.messages.update.mutate(message)
+ },
+ delete: async (id: string) => {
+ logger.info('Deleting message', id)
+ return await client.deta.messages.delete.mutate({ id })
+ },
+ },
+ }
+
+ return {
+ isDetaEnabled,
+ deta,
+ }
+}
+
+type DetaErrorCode = 'NOT_FOUND' | null
+
+export class DetaError extends Error {
+ code: DetaErrorCode = null
+ constructor(message: string, code: DetaErrorCode) {
+ super(message)
+ this.code = code
+ }
+}
diff --git a/Golem/composables/device.ts b/Golem/composables/device.ts
new file mode 100644
index 0000000..02378c5
--- /dev/null
+++ b/Golem/composables/device.ts
@@ -0,0 +1,22 @@
+import { breakpointsTailwind } from '@vueuse/core'
+export function useDevice() {
+ const breakpoint = useBreakpoints(breakpointsTailwind)
+
+ const isSmallDesktop = breakpoint.smallerOrEqual('lg')
+ const isMobile = breakpoint.smallerOrEqual('sm')
+
+ const isMobileSafari = (() => {
+ const headers = (
+ process.server
+ ? useRequestHeaders()['user-agent']
+ : navigator.userAgent
+ ) || ''
+ return headers.includes('iPhone') || headers.includes('iPad')
+ })()
+
+ return {
+ isMobile,
+ isSmallDesktop,
+ isMobileSafari,
+ }
+}
diff --git a/Golem/composables/dom-scroll-lock.ts b/Golem/composables/dom-scroll-lock.ts
new file mode 100644
index 0000000..e95da7a
--- /dev/null
+++ b/Golem/composables/dom-scroll-lock.ts
@@ -0,0 +1,29 @@
+import { useCssVar } from '@vueuse/core'
+import type { Ref } from 'vue'
+import { ref, watch } from 'vue'
+
+export const useDOMScrollLock = (modelValue: Ref) => {
+ const refRoot = ref()
+
+ const scrollbarWidth = useCssVar('--scrollbar-width', refRoot)
+ const windowScrollTop = useCssVar('--window-scroll-top', refRoot)
+
+ watch(modelValue, (val) => {
+ if (!scrollbarWidth.value) {
+ // Thanks: https://stackoverflow.com/a/56283274/10796681
+ scrollbarWidth.value = `${window.innerWidth - document.body.clientWidth}px`
+ }
+
+ const classes = document.documentElement.classList
+
+ if (val) {
+ windowScrollTop.value = `-${window.scrollY}px`
+ classes.add('scroll-lock')
+ }
+ else {
+ const scrollY = windowScrollTop.value
+ classes.remove('scroll-lock')
+ window.scrollTo(0, parseInt(scrollY || '0') * -1)
+ }
+ })
+}
diff --git a/Golem/composables/format-message.ts b/Golem/composables/format-message.ts
new file mode 100644
index 0000000..bce737e
--- /dev/null
+++ b/Golem/composables/format-message.ts
@@ -0,0 +1 @@
+export const useFormatMessage = () => {}
diff --git a/Golem/composables/idb.ts b/Golem/composables/idb.ts
new file mode 100644
index 0000000..95bedec
--- /dev/null
+++ b/Golem/composables/idb.ts
@@ -0,0 +1,79 @@
+import Dexie from 'dexie'
+
+export function useIDB(options?: { disableStorage: boolean }) {
+ const isStorageDisabled = useState(() => false)
+
+ if (options?.disableStorage) {
+ isStorageDisabled.value = true
+ }
+
+ // Check if IDB and/or localStorage is available
+ const isStorageAvailable = () => {
+ if (isStorageDisabled.value) {
+ return false
+ }
+ try {
+ // LocalStorage
+ const x = '__storage_test__'
+ localStorage.setItem(x, x)
+ localStorage.removeItem(x)
+ // IndexedDB
+ const db = new Dexie('test')
+ db.version(1).stores({
+ test: 'id',
+ })
+ return true
+ }
+ catch (e) {
+ return false
+ }
+ }
+
+ if (isStorageAvailable() && process.client) {
+ const db = new Dexie('gepeto')
+
+ db.version(3).stores({
+ knowledge: 'id, title, type, sections, metadata, updatedAt, createdAt',
+ conversations: 'id, title, messages, metadata, settings, createdAt, updatedAt',
+ personas: 'id, title, instructions',
+ })
+
+ return db
+ }
+ else {
+ // Return a mock database that uses useState instead of IDB
+ return {
+ table: (tableName: string) => {
+ const state = useState(`idb-${tableName}`, () => [])
+
+ return {
+ async add(item: any) {
+ state.value.push(item)
+ return item.id
+ },
+
+ async delete(id: string) {
+ state.value = state.value.filter((item: any) => item.id !== id)
+ },
+
+ async toArray() {
+ return state.value
+ },
+
+ async get(id: string) {
+ return state.value.find((item: any) => item.id === id)
+ },
+
+ async put(item: any) {
+ const index = state.value.findIndex((i: any) => i.id === item.id)
+ state.value[index] = item
+ },
+
+ async clear() {
+ state.value = []
+ },
+ }
+ },
+ }
+ }
+}
diff --git a/Golem/composables/knowledge.ts b/Golem/composables/knowledge.ts
new file mode 100644
index 0000000..9e326d5
--- /dev/null
+++ b/Golem/composables/knowledge.ts
@@ -0,0 +1,73 @@
+import { nanoid } from 'nanoid'
+import type { types } from '~~/utils/types'
+
+export const useKnowledge = () => {
+ const db = useIDB()
+ const knowledgeList = useState(() => null)
+
+ async function listKnowledge() {
+ // Get only the title, type, id, and updatedAt fields
+ return await db.table('knowledge').toArray() as types.KnowledgeItem[]
+ }
+
+ async function addKnowledgeItem(item: types.KnowledgeItem) {
+ const newItem = {
+ ...item,
+ updatedAt: new Date(),
+ }
+ const newKey = await db.table('knowledge').add(newItem)
+ if (!newKey) {
+ throw new Error('Failed to create knowledge item')
+ }
+ await updateKnowledgeList()
+ }
+
+ async function deleteKnowledgeItem(id: string) {
+ await db.table('knowledge').delete(id)
+ await updateKnowledgeList()
+ }
+
+ async function extractFromUrl(options: {
+ url: string
+ title: string
+ }) {
+ const response = await $fetch('/api/knowledge', {
+ method: 'POST',
+ body: {
+ type: 'url',
+ url: options.url,
+ },
+ })
+ const data = response as types.WebScraperResult
+ const knowledgeItem = {
+ id: nanoid(),
+ title: data.title,
+ type: 'url',
+ sections: [
+ {
+ content: data.markdown,
+ url: options.url,
+ },
+ ],
+ metadata: {
+ favicon: data.favicon,
+ },
+ updatedAt: new Date(),
+ createdAt: new Date(),
+ }
+ await addKnowledgeItem(knowledgeItem)
+ }
+
+ async function updateKnowledgeList() {
+ knowledgeList.value = await listKnowledge()
+ }
+
+ return {
+ listKnowledge,
+ addKnowledgeItem,
+ extractFromUrl,
+ updateKnowledgeList,
+ deleteKnowledgeItem,
+ knowledgeList,
+ }
+}
diff --git a/Golem/composables/language-model.ts b/Golem/composables/language-model.ts
new file mode 100644
index 0000000..c0a9636
--- /dev/null
+++ b/Golem/composables/language-model.ts
@@ -0,0 +1,188 @@
+import { Configuration, OpenAIApi } from 'openai'
+import type { NitroFetchOptions } from 'nitropack'
+import { nanoid } from 'nanoid'
+import { streamOpenAIResponse } from '~~/utils/fetch-sse'
+
+export function useLanguageModel() {
+ const { apiKey, modelUsed, maxTokens } = useSettings()
+
+ async function complete(prompt: string, params?: LMCompleteParams) {
+ const client = new OpenAIApi(new Configuration({
+ apiKey: apiKey.value || '',
+ }))
+
+ const additionalParams = {
+ temperature: params?.temperature || 0.8,
+ max_tokens: params?.maxTokens || 256,
+ stop: params?.stop,
+ }
+
+ const response = await client.createChatCompletion({
+ model: 'llama3-8b',
+ messages: [{
+ role: 'system',
+ content: params?.systemMessage || 'This is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.',
+ }, {
+ role: 'user',
+ content: prompt,
+ }],
+ ...additionalParams,
+ })
+
+ return response.data.choices[0].message?.content
+ }
+ function generateRandomId(length = 16) {
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+ let result = '';
+ const charactersLength = characters.length;
+
+ for (let i = 0; i < length; i++) {
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+ }
+
+ return result;
+ }
+
+ // Example usage
+ const randomId = generateRandomId(16); // Generates a random ID of length 16
+ console.log(randomId);
+
+ async function sendMessage(options: any) {
+ const { onProgress, signal, convId, ...requestBody } = options
+
+ const result = {
+ role: 'assistant',
+ id: nanoid(),
+ text: '',
+ delta: undefined,
+ detail: undefined,
+ parentMessageId: '',
+ }
+
+ console.log({convId});
+
+
+ const getCookie = (name) => {
+ let cookieArr = document.cookie.split(";"); // Split the cookies string into individual cookie strings
+ for (let i = 0; i < cookieArr.length; i++) {
+ let cookiePair = cookieArr[i].split("="); // Split each individual cookie string into name and value
+ let cookieName = cookiePair[0].trim(); // Trim any leading spaces
+ if (cookieName === name) {
+ return decodeURIComponent(cookiePair[1]); // Return the value of the cookie
+ }
+ }
+ return null; // Return null if the cookie was not found
+ };
+
+ while (true) {
+ const messageSend = requestBody.messages[requestBody.messages.length - 1].content
+ const resp = await fetch(
+ "http://localhost:3000/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/conversate",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "X-User-Id": getCookie("rc_uid"),
+ "X-Auth-Token": getCookie("rc_token"),
+ },
+ body: JSON.stringify({
+ message: messageSend,
+ conversationId: convId,
+ messageId : result.id,
+ modelUsed: modelUsed,
+ maxTokens
+ }),
+ }
+ );
+ // const resp = await fetch(
+ // "http://localhost:3000/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/conversate",
+ // {
+ // method: "POST",
+ // headers: {
+ // "Content-Type": "application/json",
+ // "X-User-Id": getCookie("rc_uid"),
+ // "X-Auth-Token": getCookie("rc_token"),
+ // },
+ // body: JSON.stringify({
+ // message: messageSend,
+ // conversationId: result.id,
+ // }),
+ // }
+ // );
+
+ const data = await resp.json()
+
+ console.log({data})
+
+ if (data.message.includes('%ended%')) {
+ const stripped = data.message.replace('%ended%', '')
+ await onProgress({...result, text : stripped})
+ break
+ }
+ else {
+ await onProgress({...result, text : data.message})
+ }
+ }
+
+ return result
+
+ // if (!requestBody.stream) {
+ // if (response.id) {
+ // result.id = response.id
+ // }
+ // const message = response.choices[0].message
+ // if (!message) {
+ // throw new Error('No message in response')
+ // }
+ // result.text = message.content
+ // if (message.role) {
+ // result.role = message.role
+ // }
+ // result.detail = response as any
+ // console.log(result)
+ // return result
+ // }
+ // else {
+ // for await (const data of streamOpenAIResponse(response)) {
+ // if (data.id) {
+ // result.id = data.id
+ // }
+ // if (data?.choices?.length) {
+ // const delta = data.choices[0].delta
+ // result.delta = delta.content
+ // if (delta?.content) {
+ // result.text += delta.content
+ // }
+ // result.detail = data
+ // if (delta.role) {
+ // result.role = delta.role
+ // }
+ // }
+ // if (onProgress) {
+ // await onProgress(result)
+ // }
+ // }
+ // return result
+ // }
+ }
+
+ const checkIfAPIKeyIsValid = async (newApiKey: string) => {
+ const res = await $fetch('https://api.openai.com/v1/engines', {
+ headers: {
+ Authorization: `Bearer ${newApiKey || apiKey.value}`,
+ },
+ })
+ if (res.status === 401) {
+ throw new Error('Invalid API key')
+ }
+ }
+
+ return { complete, sendMessage, checkIfAPIKeyIsValid }
+}
+
+interface LMCompleteParams {
+ temperature?: number
+ maxTokens?: number
+ stop?: string
+ systemMessage?: string
+}
diff --git a/Golem/composables/persona.ts b/Golem/composables/persona.ts
new file mode 100644
index 0000000..3dc84b6
--- /dev/null
+++ b/Golem/composables/persona.ts
@@ -0,0 +1,55 @@
+import { nanoid } from 'nanoid'
+import type { types } from '~~/utils/types'
+
+export function usePersona() {
+ const db = useIDB()
+
+ const personaList = useState('personaList', () => [])
+
+ async function initPersonaList() {
+ personaList.value = await db.table('personas').toArray()
+ if (!personaList.value.length) {
+ await createPersona({
+ id: nanoid(),
+ title: 'Golem',
+ instructions: 'You are Golem, a large language model based assistant. Answer as concisely as possible.',
+ })
+ }
+ }
+
+ async function createPersona(persona: types.Persona) {
+ const newPersona = {
+ ...persona,
+ id: nanoid(),
+ }
+ await db.table('personas').add(newPersona)
+ personaList.value.push(newPersona)
+ await updatePersonaList()
+ }
+
+ async function deletePersona(personaId: string) {
+ await db.table('personas').delete(personaId)
+ personaList.value = personaList.value.filter(p => p.id !== personaId)
+ await updatePersonaList()
+ }
+
+ async function updatePersona(personaId: string, update: Partial) {
+ const persona = personaList.value.find(p => p.id === personaId)
+ if (persona) {
+ await db.table('personas').put({ ...persona, ...update })
+ }
+ await updatePersonaList()
+ }
+
+ async function updatePersonaList() {
+ personaList.value = await db.table('personas').toArray()
+ }
+
+ return {
+ initPersonaList,
+ personaList,
+ createPersona,
+ deletePersona,
+ updatePersona,
+ }
+}
diff --git a/Golem/composables/preset.ts b/Golem/composables/preset.ts
new file mode 100644
index 0000000..2ce5aaa
--- /dev/null
+++ b/Golem/composables/preset.ts
@@ -0,0 +1,20 @@
+export const usePreset = () => {
+ const currentPreset = useState<{
+ title: string
+ content: string
+ } | null>(() => null)
+
+ const setPreset = (preset: { title: string; content: string }) => {
+ currentPreset.value = preset
+ }
+
+ const clearPreset = () => {
+ currentPreset.value = null
+ }
+
+ return {
+ currentPreset,
+ setPreset,
+ clearPreset,
+ }
+}
diff --git a/Golem/composables/search.ts b/Golem/composables/search.ts
new file mode 100644
index 0000000..278bfe8
--- /dev/null
+++ b/Golem/composables/search.ts
@@ -0,0 +1,22 @@
+import Fuse from 'fuse.js'
+import type { types } from '~~/utils/types'
+export function useSearch() {
+ const searchTerm = useState('search-term', () => '')
+
+ const filterConversationsBySearchTerm = (conversations: types.Conversation[]) => {
+ if (!searchTerm.value) {
+ return conversations
+ }
+ const fuse = new Fuse(conversations, {
+ keys: ['title', 'messages.text'],
+ threshold: 0.3,
+ })
+ const results = fuse.search(searchTerm.value)
+ return results.map(result => result.item)
+ }
+
+ return {
+ searchTerm,
+ filterConversationsBySearchTerm,
+ }
+}
diff --git a/Golem/composables/session.ts b/Golem/composables/session.ts
new file mode 100644
index 0000000..7427481
--- /dev/null
+++ b/Golem/composables/session.ts
@@ -0,0 +1,13 @@
+export function useSession() {
+ const route = useRoute()
+ const isLoggedIn = useState('is-logged-in', () => false)
+
+ const isOnSharePage = computed(() => {
+ return route.name === 'chat-share-conversationId'
+ })
+
+ return {
+ isOnSharePage,
+ isLoggedIn,
+ }
+}
diff --git a/Golem/composables/settings.ts b/Golem/composables/settings.ts
new file mode 100644
index 0000000..783de5e
--- /dev/null
+++ b/Golem/composables/settings.ts
@@ -0,0 +1,17 @@
+import { useStorage } from '@vueuse/core'
+
+export function useSettings() {
+ const maxTokens = useStorage('golem-model-max-tokens', '1024')
+ const modelUsed = useStorage('golem-model', 'llama3-8b')
+ const instanceApiKey = useState('golem-instance-api-key', () => null)
+ const apiKey = useStorage('golem-api-key', null)
+ const isPasswordRequired = useState('golem-is-password-required', () => false)
+
+ return {
+ maxTokens,
+ modelUsed,
+ apiKey,
+ instanceApiKey,
+ isPasswordRequired,
+ }
+}
diff --git a/Golem/composables/setup.ts b/Golem/composables/setup.ts
new file mode 100644
index 0000000..2339ff8
--- /dev/null
+++ b/Golem/composables/setup.ts
@@ -0,0 +1,75 @@
+import pLimit from 'p-limit'
+import type { types } from '~~/utils/types'
+export async function useSetup(options?: { disableStorage: boolean; embedded?: boolean }) {
+ if (process.client) {
+ const { isOnSharePage } = useSession()
+ const { setPalette } = useAppearance()
+ useColorMode()
+ setPalette()
+ useShiki().setupShikiLanguages()
+ if (options?.disableStorage) {
+ useIDB({ disableStorage: true })
+ }
+
+ const { isDetaEnabled, deta } = useDeta()
+
+ const {
+ currentConversation,
+ conversationList,
+ createConversation,
+ updateConversationList,
+ switchConversation,
+ } = useConversations()
+
+ const { initPersonaList, personaList } = usePersona()
+
+ watchEffect(async () => {
+ if (personaList.value.length === 0) {
+ await initPersonaList()
+ }
+ })
+
+ const { updateKnowledgeList } = useKnowledge()
+
+ await updateKnowledgeList()
+ if (options?.embedded) {
+ logger.info('Embedded mode enabled')
+ }
+
+ if (isDetaEnabled.value && !isOnSharePage.value) {
+ logger.info('Deta is enabled, syncing conversations')
+ deta.conversation.list().then((conversations) => {
+ const limit = pLimit(10)
+ logger.info(`Syncing ${conversations.length} conversations`)
+ Promise.all(
+ conversations.map(conversation => limit(() => deta.conversation.sync(conversation.key as string))),
+ ).then(() => {
+ logger.info('Finished syncing conversations')
+ updateConversationList()
+ })
+ })
+ }
+
+ watchEffect(async () => {
+ if (currentConversation.value === null) {
+ if (conversationList.value === null) {
+ await updateConversationList()
+ return
+ }
+
+ if (conversationList.value && conversationList.value.length === 0 && !options?.embedded) {
+ logger.info('No conversations present, creating a new one')
+ const newConversation = await createConversation('Untitled Conversation')
+ await switchConversation(newConversation.id)
+ }
+ else if (!options?.embedded) {
+ logger.info('Switching to most recent conversation')
+ const mostRecentConversation = conversationList.value.sort((a: types.Conversation, b: types.Conversation) => {
+ return b.updatedAt.getTime() - a.updatedAt.getTime()
+ })[0]
+ await switchConversation(mostRecentConversation.id)
+ }
+ }
+ })
+ }
+}
diff --git a/Golem/composables/shiki.ts b/Golem/composables/shiki.ts
new file mode 100644
index 0000000..2ff99ad
--- /dev/null
+++ b/Golem/composables/shiki.ts
@@ -0,0 +1,104 @@
+import type { Highlighter, Lang } from 'shiki-es'
+
+const langs = [
+ 'js',
+ 'css',
+ 'html',
+ 'json',
+ 'yaml',
+ 'md',
+ 'rust',
+ 'go',
+ 'python',
+ 'vue',
+ 'ruby',
+] as Lang[]
+
+const HTML_ENTITIES = {
+ '<': '<',
+ '>': '>',
+ '&': '&',
+ '\'': ''',
+ '"': '"',
+} as Record
+
+export function useShiki() {
+ const shiki = useState('shiki-highlighter', () => null)
+ const registeredLang = useState('shiki-registered-lang', () => new Map())
+ const shikiImport = useState | undefined>('shiki-import', () => undefined)
+
+ function initShiki() {
+ if (!shikiImport.value) {
+ shikiImport.value = import('shiki-es')
+ .then(async (r) => {
+ r.setCDN('/shiki/')
+ shiki.value = await r.getHighlighter({
+ themes: [
+ 'vitesse-dark',
+ 'vitesse-light',
+ ],
+ langs,
+ })
+ })
+ }
+
+ if (!shiki.value) {
+ return undefined
+ }
+ }
+
+ function useHighlighter(lang: Lang) {
+ initShiki()
+
+ if (!registeredLang.value.get(lang) && shiki.value) {
+ shiki.value.loadLanguage(lang)
+ .then(() => {
+ registeredLang.value.set(lang, true)
+ })
+ .catch(() => {
+ const fallbackLang = 'md'
+ shiki.value?.loadLanguage(fallbackLang).then(() => {
+ registeredLang.value.set(fallbackLang, true)
+ })
+ })
+ return undefined
+ }
+
+ return shiki.value
+ }
+
+ function useShikiTheme() {
+ return useColorMode().value === 'dark' ? 'vitesse-dark' : 'vitesse-light'
+ }
+
+ function escapeHtml(text: string) {
+ return text.replace(/[<>&'"]/g, ch => HTML_ENTITIES[ch])
+ }
+
+ async function highlightCode(code: string, lang: Lang) {
+ const shiki = useHighlighter(lang)
+ if (!shiki) {
+ return escapeHtml(code)
+ }
+ const theme = useShikiTheme()
+ return shiki.codeToHtml(code, {
+ lang,
+ theme,
+ })
+ }
+
+ function setupShikiLanguages() {
+ initShiki()
+ if (!shiki.value) {
+ return
+ }
+ for (const lang of langs) {
+ shiki.value.loadLanguage(lang)
+ }
+ }
+
+ return {
+ highlightCode,
+ setupShikiLanguages,
+ }
+}
diff --git a/Golem/composables/teleport.ts b/Golem/composables/teleport.ts
new file mode 100644
index 0000000..aa9d959
--- /dev/null
+++ b/Golem/composables/teleport.ts
@@ -0,0 +1,36 @@
+import type { Ref } from 'vue'
+import { computed, unref } from 'vue'
+
+export function useTeleport(target?: Ref) {
+ const teleportTarget = computed(() => {
+ const _target = unref(target)
+
+ if (typeof window === 'undefined') {
+ return undefined
+ }
+
+ const targetElement = _target === undefined
+ ? document.body
+ : typeof _target === 'string'
+ ? document.querySelector(_target)
+ : _target
+
+ if (targetElement == null) {
+ console.warn(`Unable to locate target ${_target}`)
+
+ return undefined
+ }
+
+ if (!useTeleport.cache.has(targetElement)) {
+ const el = document.createElement('div')
+ el.id = 'a-teleport-target'
+ targetElement.appendChild(el)
+ useTeleport.cache.set(targetElement, el)
+ }
+
+ return useTeleport.cache.get(targetElement)
+ })
+
+ return { teleportTarget }
+}
+useTeleport.cache = new WeakMap()
diff --git a/Golem/composables/trpc.ts b/Golem/composables/trpc.ts
new file mode 100644
index 0000000..7e30aca
--- /dev/null
+++ b/Golem/composables/trpc.ts
@@ -0,0 +1,14 @@
+import { createTRPCNuxtClient, httpBatchLink } from 'trpc-nuxt/client'
+import type { AppRouter } from '~~/server/trpc/routers'
+
+export function useClient() {
+ const client = createTRPCNuxtClient({
+ links: [
+ httpBatchLink({
+ url: '/api/trpc',
+ }),
+ ],
+ })
+
+ return client
+}
diff --git a/Golem/composables/ui.ts b/Golem/composables/ui.ts
new file mode 100644
index 0000000..0cf821d
--- /dev/null
+++ b/Golem/composables/ui.ts
@@ -0,0 +1,15 @@
+export function useUI() {
+ const { isSmallDesktop } = useDevice()
+
+ const scrollToBottom = inject('scrollToBottom') as () => void
+ const getScrollHeight = inject('getScrollHeight') as () => number
+ const chatScrolledHeight = inject('chatScrolledHeight') as Ref
+ const isSidebarCompact = computed(() => isSmallDesktop.value)
+
+ return {
+ scrollToBottom,
+ getScrollHeight,
+ chatScrolledHeight,
+ isSidebarCompact,
+ }
+}
diff --git a/Golem/docs/screenshot.png b/Golem/docs/screenshot.png
new file mode 100644
index 0000000..ea9e0a9
Binary files /dev/null and b/Golem/docs/screenshot.png differ
diff --git a/Golem/index.d.ts b/Golem/index.d.ts
new file mode 100644
index 0000000..c8e0bfb
--- /dev/null
+++ b/Golem/index.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Set to true if the current environment is development.
+ */
+const __DEV__: boolean
\ No newline at end of file
diff --git a/Golem/layouts/blank.vue b/Golem/layouts/blank.vue
new file mode 100644
index 0000000..b47975f
--- /dev/null
+++ b/Golem/layouts/blank.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/layouts/default.vue b/Golem/layouts/default.vue
new file mode 100644
index 0000000..652e119
--- /dev/null
+++ b/Golem/layouts/default.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/middleware/password.global.ts b/Golem/middleware/password.global.ts
new file mode 100644
index 0000000..dd078b2
--- /dev/null
+++ b/Golem/middleware/password.global.ts
@@ -0,0 +1,22 @@
+export default defineNuxtRouteMiddleware((from) => {
+ const { isPasswordRequired } = useSettings()
+ const { isLoggedIn } = useSession()
+ if (
+ from.path !== '/password'
+ && (
+ isPasswordRequired.value
+ && !isLoggedIn.value
+ )
+ ) {
+ return navigateTo('/password')
+ }
+ else if (
+ from.path === '/password'
+ && (
+ !isPasswordRequired.value
+ || isLoggedIn.value
+ )
+ ) {
+ return navigateTo('/')
+ }
+})
diff --git a/Golem/middleware/redirect.global.ts b/Golem/middleware/redirect.global.ts
new file mode 100644
index 0000000..449f622
--- /dev/null
+++ b/Golem/middleware/redirect.global.ts
@@ -0,0 +1,10 @@
+const redirectMapping = {
+ '/': '/chat',
+ '/settings': '/settings/appearance',
+} as Record
+
+export default defineNuxtRouteMiddleware((to) => {
+ if (to.path in redirectMapping) {
+ return navigateTo(redirectMapping[to.path])
+ }
+})
diff --git a/Golem/nuxt.config.ts b/Golem/nuxt.config.ts
new file mode 100644
index 0000000..b3cab3e
--- /dev/null
+++ b/Golem/nuxt.config.ts
@@ -0,0 +1,97 @@
+import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
+import { viteSingleFile } from "vite-plugin-singlefile"
+
+export default defineNuxtConfig({
+ pwa: {
+ icon: {
+ fileName: 'android-chrome-512x512.png',
+ },
+ manifest: {
+ background_color: '#f5f5f5',
+ name: 'Golem',
+ categories: ['productivity', 'education'],
+ description: 'Golem is an open-source, amazingly crafted conversational UI and alternative to ChatGPT.',
+ display: 'standalone',
+ lang: 'en',
+ id: `golem-${new Date().getTime()}`,
+ theme_color: '#3f3f3f',
+ },
+ meta: {
+ ogDescription: 'Golem is an open-source, amazingly crafted conversational UI and alternative to ChatGPT.',
+ ogTitle: 'Golem',
+ ogHost: 'https://golem.chat/',
+ ogImage: '/og-image.png',
+ ogUrl: 'https://golem.chat/',
+ title: 'Golem',
+ author: 'Henrique Cunha',
+ description: 'Golem is an open-source, amazingly crafted conversational UI and alternative to ChatGPT.',
+ lang: 'en',
+ ogSiteName: 'app.golem.chat',
+ twitterCard: 'summary_large_image',
+ twitterSite: 'golem.chat',
+ twitterCreator: '@henrycunh',
+
+ },
+ },
+
+ css: ['~/assets/css/main.css'],
+ experimental: {
+ reactivityTransform: true,
+ },
+ modules: [
+ '@unocss/nuxt',
+ '@vueuse/nuxt',
+ '@nuxtjs/color-mode',
+ '@kevinmarrec/nuxt-pwa',
+ ],
+ colorMode: {
+ classSuffix: '',
+ },
+ unocss: {
+ attributify: true,
+ uno: true,
+ icons: true,
+ webFonts: {
+ fonts: {
+ code: 'DM Mono:400',
+ text: 'Rubik:400,700',
+ title: 'Space Grotesk:400,700',
+ },
+ },
+ },
+ vite: {
+ define: {
+ 'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
+ '__DEV__': process.env.NODE_ENV === 'development',
+ },
+ plugins: [ viteSingleFile(), cssInjectedByJsPlugin()],
+ build: {
+ rollupOptions: {
+ output: {
+ manualChunks: undefined,
+ },
+ },
+ },
+ },
+ hooks: {
+ 'vite:extendConfig': function (config, { isServer }) {
+ if (isServer) {
+ const alias = config.resolve!.alias as Record
+ for (const dep of ['shiki-es', 'fuse.js']) {
+ alias[dep] = 'unenv/runtime/mock/proxy'
+ }
+ }
+ },
+ },
+ app: {
+ pageTransition: { name: 'page', mode: 'out-in' },
+ },
+ runtimeConfig: {
+ detaKey: process.env.DETA_PROJECT_KEY,
+ apiKey: process.env.OPENAI_API_KEY,
+ password: process.env.GOLEM_PASSWORD,
+ },
+ build: {
+ transpile: ['trpc-nuxt', 'dexie'],
+ },
+})
diff --git a/Golem/package.json b/Golem/package.json
new file mode 100644
index 0000000..881711d
--- /dev/null
+++ b/Golem/package.json
@@ -0,0 +1,76 @@
+{
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "build": "nuxt build",
+ "dev": "nuxt dev",
+ "generate": "nuxt generate",
+ "preview": "nuxt preview",
+ "postinstall": "nuxt prepare",
+ "prepare": "esno scripts/prepare.ts"
+ },
+ "devDependencies": {
+ "@antfu/eslint-config": "^0.36.0",
+ "@formkit/auto-animate": "1.0.0-beta.6",
+ "@iconify-json/eos-icons": "^1.1.6",
+ "@iconify-json/fluent-emoji": "^1.1.12",
+ "@iconify-json/tabler": "^1.1.68",
+ "@nuxtjs/color-mode": "^3.2.0",
+ "@types/crawler": "^1.2.2",
+ "@types/fs-extra": "^11.0.1",
+ "@types/marked": "^4.0.8",
+ "@types/mdast": "^3.0.10",
+ "@types/prismjs": "^1.26.0",
+ "@types/tinycolor2": "^1.4.3",
+ "@unocss/nuxt": "^0.50.4",
+ "@unocss/transformer-directives": "^0.50.6",
+ "eslint": "^8.36.0",
+ "esno": "^0.16.3",
+ "fs-extra": "^11.1.1",
+ "ignore-dependency-scripts": "^1.0.1",
+ "nuxt": "3.3.1",
+ "theme-vitesse": "^0.6.4",
+ "typescript": "^4.9.5"
+ },
+ "dependencies": {
+ "@bobthered/tailwindcss-palette-generator": "^3.1.1",
+ "@dqbd/tiktoken": "^1.0.3",
+ "@kevinmarrec/nuxt-pwa": "^0.17.0",
+ "@trpc/client": "^10.18.0",
+ "@trpc/server": "^10.18.0",
+ "@vueuse/nuxt": "^9.13.0",
+ "axios": "^1.3.4",
+ "beautiful-dom": "^1.0.9",
+ "chatgpt": "^5.0.10",
+ "chatgpt-web": "1.0.10",
+ "consola": "^2.15.3",
+ "crawler": "^1.4.0",
+ "cross-fetch": "^3.1.5",
+ "deta": "^1.1.0",
+ "dexie": "^3.2.3",
+ "eventsource-parser": "^1.0.0",
+ "floating-vue": "2.0.0-beta.20",
+ "fuse.js": "^6.6.2",
+ "gpt-token-utils": "^1.2.0",
+ "h3": "^1.12.0",
+ "hyperid": "^3.1.1",
+ "lang-detector": "^1.0.6",
+ "marked": "^4.2.12",
+ "mdast": "^3.0.0",
+ "nanoid": "^4.0.2",
+ "node-fetch": "^3.3.1",
+ "node-html-markdown": "^1.3.0",
+ "openai": "^3.2.1",
+ "p-limit": "^4.0.0",
+ "prismjs": "^1.29.0",
+ "remark": "^14.0.2",
+ "remark-gfm": "^3.0.1",
+ "shiki-es": "^0.2.0",
+ "tinycolor2": "^1.6.0",
+ "trpc-nuxt": "^0.8.0",
+ "undici": "^5.21.0",
+ "vite-plugin-css-injected-by-js": "^3.5.1",
+ "vite-plugin-singlefile": "^2.0.2",
+ "zod": "^3.21.4"
+ }
+}
diff --git a/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/index.vue b/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/index.vue
new file mode 100644
index 0000000..394821a
--- /dev/null
+++ b/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/share/[conversationId].vue b/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/share/[conversationId].vue
new file mode 100644
index 0000000..9aac9fb
--- /dev/null
+++ b/Golem/pages/api/apps/public/8d4acc61-d871-46e2-94b5-db161448483c/prompt-editor/chat/share/[conversationId].vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/pages/chat/index.vue b/Golem/pages/chat/index.vue
new file mode 100644
index 0000000..394821a
--- /dev/null
+++ b/Golem/pages/chat/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/Golem/pages/chat/share/[conversationId].vue b/Golem/pages/chat/share/[conversationId].vue
new file mode 100644
index 0000000..9aac9fb
--- /dev/null
+++ b/Golem/pages/chat/share/[conversationId].vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/pages/history.vue b/Golem/pages/history.vue
new file mode 100644
index 0000000..856667e
--- /dev/null
+++ b/Golem/pages/history.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ History
+
+
+ {{ conversationList?.length }} conversations
+
+
+
+
+
+
+
+ New chat
+
+
+ Clear all
+
+
+
+
diff --git a/Golem/pages/index.vue b/Golem/pages/index.vue
new file mode 100644
index 0000000..394821a
--- /dev/null
+++ b/Golem/pages/index.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/Golem/pages/knowledge.vue b/Golem/pages/knowledge.vue
new file mode 100644
index 0000000..f4e2f02
--- /dev/null
+++ b/Golem/pages/knowledge.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+ Knowledge
+
+
+ You can ask about anything you want to know. You just need to provide the knowledge.
+ Here you can add sources of knowledge from many different sources, from the web, through Notion, to your PDF files.
+
+
+
+
+
+ {{ knowledge.title }}
+
+
+
+
+ {{ knowledge.id }}
+
+
+
+
+
diff --git a/Golem/pages/password.vue b/Golem/pages/password.vue
new file mode 100644
index 0000000..2274eee
--- /dev/null
+++ b/Golem/pages/password.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+ This instance is protected by a password.
+
+
+
+ Login
+
+
+ Invalid password
+
+
+
diff --git a/Golem/pages/personas.vue b/Golem/pages/personas.vue
new file mode 100644
index 0000000..f35d14b
--- /dev/null
+++ b/Golem/pages/personas.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ {{ personaList }}
+
+
+
+ New persona
+
+
+
+
diff --git a/Golem/pages/settings.vue b/Golem/pages/settings.vue
new file mode 100644
index 0000000..8b8f0f8
--- /dev/null
+++ b/Golem/pages/settings.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+ {{ setting.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/pages/settings/api-key.vue b/Golem/pages/settings/api-key.vue
new file mode 100644
index 0000000..129cb02
--- /dev/null
+++ b/Golem/pages/settings/api-key.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+ To use the application you need to provide an OpenAI API key.
+
+
+ You can get your API key from the
+ OpenAI dashboard
+ .
+
+
+
+
+
+
+ Instance API Key
+
+
+
+ {{
+ isDetaEnabled
+ ? 'The API Key is setup and stored on Deta.'
+ : 'This instance has a shared API key already set up.'
+ }}
+
+
+ {{ maskedApiKey }}
+
+
+
+
diff --git a/Golem/pages/settings/appearance.vue b/Golem/pages/settings/appearance.vue
new file mode 100644
index 0000000..603568b
--- /dev/null
+++ b/Golem/pages/settings/appearance.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+ Color Mode
+
+
+
+
+
+ Theme color
+
+
+
+
+
+ Navigation bar position
+
+
+
+
+
diff --git a/Golem/pages/settings/deta.vue b/Golem/pages/settings/deta.vue
new file mode 100644
index 0000000..b287cf5
--- /dev/null
+++ b/Golem/pages/settings/deta.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ Instance API Key
+
+
+ You can set up a shared API key for this instance.
+
+
+
+
diff --git a/Golem/pages/settings/index.vue b/Golem/pages/settings/index.vue
new file mode 100644
index 0000000..44fc35b
--- /dev/null
+++ b/Golem/pages/settings/index.vue
@@ -0,0 +1,3 @@
+
diff --git a/Golem/pages/settings/model.vue b/Golem/pages/settings/model.vue
new file mode 100644
index 0000000..f8e7ec6
--- /dev/null
+++ b/Golem/pages/settings/model.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
diff --git a/Golem/pages/sk.vue b/Golem/pages/sk.vue
new file mode 100644
index 0000000..9f58a45
--- /dev/null
+++ b/Golem/pages/sk.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
diff --git a/Golem/plugins/auto-animate.client.ts b/Golem/plugins/auto-animate.client.ts
new file mode 100644
index 0000000..c3ea425
--- /dev/null
+++ b/Golem/plugins/auto-animate.client.ts
@@ -0,0 +1,5 @@
+import { autoAnimatePlugin } from '@formkit/auto-animate/vue'
+
+export default defineNuxtPlugin((nuxt) => {
+ nuxt.vueApp.use(autoAnimatePlugin)
+})
diff --git a/Golem/plugins/deta.ts b/Golem/plugins/deta.ts
new file mode 100644
index 0000000..234fd04
--- /dev/null
+++ b/Golem/plugins/deta.ts
@@ -0,0 +1,27 @@
+export default defineNuxtPlugin(async () => {
+ if (process.client) {
+ const { isDetaEnabled } = useDeta()
+ const client = useClient()
+ isDetaEnabled.value = false
+
+ if (isDetaEnabled.value) {
+ const { instanceApiKey, apiKey } = useSettings()
+ const detaApiKey = await client.deta.preferences.get.query('api-key') as string
+ if (detaApiKey) {
+ instanceApiKey.value = detaApiKey
+ apiKey.value = detaApiKey
+ }
+
+ const { setPalette } = useAppearance()
+ const color = await client.deta.preferences.get.query('color') as string
+ if (color) {
+ setPalette(color)
+ }
+ }
+ }
+ else {
+ const { isDetaEnabled } = useDeta()
+ const { detaKey } = useRuntimeConfig()
+ isDetaEnabled.value = Boolean(detaKey)
+ }
+})
\ No newline at end of file
diff --git a/Golem/plugins/environment-variable.ts b/Golem/plugins/environment-variable.ts
new file mode 100644
index 0000000..ecb19c9
--- /dev/null
+++ b/Golem/plugins/environment-variable.ts
@@ -0,0 +1,20 @@
+export default defineNuxtPlugin(() => {
+ if (process.server) {
+ const { apiKey: apiKeyFromEnv, password } = useRuntimeConfig()
+ const { isPasswordRequired, instanceApiKey } = useSettings()
+ const { isLoggedIn } = useSession()
+ if (apiKeyFromEnv) {
+ instanceApiKey.value = apiKeyFromEnv
+ }
+ if (password) {
+ isPasswordRequired.value = true
+ isLoggedIn.value = String(useCookie('golem-password').value) === String(password)
+ }
+ }
+ else {
+ const { apiKey, instanceApiKey } = useSettings()
+ if (instanceApiKey.value) {
+ apiKey.value = instanceApiKey.value
+ }
+ }
+})
diff --git a/Golem/plugins/floating-vue.ts b/Golem/plugins/floating-vue.ts
new file mode 100644
index 0000000..ec1ffa6
--- /dev/null
+++ b/Golem/plugins/floating-vue.ts
@@ -0,0 +1,7 @@
+import FloatingVue from 'floating-vue'
+import { defineNuxtPlugin } from '#imports'
+import 'floating-vue/dist/style.css'
+
+export default defineNuxtPlugin(({ vueApp }) => {
+ vueApp.use(FloatingVue)
+})
diff --git a/Golem/pnpm-lock.yaml b/Golem/pnpm-lock.yaml
new file mode 100644
index 0000000..94a39aa
--- /dev/null
+++ b/Golem/pnpm-lock.yaml
@@ -0,0 +1,8899 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: false
+ excludeLinksFromLockfile: false
+
+dependencies:
+ '@bobthered/tailwindcss-palette-generator':
+ specifier: ^3.1.1
+ version: 3.1.1
+ '@dqbd/tiktoken':
+ specifier: ^1.0.3
+ version: 1.0.3
+ '@kevinmarrec/nuxt-pwa':
+ specifier: ^0.17.0
+ version: 0.17.0
+ '@trpc/client':
+ specifier: ^10.18.0
+ version: 10.18.0(@trpc/server@10.18.0)
+ '@trpc/server':
+ specifier: ^10.18.0
+ version: 10.18.0
+ '@vueuse/nuxt':
+ specifier: ^9.13.0
+ version: 9.13.0(nuxt@3.3.1)
+ axios:
+ specifier: ^1.3.4
+ version: 1.3.4
+ beautiful-dom:
+ specifier: ^1.0.9
+ version: 1.0.9
+ chatgpt:
+ specifier: ^5.0.10
+ version: 5.0.10
+ chatgpt-web:
+ specifier: 1.0.10
+ version: 1.0.10
+ consola:
+ specifier: ^2.15.3
+ version: 2.15.3
+ crawler:
+ specifier: ^1.4.0
+ version: 1.4.0
+ cross-fetch:
+ specifier: ^3.1.5
+ version: 3.1.5
+ deta:
+ specifier: ^1.1.0
+ version: 1.1.0
+ dexie:
+ specifier: ^3.2.3
+ version: 3.2.3
+ eventsource-parser:
+ specifier: ^1.0.0
+ version: 1.0.0
+ floating-vue:
+ specifier: 2.0.0-beta.20
+ version: 2.0.0-beta.20
+ fuse.js:
+ specifier: ^6.6.2
+ version: 6.6.2
+ gpt-token-utils:
+ specifier: ^1.2.0
+ version: 1.2.0
+ h3:
+ specifier: ^1.12.0
+ version: 1.12.0
+ hyperid:
+ specifier: ^3.1.1
+ version: 3.1.1
+ lang-detector:
+ specifier: ^1.0.6
+ version: 1.0.6
+ marked:
+ specifier: ^4.2.12
+ version: 4.2.12
+ mdast:
+ specifier: ^3.0.0
+ version: 3.0.0
+ nanoid:
+ specifier: ^4.0.2
+ version: 4.0.2
+ node-fetch:
+ specifier: ^3.3.1
+ version: 3.3.1
+ node-html-markdown:
+ specifier: ^1.3.0
+ version: 1.3.0
+ openai:
+ specifier: ^3.2.1
+ version: 3.2.1
+ p-limit:
+ specifier: ^4.0.0
+ version: 4.0.0
+ prismjs:
+ specifier: ^1.29.0
+ version: 1.29.0
+ remark:
+ specifier: ^14.0.2
+ version: 14.0.2
+ remark-gfm:
+ specifier: ^3.0.1
+ version: 3.0.1
+ shiki-es:
+ specifier: ^0.2.0
+ version: 0.2.0
+ tinycolor2:
+ specifier: ^1.6.0
+ version: 1.6.0
+ trpc-nuxt:
+ specifier: ^0.8.0
+ version: 0.8.0(@trpc/client@10.18.0)(@trpc/server@10.18.0)
+ undici:
+ specifier: ^5.21.0
+ version: 5.21.0
+ vite-plugin-css-injected-by-js:
+ specifier: ^3.5.1
+ version: 3.5.1
+ vite-plugin-singlefile:
+ specifier: ^2.0.2
+ version: 2.0.2
+ zod:
+ specifier: ^3.21.4
+ version: 3.21.4
+
+devDependencies:
+ '@antfu/eslint-config':
+ specifier: ^0.36.0
+ version: 0.36.0(eslint@8.36.0)(typescript@4.9.5)
+ '@formkit/auto-animate':
+ specifier: 1.0.0-beta.6
+ version: 1.0.0-beta.6
+ '@iconify-json/eos-icons':
+ specifier: ^1.1.6
+ version: 1.1.6
+ '@iconify-json/fluent-emoji':
+ specifier: ^1.1.12
+ version: 1.1.12
+ '@iconify-json/tabler':
+ specifier: ^1.1.68
+ version: 1.1.68
+ '@nuxtjs/color-mode':
+ specifier: ^3.2.0
+ version: 3.2.0
+ '@types/crawler':
+ specifier: ^1.2.2
+ version: 1.2.2
+ '@types/fs-extra':
+ specifier: ^11.0.1
+ version: 11.0.1
+ '@types/marked':
+ specifier: ^4.0.8
+ version: 4.0.8
+ '@types/mdast':
+ specifier: ^3.0.10
+ version: 3.0.10
+ '@types/prismjs':
+ specifier: ^1.26.0
+ version: 1.26.0
+ '@types/tinycolor2':
+ specifier: ^1.4.3
+ version: 1.4.3
+ '@unocss/nuxt':
+ specifier: ^0.50.4
+ version: 0.50.4
+ '@unocss/transformer-directives':
+ specifier: ^0.50.6
+ version: 0.50.6
+ eslint:
+ specifier: ^8.36.0
+ version: 8.36.0
+ esno:
+ specifier: ^0.16.3
+ version: 0.16.3
+ fs-extra:
+ specifier: ^11.1.1
+ version: 11.1.1
+ ignore-dependency-scripts:
+ specifier: ^1.0.1
+ version: 1.0.1
+ nuxt:
+ specifier: 3.3.1
+ version: 3.3.1(eslint@8.36.0)(typescript@4.9.5)
+ theme-vitesse:
+ specifier: ^0.6.4
+ version: 0.6.4
+ typescript:
+ specifier: ^4.9.5
+ version: 4.9.5
+
+packages:
+
+ /@ampproject/remapping@2.2.0:
+ resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.1.1
+ '@jridgewell/trace-mapping': 0.3.17
+
+ /@antfu/eslint-config-basic@0.36.0(@typescript-eslint/eslint-plugin@5.54.1)(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-2b3ZB7pO00nxAERDXo82iYPjLQ4l/AOMm0CTKmGmqWbN3RB33EIQWzYheZRboSbAVzWpI1/3rg/Gu+7xYVMYHA==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ eslint: 8.36.0
+ eslint-plugin-antfu: 0.36.0(eslint@8.36.0)(typescript@4.9.5)
+ eslint-plugin-eslint-comments: 3.2.0(eslint@8.36.0)
+ eslint-plugin-html: 7.1.0
+ eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)
+ eslint-plugin-jsonc: 2.6.0(eslint@8.36.0)
+ eslint-plugin-markdown: 3.0.0(eslint@8.36.0)
+ eslint-plugin-n: 15.6.1(eslint@8.36.0)
+ eslint-plugin-no-only-tests: 3.1.0
+ eslint-plugin-promise: 6.1.1(eslint@8.36.0)
+ eslint-plugin-unicorn: 45.0.2(eslint@8.36.0)
+ eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.54.1)(eslint@8.36.0)
+ eslint-plugin-yml: 1.5.0(eslint@8.36.0)
+ jsonc-eslint-parser: 2.2.0
+ yaml-eslint-parser: 1.2.0
+ transitivePeerDependencies:
+ - '@typescript-eslint/eslint-plugin'
+ - '@typescript-eslint/parser'
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ - typescript
+ dev: true
+
+ /@antfu/eslint-config-ts@0.36.0(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-I/h2ZOPBIqgnALG2fQp6lOBsOXk51QwLDumyEayt7GRnitdP4o9D8i+YAPowrMJ8M3kU7puQUyhWuJmZLgo57A==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ typescript: '>=3.9'
+ dependencies:
+ '@antfu/eslint-config-basic': 0.36.0(@typescript-eslint/eslint-plugin@5.54.1)(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/parser': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ eslint: 8.36.0
+ eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - jest
+ - supports-color
+ dev: true
+
+ /@antfu/eslint-config-vue@0.36.0(@typescript-eslint/eslint-plugin@5.54.1)(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-YuTcNlVlrEWX1ESOiPgr+e2Walfd6xt3Toa0kAKJxq2aBS1RWqIi1l3zIVGCHaX72lOrSXNmQ7bryaZyGADGDg==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ '@antfu/eslint-config-basic': 0.36.0(@typescript-eslint/eslint-plugin@5.54.1)(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@antfu/eslint-config-ts': 0.36.0(eslint@8.36.0)(typescript@4.9.5)
+ eslint: 8.36.0
+ eslint-plugin-vue: 9.9.0(eslint@8.36.0)
+ local-pkg: 0.4.3
+ transitivePeerDependencies:
+ - '@typescript-eslint/eslint-plugin'
+ - '@typescript-eslint/parser'
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - jest
+ - supports-color
+ - typescript
+ dev: true
+
+ /@antfu/eslint-config@0.36.0(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-otZ9PfKRT3gnGMMX1gS8URTNPMPCZ69K5jHZvLkYojru0gLBZ3IO5fCvjEZpWqOyIUHtAgg6NWELf1DbEF+NDw==}
+ peerDependencies:
+ eslint: '>=7.4.0'
+ dependencies:
+ '@antfu/eslint-config-vue': 0.36.0(@typescript-eslint/eslint-plugin@5.54.1)(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/parser': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ eslint: 8.36.0
+ eslint-plugin-eslint-comments: 3.2.0(eslint@8.36.0)
+ eslint-plugin-html: 7.1.0
+ eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)
+ eslint-plugin-jsonc: 2.6.0(eslint@8.36.0)
+ eslint-plugin-n: 15.6.1(eslint@8.36.0)
+ eslint-plugin-promise: 6.1.1(eslint@8.36.0)
+ eslint-plugin-unicorn: 45.0.2(eslint@8.36.0)
+ eslint-plugin-vue: 9.9.0(eslint@8.36.0)
+ eslint-plugin-yml: 1.5.0(eslint@8.36.0)
+ jsonc-eslint-parser: 2.2.0
+ yaml-eslint-parser: 1.2.0
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - jest
+ - supports-color
+ - typescript
+ dev: true
+
+ /@antfu/install-pkg@0.1.1:
+ resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==}
+ dependencies:
+ execa: 5.1.1
+ find-up: 5.0.0
+ dev: true
+
+ /@antfu/utils@0.5.2:
+ resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==}
+ dev: true
+
+ /@antfu/utils@0.7.2:
+ resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==}
+ dev: true
+
+ /@azure/abort-controller@1.1.0:
+ resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/app-configuration@1.3.1:
+ resolution: {integrity: sha512-QNP0TsYoX3qtdKFJsQVrGWSPLW5/aF3MxgPg52RgGdnkGfRAPfYHIe2E5O83Q+iTd/pUxJAntaRx6UOblhLpgQ==}
+ engines: {node: '>=12.0.0'}
+ requiresBuild: true
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-asynciterator-polyfill': 1.0.2
+ '@azure/core-auth': 1.4.0
+ '@azure/core-http': 2.3.1
+ '@azure/core-paging': 1.5.0
+ '@azure/core-tracing': 1.0.0-preview.13
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ /@azure/core-asynciterator-polyfill@1.0.2:
+ resolution: {integrity: sha512-3rkP4LnnlWawl0LZptJOdXNrT/fHp2eQMadoasa6afspXdpGrtPZuAQc2PD0cpgyuoXtUWyC3tv7xfntjGS5Dw==}
+ engines: {node: '>=12.0.0'}
+ optional: true
+
+ /@azure/core-auth@1.4.0:
+ resolution: {integrity: sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-client@1.7.2:
+ resolution: {integrity: sha512-ye5554gnVnXdfZ64hptUtETgacXoRWxYv1JF5MctoAzTSH5dXhDPZd9gOjDPyWMcLIk58pnP5+p5vGX6PYn1ag==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-rest-pipeline': 1.10.2
+ '@azure/core-tracing': 1.0.1
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/core-http-compat@1.3.0:
+ resolution: {integrity: sha512-ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-client': 1.7.2
+ '@azure/core-rest-pipeline': 1.10.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/core-http@2.3.1:
+ resolution: {integrity: sha512-cur03BUwV0Tbv81bQBOLafFB02B6G++K6F2O3IMl8pSE2QlXm3cu11bfyBNlDUKi5U+xnB3GC63ae3athhkx6Q==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-tracing': 1.0.0-preview.13
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ '@types/node-fetch': 2.6.2
+ '@types/tunnel': 0.0.3
+ form-data: 4.0.0
+ node-fetch: 2.6.9
+ process: 0.11.10
+ tough-cookie: 4.1.2
+ tslib: 2.5.0
+ tunnel: 0.0.6
+ uuid: 8.3.2
+ xml2js: 0.4.23
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ /@azure/core-http@3.0.0:
+ resolution: {integrity: sha512-BxI2SlGFPPz6J1XyZNIVUf0QZLBKFX+ViFjKOkzqD18J1zOINIQ8JSBKKr+i+v8+MB6LacL6Nn/sP/TE13+s2Q==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-tracing': 1.0.0-preview.13
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ '@types/node-fetch': 2.6.2
+ '@types/tunnel': 0.0.3
+ form-data: 4.0.0
+ node-fetch: 2.6.9
+ process: 0.11.10
+ tslib: 2.5.0
+ tunnel: 0.0.6
+ uuid: 8.3.2
+ xml2js: 0.4.23
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ /@azure/core-lro@2.5.1:
+ resolution: {integrity: sha512-JHQy/bA3NOz2WuzOi5zEk6n/TJdAropupxUT521JIJvW7EXV2YN2SFYZrf/2RHeD28QAClGdynYadZsbmP+nyQ==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/logger': 1.0.4
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-paging@1.5.0:
+ resolution: {integrity: sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-rest-pipeline@1.10.2:
+ resolution: {integrity: sha512-e3WzAsRKLor5EgK2bQqR1OY5D7VBqzORHtlqtygZZQGCYOIBsynqrZBa8MFD1Ue9r8TPtofOLditalnlQHS45Q==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-tracing': 1.0.1
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ form-data: 4.0.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ tslib: 2.5.0
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/core-tracing@1.0.0-preview.13:
+ resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ '@opentelemetry/api': 1.4.0
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-tracing@1.0.1:
+ resolution: {integrity: sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-util@1.2.0:
+ resolution: {integrity: sha512-ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/core-xml@1.3.3:
+ resolution: {integrity: sha512-Go/xGz7nGqVINsD9O7gOfe8uiR1S+IFcw9WTUPJHSzoFT6F5ZWjXIIlSikLZm77TtmxzXGnQYjjiZIoIZ4x14A==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ fast-xml-parser: 4.1.3
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/cosmos@3.17.3:
+ resolution: {integrity: sha512-wBglkQ6Irjv5Vo2iw8fd6eYj60WYRSSg4/0DBkeOP6BwQ4RA91znsOHd6s3qG6UAbNgYuzC9Nnq07vlFFZkHEw==}
+ engines: {node: '>=14.0.0'}
+ requiresBuild: true
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-rest-pipeline': 1.10.2
+ '@azure/core-tracing': 1.0.1
+ debug: 4.3.4
+ fast-json-stable-stringify: 2.1.0
+ jsbi: 3.2.5
+ node-abort-controller: 3.1.1
+ priorityqueuejs: 1.0.0
+ semaphore: 1.1.0
+ tslib: 2.5.0
+ universal-user-agent: 6.0.0
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/data-tables@13.2.1:
+ resolution: {integrity: sha512-5pboUpSpxjTgZ499MxkLLR0i+lyUUwN6M5pTLZ2D4mUfKVz+vqiCijvxij0V0OfknMxVpQ+NrZcUdarw6a1Few==}
+ engines: {node: '>=14.0.0'}
+ requiresBuild: true
+ dependencies:
+ '@azure/core-auth': 1.4.0
+ '@azure/core-client': 1.7.2
+ '@azure/core-paging': 1.5.0
+ '@azure/core-rest-pipeline': 1.10.2
+ '@azure/core-tracing': 1.0.1
+ '@azure/core-xml': 1.3.3
+ '@azure/logger': 1.0.4
+ tslib: 2.5.0
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/identity@3.1.3:
+ resolution: {integrity: sha512-y0jFjSfHsVPwXSwi3KaSPtOZtJZqhiqAhWUXfFYBUd/+twUBovZRXspBwLrF5rJe0r5NyvmScpQjL+TYDTQVvw==}
+ engines: {node: '>=14.0.0'}
+ deprecated: Please upgrade to the latest version of this package to get necessary fixes
+ requiresBuild: true
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-client': 1.7.2
+ '@azure/core-rest-pipeline': 1.10.2
+ '@azure/core-tracing': 1.0.1
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ '@azure/msal-browser': 2.34.0
+ '@azure/msal-common': 9.1.1
+ '@azure/msal-node': 1.16.0
+ events: 3.3.0
+ jws: 4.0.0
+ open: 8.4.2
+ stoppable: 1.1.0
+ tslib: 2.5.0
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/keyvault-secrets@4.6.0:
+ resolution: {integrity: sha512-MDqsyODCGC2srqLKmO6MFw9WdgLrbPsfCNxgbekHXEd6XKM6KKyBlup5joj96EmdfZnXDFriecAIpj0Dtu81RQ==}
+ engines: {node: '>=12.0.0'}
+ requiresBuild: true
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-auth': 1.4.0
+ '@azure/core-client': 1.7.2
+ '@azure/core-http-compat': 1.3.0
+ '@azure/core-lro': 2.5.1
+ '@azure/core-paging': 1.5.0
+ '@azure/core-rest-pipeline': 1.10.2
+ '@azure/core-tracing': 1.0.1
+ '@azure/core-util': 1.2.0
+ '@azure/logger': 1.0.4
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /@azure/logger@1.0.4:
+ resolution: {integrity: sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ tslib: 2.5.0
+ optional: true
+
+ /@azure/msal-browser@2.34.0:
+ resolution: {integrity: sha512-stoXdlfAtyVIMOp1lS5PorgO5f66MGRi3Q1FBlXhVZFTsTfAWrNdSOx1m/PXWHskWE9aXO+NEzXVOoWmDNnvNA==}
+ engines: {node: '>=0.8.0'}
+ dependencies:
+ '@azure/msal-common': 11.0.0
+ optional: true
+
+ /@azure/msal-common@11.0.0:
+ resolution: {integrity: sha512-SZH8ObQ3Hq5v3ogVGBYJp1nNW7p+MtM4PH4wfNadBP9wf7K0beQHF9iOtRcjPOkwZf+ZD49oXqw91LndIkdk8g==}
+ engines: {node: '>=0.8.0'}
+ optional: true
+
+ /@azure/msal-common@9.1.1:
+ resolution: {integrity: sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==}
+ engines: {node: '>=0.8.0'}
+ optional: true
+
+ /@azure/msal-node@1.16.0:
+ resolution: {integrity: sha512-eGXPp65i++mAIvziafbCH970TCeECB6iaQP7aRzZEjtU238cW4zKm40U8YxkiCn9rR1G2VeMHENB5h6WRk7ZCQ==}
+ engines: {node: 10 || 12 || 14 || 16 || 18}
+ dependencies:
+ '@azure/msal-common': 11.0.0
+ jsonwebtoken: 9.0.0
+ uuid: 8.3.2
+ optional: true
+
+ /@azure/storage-blob@12.13.0:
+ resolution: {integrity: sha512-t3Q2lvBMJucgTjQcP5+hvEJMAsJSk0qmAnjDLie2td017IiduZbbC9BOcFfmwzR6y6cJdZOuewLCNFmEx9IrXA==}
+ engines: {node: '>=14.0.0'}
+ requiresBuild: true
+ dependencies:
+ '@azure/abort-controller': 1.1.0
+ '@azure/core-http': 3.0.0
+ '@azure/core-lro': 2.5.1
+ '@azure/core-paging': 1.5.0
+ '@azure/core-tracing': 1.0.0-preview.13
+ '@azure/logger': 1.0.4
+ events: 3.3.0
+ tslib: 2.5.0
+ transitivePeerDependencies:
+ - encoding
+ optional: true
+
+ /@babel/code-frame@7.18.6:
+ resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.18.6
+
+ /@babel/compat-data@7.21.0:
+ resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/core@7.21.0:
+ resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.0
+ '@babel/code-frame': 7.18.6
+ '@babel/generator': 7.21.1
+ '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.0)
+ '@babel/helper-module-transforms': 7.21.2
+ '@babel/helpers': 7.21.0
+ '@babel/parser': 7.21.2
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
+ 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
+
+ /@babel/generator@7.21.1:
+ resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+ '@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.17
+ jsesc: 2.5.2
+
+ /@babel/helper-annotate-as-pure@7.18.6:
+ resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0):
+ resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.21.0
+ '@babel/core': 7.21.0
+ '@babel/helper-validator-option': 7.21.0
+ browserslist: 4.21.5
+ lru-cache: 5.1.1
+ semver: 6.3.0
+
+ /@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0):
+ resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.21.0
+ '@babel/helper-member-expression-to-functions': 7.21.0
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/helper-replace-supers': 7.20.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/helper-split-export-declaration': 7.18.6
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/helper-environment-visitor@7.18.9:
+ resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-function-name@7.21.0:
+ resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/types': 7.21.2
+
+ /@babel/helper-hoist-variables@7.18.6:
+ resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-member-expression-to-functions@7.21.0:
+ resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-module-imports@7.18.6:
+ resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-module-transforms@7.21.2:
+ resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/helper-simple-access': 7.20.2
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/helper-validator-identifier': 7.19.1
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/helper-optimise-call-expression@7.18.6:
+ resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-plugin-utils@7.20.2:
+ resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-replace-supers@7.20.7:
+ resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-member-expression-to-functions': 7.21.0
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/helper-simple-access@7.20.2:
+ resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-skip-transparent-expression-wrappers@7.20.0:
+ resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-split-export-declaration@7.18.6:
+ resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/helper-string-parser@7.19.4:
+ resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier@7.19.1:
+ resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-option@7.21.0:
+ resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helpers@7.21.0:
+ resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/highlight@7.18.6:
+ resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.19.1
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
+ /@babel/parser@7.21.2:
+ resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.21.2
+
+ /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.0):
+ resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/helper-plugin-utils': 7.20.2
+
+ /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.0):
+ resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/helper-plugin-utils': 7.20.2
+
+ /@babel/plugin-transform-typescript@7.21.0(@babel/core@7.21.0):
+ resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/helper-create-class-features-plugin': 7.21.0(@babel/core@7.21.0)
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/standalone@7.21.2:
+ resolution: {integrity: sha512-ySP/TJcyqMJVg1M/lmnPVi6L+F+IJpQ4+0lqtf723LERbk1N8/0JgLgm346cRAzfHaoXkLq/M/mJBd2uo25RBA==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/template@7.20.7:
+ resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/parser': 7.21.2
+ '@babel/types': 7.21.2
+
+ /@babel/traverse@7.21.2:
+ resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/generator': 7.21.1
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.21.0
+ '@babel/helper-hoist-variables': 7.18.6
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/parser': 7.21.2
+ '@babel/types': 7.21.2
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /@babel/types@7.21.2:
+ resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.19.4
+ '@babel/helper-validator-identifier': 7.19.1
+ to-fast-properties: 2.0.0
+
+ /@bobthered/tailwindcss-palette-generator@3.1.1:
+ resolution: {integrity: sha512-aaIYO+I+Pfsb93RJSK4HLbJMj32bQf+XH5552IketbUDNQzLjzTDv5ZfJjrGsM1yWLM5hk7IeMpbUI3JH4LZPQ==}
+ dependencies:
+ '@types/node': 18.15.0
+ dev: false
+
+ /@cloudflare/kv-asset-handler@0.3.0:
+ resolution: {integrity: sha512-9CB/MKf/wdvbfkUdfrj+OkEwZ5b7rws0eogJ4293h+7b6KX5toPwym+VQKmILafNB9YiehqY0DlNrDcDhdWHSQ==}
+ dependencies:
+ mime: 3.0.0
+
+ /@dqbd/tiktoken@0.4.0:
+ resolution: {integrity: sha512-iaHgmwKAOqowBFZKxelyszoeGLoNw62eOULcmyme1aA1Ymr3JgYl0V7jwpuUm7fksalycZajx3loFn9TRUaviw==}
+ dev: false
+
+ /@dqbd/tiktoken@1.0.3:
+ resolution: {integrity: sha512-xOg+NjwQE/o5Gf812W2drXGDaKiE+qKCmwxV95tQ2Y/e7aypDOntTH/UUpno82UAU2Hbyh6poDt1KXR/EFMrmQ==}
+ dev: false
+
+ /@esbuild-kit/cjs-loader@2.4.2:
+ resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==}
+ dependencies:
+ '@esbuild-kit/core-utils': 3.1.0
+ get-tsconfig: 4.4.0
+ dev: true
+
+ /@esbuild-kit/core-utils@3.1.0:
+ resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==}
+ dependencies:
+ esbuild: 0.17.11
+ source-map-support: 0.5.21
+ dev: true
+
+ /@esbuild-kit/esm-loader@2.5.5:
+ resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==}
+ dependencies:
+ '@esbuild-kit/core-utils': 3.1.0
+ get-tsconfig: 4.4.0
+ dev: true
+
+ /@esbuild/android-arm64@0.16.17:
+ resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-arm64@0.17.11:
+ resolution: {integrity: sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-arm@0.16.17:
+ resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-arm@0.17.11:
+ resolution: {integrity: sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-x64@0.16.17:
+ resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/android-x64@0.17.11:
+ resolution: {integrity: sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.16.17:
+ resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.17.11:
+ resolution: {integrity: sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.16.17:
+ resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.17.11:
+ resolution: {integrity: sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: 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
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.17.11:
+ resolution: {integrity: sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.16.17:
+ resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.17.11:
+ resolution: {integrity: sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.16.17:
+ resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.17.11:
+ resolution: {integrity: sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-arm@0.16.17:
+ resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-arm@0.17.11:
+ resolution: {integrity: sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.16.17:
+ resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.17.11:
+ resolution: {integrity: sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.16.17:
+ resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.17.11:
+ resolution: {integrity: sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.16.17:
+ resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.17.11:
+ resolution: {integrity: sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.16.17:
+ resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.17.11:
+ resolution: {integrity: sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.16.17:
+ resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.17.11:
+ resolution: {integrity: sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.16.17:
+ resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.17.11:
+ resolution: {integrity: sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-x64@0.16.17:
+ resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/linux-x64@0.17.11:
+ resolution: {integrity: sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.16.17:
+ resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.17.11:
+ resolution: {integrity: sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.16.17:
+ resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.17.11:
+ resolution: {integrity: sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.16.17:
+ resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.17.11:
+ resolution: {integrity: sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.16.17:
+ resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.17.11:
+ resolution: {integrity: sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.16.17:
+ resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.17.11:
+ resolution: {integrity: sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-x64@0.16.17:
+ resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@esbuild/win32-x64@0.17.11:
+ resolution: {integrity: sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ optional: true
+
+ /@eslint-community/eslint-utils@4.2.0(eslint@8.36.0):
+ resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
+ 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.36.0
+ eslint-visitor-keys: 3.3.0
+
+ /@eslint-community/regexpp@4.4.0:
+ resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ /@eslint/eslintrc@2.0.1:
+ resolution: {integrity: sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.5.0
+ globals: 13.20.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /@eslint/js@8.36.0:
+ resolution: {integrity: sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ /@floating-ui/core@0.3.1:
+ resolution: {integrity: sha512-ensKY7Ub59u16qsVIFEo2hwTCqZ/r9oZZFh51ivcLGHfUwTn8l1Xzng8RJUe91H/UP8PeqeBronAGx0qmzwk2g==}
+ dev: false
+
+ /@floating-ui/dom@0.1.10:
+ resolution: {integrity: sha512-4kAVoogvQm2N0XE0G6APQJuCNuErjOfPW8Ux7DFxh8+AfugWflwVJ5LDlHOwrwut7z/30NUvdtHzQ3zSip4EzQ==}
+ dependencies:
+ '@floating-ui/core': 0.3.1
+ dev: false
+
+ /@formkit/auto-animate@1.0.0-beta.6:
+ resolution: {integrity: sha512-PVDhLAlr+B4Xb7e+1wozBUWmXa6BFU8xUPR/W/E+TsQhPS1qkAdAsJ25keEnFrcePSnXHrOsh3tiFbEToOzV9w==}
+ dev: true
+
+ /@humanwhocodes/config-array@0.11.8:
+ resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ /@humanwhocodes/module-importer@1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ /@humanwhocodes/object-schema@1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+
+ /@iconify-json/eos-icons@1.1.6:
+ resolution: {integrity: sha512-A1kUcVbgrdlBBacFcs+srwnfSH9htQvlgbi0u6Jf38lp4PZAK3InXVbVySrJKx//FJtSMdnpZh0b89yjcAIIBg==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
+ /@iconify-json/fluent-emoji@1.1.12:
+ resolution: {integrity: sha512-Mga6M530cJPQR+85HkPHAR1LQjYFVEQTsWF5SBKM4Vz9ycaW3kTwT9qQjFQQ/8Ah2pJk6Hfq8xhimuhG9r6Eyw==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
+ /@iconify-json/tabler@1.1.68:
+ resolution: {integrity: sha512-HejD5fXGC+HjaAxQQrwihg3ehMm5iNVSS9AOabSviVJUEojwF19ceQQJRcNBWaT2A6dLE+2ejcKb5YeJ9w8RFg==}
+ dependencies:
+ '@iconify/types': 2.0.0
+ dev: true
+
+ /@iconify/types@2.0.0:
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+ dev: true
+
+ /@iconify/utils@2.1.5:
+ resolution: {integrity: sha512-6MvDI+I6QMvXn5rK9KQGdpEE4mmLTcuQdLZEiX5N+uZB+vc4Yw9K1OtnOgkl8mp4d9X0UrILREyZgF1NUwUt+Q==}
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.2
+ '@iconify/types': 2.0.0
+ debug: 4.3.4
+ kolorist: 1.7.0
+ local-pkg: 0.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@ioredis/commands@1.2.0:
+ resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
+
+ /@jridgewell/gen-mapping@0.1.1:
+ resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /@jridgewell/gen-mapping@0.3.2:
+ resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
+ 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/resolve-uri@3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/set-array@1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+
+ /@jridgewell/source-map@0.3.2:
+ resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.17
+
+ /@jridgewell/sourcemap-codec@1.4.14:
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
+
+ /@jridgewell/trace-mapping@0.3.17:
+ resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /@kevinmarrec/nuxt-pwa@0.17.0:
+ resolution: {integrity: sha512-TI/0Fe30g6/VL2Y2jDLF/q5sov8UBE5K4/+CRPUnJbQPCXhCzTBM8EjllDUwslZ3bPtCk2TqwDFZOHaKtY/eoA==}
+ dependencies:
+ hasha: 5.2.2
+ sharp: 0.31.3
+ std-env: 3.3.2
+ dev: false
+
+ /@mapbox/node-pre-gyp@1.0.10:
+ resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==}
+ hasBin: true
+ dependencies:
+ detect-libc: 2.0.1
+ https-proxy-agent: 5.0.1
+ make-dir: 3.1.0
+ node-fetch: 2.6.9
+ nopt: 5.0.0
+ npmlog: 5.0.1
+ rimraf: 3.0.2
+ semver: 7.3.8
+ tar: 6.1.13
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ /@netlify/functions@1.4.0:
+ resolution: {integrity: sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==}
+ engines: {node: '>=8.3.0'}
+ dependencies:
+ is-promise: 4.0.0
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+
+ /@nuxt/devalue@2.0.0:
+ resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==}
+
+ /@nuxt/kit@3.2.3:
+ resolution: {integrity: sha512-wcsVlQLwGkh1cRhAFWHc3uYHdIxFTRNdRUzNyfqoX9DL0Fuga3K75q/PBY0xg1viA9R6F5BMPhc7KDLSWbXtWg==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ '@nuxt/schema': 3.2.3
+ c12: 1.2.0
+ consola: 2.15.3
+ defu: 6.1.2
+ globby: 13.1.3
+ hash-sum: 2.0.0
+ ignore: 5.2.4
+ jiti: 1.17.2
+ knitwork: 1.0.0
+ lodash.template: 4.5.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ semver: 7.3.8
+ unctx: 2.1.2
+ unimport: 2.2.4
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/kit@3.3.1:
+ resolution: {integrity: sha512-zb7/2FUIB1g7nl6K6qozUzfG5uu4yrs9TQjZvpASnPBZ/x1EuJX5k3AA71hMMIVBEX9Adxvh9AuhDEHE5W26Zg==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ '@nuxt/schema': 3.3.1
+ c12: 1.2.0
+ consola: 2.15.3
+ defu: 6.1.2
+ globby: 13.1.3
+ hash-sum: 2.0.0
+ ignore: 5.2.4
+ jiti: 1.17.2
+ knitwork: 1.0.0
+ lodash.template: 4.5.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ semver: 7.3.8
+ unctx: 2.1.2
+ unimport: 3.0.2
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/kit@3.3.1(rollup@3.19.1):
+ resolution: {integrity: sha512-zb7/2FUIB1g7nl6K6qozUzfG5uu4yrs9TQjZvpASnPBZ/x1EuJX5k3AA71hMMIVBEX9Adxvh9AuhDEHE5W26Zg==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ '@nuxt/schema': 3.3.1(rollup@3.19.1)
+ c12: 1.2.0
+ consola: 2.15.3
+ defu: 6.1.2
+ globby: 13.1.3
+ hash-sum: 2.0.0
+ ignore: 5.2.4
+ jiti: 1.17.2
+ knitwork: 1.0.0
+ lodash.template: 4.5.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ semver: 7.3.8
+ unctx: 2.1.2
+ unimport: 3.0.2(rollup@3.19.1)
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/schema@3.2.3:
+ resolution: {integrity: sha512-AXzRnBivCwn5RpNFWjUkvOPGPSHl5BM+6GfOpSNglPXi0tiQJ+rawSl7no7BkxGDmQ44Bx9AXwvHTrgjpcuo4g==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ c12: 1.2.0
+ create-require: 1.1.1
+ defu: 6.1.2
+ hookable: 5.5.1
+ jiti: 1.17.2
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ postcss-import-resolver: 2.0.0
+ scule: 1.0.0
+ std-env: 3.3.2
+ ufo: 1.1.1
+ unimport: 2.2.4
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/schema@3.3.1:
+ resolution: {integrity: sha512-E8HWzU43rXzqwDTmWduTLHY4xIwRSAUt1LbpuE9IjZ4uJZq5Mbaj4nfhANNsTQGw2c+O+rL81yzAP3i61LEJDw==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ c12: 1.2.0
+ create-require: 1.1.1
+ defu: 6.1.2
+ hookable: 5.5.1
+ jiti: 1.17.2
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ postcss-import-resolver: 2.0.0
+ scule: 1.0.0
+ std-env: 3.3.2
+ ufo: 1.1.1
+ unimport: 3.0.2
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/schema@3.3.1(rollup@3.19.1):
+ resolution: {integrity: sha512-E8HWzU43rXzqwDTmWduTLHY4xIwRSAUt1LbpuE9IjZ4uJZq5Mbaj4nfhANNsTQGw2c+O+rL81yzAP3i61LEJDw==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ dependencies:
+ c12: 1.2.0
+ create-require: 1.1.1
+ defu: 6.1.2
+ hookable: 5.5.1
+ jiti: 1.17.2
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ postcss-import-resolver: 2.0.0
+ scule: 1.0.0
+ std-env: 3.3.2
+ ufo: 1.1.1
+ unimport: 3.0.2(rollup@3.19.1)
+ untyped: 1.2.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/telemetry@2.1.10:
+ resolution: {integrity: sha512-FOsfC0i6Ix66M/ZlWV/095JIdfnRR9CRbFvBSpojt2CpbwU1pGMbRiicwYg2f1Wf27LXQRNpNn1OczruBfEWag==}
+ hasBin: true
+ dependencies:
+ '@nuxt/kit': 3.3.1
+ chalk: 5.2.0
+ ci-info: 3.8.0
+ consola: 2.15.3
+ create-require: 1.1.1
+ defu: 6.1.2
+ destr: 1.2.2
+ dotenv: 16.0.3
+ fs-extra: 10.1.0
+ git-url-parse: 13.1.0
+ inquirer: 9.1.4
+ is-docker: 3.0.0
+ jiti: 1.17.2
+ mri: 1.2.0
+ nanoid: 4.0.2
+ node-fetch: 3.3.1
+ ofetch: 1.0.1
+ parse-git-config: 3.0.0
+ rc9: 2.0.1
+ std-env: 3.3.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ /@nuxt/ui-templates@1.1.1:
+ resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==}
+
+ /@nuxt/vite-builder@3.3.1(eslint@8.36.0)(typescript@4.9.5)(vue@3.2.47):
+ resolution: {integrity: sha512-YDPDqMWRcZfI6ou2nfxj+IEaxfZXRoyoeMV917h7LbhmnqMBn1prJzFF+Li8br97emL958XANZ7GVZ9OVXgayA==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ peerDependencies:
+ vue: ^3.2.47
+ dependencies:
+ '@nuxt/kit': 3.3.1(rollup@3.19.1)
+ '@rollup/plugin-replace': 5.0.2(rollup@3.19.1)
+ '@vitejs/plugin-vue': 4.0.0(vite@4.1.4)(vue@3.2.47)
+ '@vitejs/plugin-vue-jsx': 3.0.0(vite@4.1.4)(vue@3.2.47)
+ autoprefixer: 10.4.14(postcss@8.4.21)
+ chokidar: 3.5.3
+ clear: 0.1.0
+ cssnano: 5.1.15(postcss@8.4.21)
+ defu: 6.1.2
+ esbuild: 0.17.11
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ externality: 1.0.0
+ fs-extra: 11.1.1
+ get-port-please: 3.0.1
+ h3: 1.12.0
+ knitwork: 1.0.0
+ magic-string: 0.30.0
+ mlly: 1.2.0
+ ohash: 1.0.0
+ pathe: 1.1.0
+ perfect-debounce: 0.1.3
+ pkg-types: 1.0.2
+ postcss: 8.4.21
+ postcss-import: 15.1.0(postcss@8.4.21)
+ postcss-url: 10.1.3(postcss@8.4.21)
+ rollup: 3.19.1
+ rollup-plugin-visualizer: 5.9.0(rollup@3.19.1)
+ std-env: 3.3.2
+ strip-literal: 1.0.1
+ ufo: 1.1.1
+ unplugin: 1.3.0
+ vite: 4.1.4
+ vite-node: 0.29.2
+ vite-plugin-checker: 0.5.6(eslint@8.36.0)(typescript@4.9.5)(vite@4.1.4)
+ vue: 3.2.47
+ vue-bundle-renderer: 1.0.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - eslint
+ - less
+ - meow
+ - optionator
+ - sass
+ - stylelint
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - typescript
+ - uWebSockets.js
+ - vls
+ - vti
+ - vue-tsc
+
+ /@nuxtjs/color-mode@3.2.0:
+ resolution: {integrity: sha512-isDR01yfadopiHQ/VEVUpyNSPrk5PCjUHS4t1qYRZwuRGefU4s9Iaxf6H9nmr1QFzoMgTm+3T0r/54jLwtpZbA==}
+ dependencies:
+ '@nuxt/kit': 3.3.1
+ lodash.template: 4.5.0
+ pathe: 1.1.0
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ dev: true
+
+ /@opentelemetry/api@1.4.0:
+ resolution: {integrity: sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==}
+ engines: {node: '>=8.0.0'}
+ optional: true
+
+ /@planetscale/database@1.6.0:
+ resolution: {integrity: sha512-eb02567S706Xme/nVwx+EN/wyoHhHBXl1a7+67R/Xm91myEpLn0vZNl58TvLZztBxje4gga16lc8dLt0elNrJA==}
+ engines: {node: '>=16'}
+ requiresBuild: true
+ optional: true
+
+ /@polka/url@1.0.0-next.21:
+ resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
+ dev: true
+
+ /@rollup/plugin-alias@4.0.3(rollup@3.19.1):
+ resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ rollup: 3.19.1
+ slash: 4.0.0
+
+ /@rollup/plugin-commonjs@24.0.1(rollup@3.19.1):
+ resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.68.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ commondir: 1.0.1
+ estree-walker: 2.0.2
+ glob: 8.1.0
+ is-reference: 1.2.1
+ magic-string: 0.27.0
+ rollup: 3.19.1
+
+ /@rollup/plugin-inject@5.0.3(rollup@3.19.1):
+ resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ estree-walker: 2.0.2
+ magic-string: 0.27.0
+ rollup: 3.19.1
+
+ /@rollup/plugin-json@6.0.0(rollup@3.19.1):
+ resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ rollup: 3.19.1
+
+ /@rollup/plugin-node-resolve@15.0.1(rollup@3.19.1):
+ resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.0
+ is-builtin-module: 3.2.1
+ is-module: 1.0.0
+ resolve: 1.22.1
+ rollup: 3.19.1
+
+ /@rollup/plugin-replace@5.0.2(rollup@3.19.1):
+ resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ magic-string: 0.27.0
+ rollup: 3.19.1
+
+ /@rollup/plugin-terser@0.4.0(rollup@3.19.1):
+ resolution: {integrity: sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.x || ^3.x
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ rollup: 3.19.1
+ serialize-javascript: 6.0.1
+ smob: 0.0.6
+ terser: 5.16.6
+
+ /@rollup/plugin-wasm@6.1.2(rollup@3.19.1):
+ resolution: {integrity: sha512-YdrQ7zfnZ54Y+6raCev3tR1PrhQGxYKSTajGylhyP0oBacouuNo6KcNCk+pYKw9M98jxRWLFFca/udi76IDXzg==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ rollup: 3.19.1
+
+ /@rollup/pluginutils@4.2.1:
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+
+ /@rollup/pluginutils@5.0.2:
+ resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.0
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+
+ /@rollup/pluginutils@5.0.2(rollup@3.19.1):
+ resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.0
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ rollup: 3.19.1
+
+ /@tootallnate/once@2.0.0:
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+ optional: true
+
+ /@trpc/client@10.18.0(@trpc/server@10.18.0):
+ resolution: {integrity: sha512-2d+6r2C/xygTjDWX9jT66defgHzbQP0Z8vrvyT3XtPjqU6JNlRNuS2ZtB8xDPdOQUUVnndzZ43BMr+Zu49K0OQ==}
+ peerDependencies:
+ '@trpc/server': 10.18.0
+ dependencies:
+ '@trpc/server': 10.18.0
+ dev: false
+
+ /@trpc/server@10.18.0:
+ resolution: {integrity: sha512-nVMqdDIF9YLOeC3g6RdAvdCPqkHFjpshSqZGThZ+fyjiWSUXj2ZKCduhJFnY77TjtgODojeaaghmzcnjxb+Onw==}
+ dev: false
+
+ /@trysound/sax@0.2.0:
+ resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+ engines: {node: '>=10.13.0'}
+
+ /@types/cheerio@0.22.31:
+ resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==}
+ dependencies:
+ '@types/node': 18.15.0
+ dev: true
+
+ /@types/crawler@1.2.2:
+ resolution: {integrity: sha512-QdR47kuwX/xQmh1+QsEhq0rm+l7znxUVqz6N+TtTiL4uyE+7rmg/jlUKekKNda1a0TjiofO3+KWdHNHYud7BCg==}
+ dependencies:
+ '@types/cheerio': 0.22.31
+ dev: true
+
+ /@types/debug@4.1.7:
+ resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
+ dependencies:
+ '@types/ms': 0.7.31
+ dev: false
+
+ /@types/estree@1.0.0:
+ resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
+
+ /@types/fs-extra@11.0.1:
+ resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==}
+ dependencies:
+ '@types/jsonfile': 6.1.1
+ '@types/node': 18.15.0
+ dev: true
+
+ /@types/json-schema@7.0.11:
+ resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
+ dev: true
+
+ /@types/json5@0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ dev: true
+
+ /@types/jsonfile@6.1.1:
+ resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==}
+ dependencies:
+ '@types/node': 18.15.0
+ dev: true
+
+ /@types/marked@4.0.8:
+ resolution: {integrity: sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw==}
+ dev: true
+
+ /@types/mdast@3.0.10:
+ resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==}
+ dependencies:
+ '@types/unist': 2.0.6
+
+ /@types/ms@0.7.31:
+ resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==}
+ dev: false
+
+ /@types/node-fetch@2.6.2:
+ resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
+ dependencies:
+ '@types/node': 18.15.0
+ form-data: 3.0.1
+ optional: true
+
+ /@types/node@18.15.0:
+ resolution: {integrity: sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==}
+
+ /@types/normalize-package-data@2.4.1:
+ resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
+
+ /@types/prismjs@1.26.0:
+ resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==}
+ dev: true
+
+ /@types/resolve@1.20.2:
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
+ /@types/semver@7.3.13:
+ resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
+ dev: true
+
+ /@types/tinycolor2@1.4.3:
+ resolution: {integrity: sha512-Kf1w9NE5HEgGxCRyIcRXR/ZYtDv0V8FVPtYHwLxl0O+maGX0erE77pQlD0gpP+/KByMZ87mOA79SjifhSB3PjQ==}
+ dev: true
+
+ /@types/tunnel@0.0.3:
+ resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==}
+ dependencies:
+ '@types/node': 18.15.0
+ optional: true
+
+ /@types/unist@2.0.6:
+ resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
+
+ /@types/web-bluetooth@0.0.16:
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+ dev: false
+
+ /@typescript-eslint/eslint-plugin@5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/scope-manager': 5.54.1
+ '@typescript-eslint/type-utils': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.36.0
+ grapheme-splitter: 1.0.4
+ 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
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser@5.54.1(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.54.1
+ '@typescript-eslint/types': 5.54.1
+ '@typescript-eslint/typescript-estree': 5.54.1(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.36.0
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager@5.54.1:
+ resolution: {integrity: sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.54.1
+ '@typescript-eslint/visitor-keys': 5.54.1
+ dev: true
+
+ /@typescript-eslint/type-utils@5.54.1(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.54.1(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ debug: 4.3.4
+ eslint: 8.36.0
+ tsutils: 3.21.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types@5.54.1:
+ resolution: {integrity: sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree@5.54.1(typescript@4.9.5):
+ resolution: {integrity: sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.54.1
+ '@typescript-eslint/visitor-keys': 5.54.1
+ 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
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils@5.54.1(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.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.54.1
+ '@typescript-eslint/types': 5.54.1
+ '@typescript-eslint/typescript-estree': 5.54.1(typescript@4.9.5)
+ eslint: 8.36.0
+ eslint-scope: 5.1.1
+ eslint-utils: 3.0.0(eslint@8.36.0)
+ semver: 7.3.8
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys@5.54.1:
+ resolution: {integrity: sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.54.1
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
+ /@unhead/dom@1.1.23:
+ resolution: {integrity: sha512-Ofa427IF7tMhL/Qw4JzlAbRVBnQjURZONcjhGHVOCoNLU+GAKfbDLBpR2r3kXQFFcv2aDKygoSVyxU6R0cLptw==}
+ dependencies:
+ '@unhead/schema': 1.1.23
+ '@unhead/shared': 1.1.23
+
+ /@unhead/schema@1.1.23:
+ resolution: {integrity: sha512-ens8dY3ji8xLVutrcLnNmWq4dpBQIzvSHBr6yZqj7mF8RORXYNwJsY0LRAyAgTyv9aD5aEVpQIiz9s4f2+Nncg==}
+ dependencies:
+ hookable: 5.5.1
+ zhead: 2.0.4
+
+ /@unhead/shared@1.1.23:
+ resolution: {integrity: sha512-6uFEn/DRainxc3IE+RTMV6AK4Xi8osg7qAUAVMz3KpF0EoHzGbBjVBuSrkf7CnrE9Eg+/QYGLdwTvONJHCcYOA==}
+ dependencies:
+ '@unhead/schema': 1.1.23
+
+ /@unhead/ssr@1.1.23:
+ resolution: {integrity: sha512-msxPjkHG2TtgTCRBFjTTTVHPOgGSmNtQCz3zjN1xxY1BRb7NdUN6Yure85qNt+yNUtcQ5C45NmJIxdNDjrJhlQ==}
+ dependencies:
+ '@unhead/schema': 1.1.23
+ '@unhead/shared': 1.1.23
+
+ /@unhead/vue@1.1.23(vue@3.2.47):
+ resolution: {integrity: sha512-v693TmDYIZyVkZBW+YGyy4Zgl78gQZby84yXpok+E9tmqg2POQ9oG0ILdPNdlwLfWeSrhb8dTahWb68v608LdA==}
+ peerDependencies:
+ vue: '>=2.7 || >=3'
+ dependencies:
+ '@unhead/schema': 1.1.23
+ '@unhead/shared': 1.1.23
+ hookable: 5.5.1
+ unhead: 1.1.23
+ vue: 3.2.47
+
+ /@unocss/astro@0.50.4:
+ resolution: {integrity: sha512-NlfkyMM/xv0ozzP/ByqFAQmtzpDALWqWssXmtSQVV3CCZCxTQYzeenXgv92VELISxNUHJ46elKPHhWNpRBxCjg==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ '@unocss/reset': 0.50.4
+ '@unocss/vite': 0.50.4
+ transitivePeerDependencies:
+ - rollup
+ - vite
+ dev: true
+
+ /@unocss/cli@0.50.4:
+ resolution: {integrity: sha512-rAdMSfDio5dGbHCnhmvh+72D7JmIksDIpGYf0rjrMU+rxSC3/l4+Dr9Rr5qqNg1I51AcB9/UM6ena0TF2RyK8A==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ '@ampproject/remapping': 2.2.0
+ '@rollup/pluginutils': 5.0.2
+ '@unocss/config': 0.50.4
+ '@unocss/core': 0.50.4
+ '@unocss/preset-uno': 0.50.4
+ cac: 6.7.14
+ chokidar: 3.5.3
+ colorette: 2.0.19
+ consola: 2.15.3
+ fast-glob: 3.2.12
+ magic-string: 0.30.0
+ pathe: 1.1.0
+ perfect-debounce: 0.1.3
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /@unocss/config@0.50.4:
+ resolution: {integrity: sha512-5Nvlvu3RHoZFqaxJwaN/pr9bWHg2PZ4omD90y/xe0CXWHjX9n3BJHcXqQQm0Iai6uF1IZDPOC5nj2UU2oKFxMg==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@unocss/core': 0.50.4
+ unconfig: 0.3.7
+ dev: true
+
+ /@unocss/core@0.50.4:
+ resolution: {integrity: sha512-k/8CdnO4w7f+QdvCpS3U5y6xApC4odiErkBKCCaGgBqOWkuTSL92TiBnffSEA2WepGm1+Mv4urIk20ocKYxbUQ==}
+ dev: true
+
+ /@unocss/core@0.50.6:
+ resolution: {integrity: sha512-WMIp8xr7YSlID2whqfRGLwagp59e6u4ckPACEpoDOW8sTeSPRZm54hxPhuWXD1SQuqcwHPMtM9nzGD8UOnqQxA==}
+ dev: true
+
+ /@unocss/inspector@0.50.4:
+ resolution: {integrity: sha512-3xYOhjNmM7qpdU4CSbL7acCb4YuTdeSoYCIMtWkbg9mHh/6GQZWV2eDTxwSxVE7WwDymw9Jg44Ewq3oboZWl1Q==}
+ dependencies:
+ gzip-size: 6.0.0
+ sirv: 2.0.2
+ dev: true
+
+ /@unocss/nuxt@0.50.4:
+ resolution: {integrity: sha512-D8V5gGwph52KrHbr23dgTvabTOw7jLUT3yinxjjWtFZKb/UPk9LYDXZ/tIopUy+gYNrgCsWl6Cv91SjItwYoeA==}
+ dependencies:
+ '@nuxt/kit': 3.2.3
+ '@unocss/config': 0.50.4
+ '@unocss/core': 0.50.4
+ '@unocss/preset-attributify': 0.50.4
+ '@unocss/preset-icons': 0.50.4
+ '@unocss/preset-tagify': 0.50.4
+ '@unocss/preset-typography': 0.50.4
+ '@unocss/preset-uno': 0.50.4
+ '@unocss/preset-web-fonts': 0.50.4
+ '@unocss/preset-wind': 0.50.4
+ '@unocss/reset': 0.50.4
+ '@unocss/vite': 0.50.4
+ '@unocss/webpack': 0.50.4
+ unocss: 0.50.4(@unocss/webpack@0.50.4)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ - vite
+ - webpack
+ dev: true
+
+ /@unocss/postcss@0.50.4:
+ resolution: {integrity: sha512-Gri+EqIOs/yKk0YHel5XLHQCRD1BzKdQHF82zizJUyqaRStR2qvR8ECInYsirXL/eUEvx2zT8iQKCXkiApTuQw==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@unocss/config': 0.50.4
+ '@unocss/core': 0.50.4
+ css-tree: 2.3.1
+ fast-glob: 3.2.12
+ magic-string: 0.30.0
+ postcss: 8.4.21
+ dev: true
+
+ /@unocss/preset-attributify@0.50.4:
+ resolution: {integrity: sha512-lSEyfpIGSzZB4DHFxrxhaa7rDF5PpM1EbReKogTVG7wsYTCmdCh8YirrgAlrcFCN1NgcbW1DaHdQs891A7glow==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/preset-icons@0.50.4:
+ resolution: {integrity: sha512-0Bnito2u/t479oI9syXG8ynK1q2YUBt+dV6S6UugiTtys0KahjmuOTuk10GDgF50r4FvI38QfHBv+kF95qmwZg==}
+ dependencies:
+ '@iconify/utils': 2.1.5
+ '@unocss/core': 0.50.4
+ ofetch: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@unocss/preset-mini@0.50.4:
+ resolution: {integrity: sha512-M+4by82hlpZq/sE0axrepQ6sgTl65nXrbNIHhXmfIsqulH7nENELJIr/TFi7VcSJdPMGVwo9l9dHnFMhSQM5hg==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/preset-tagify@0.50.4:
+ resolution: {integrity: sha512-SJchttBpnePOKBD9onjprqOcgyWFAaOzT3O6M/sWzHEszVcfsFi2uPcwZW5CLwbOMiV0tbozBQFkcQ1c1swilw==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/preset-typography@0.50.4:
+ resolution: {integrity: sha512-iEVdwd591RKAzirvftAHcLWdTam3ea/M7ElC1geMlY8rsFNtiDjVLtY87v8piHVXXFBwy71YAGhJkPCrxE8yHw==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ '@unocss/preset-mini': 0.50.4
+ dev: true
+
+ /@unocss/preset-uno@0.50.4:
+ resolution: {integrity: sha512-otmCHbzJH1EISZ2Hvu35CEYaH3T6giwTreaP8CEo+BEjhGv2hgWmJko8GPDerUgO4FSP/YCwSGyBvcvSsRXV8A==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ '@unocss/preset-mini': 0.50.4
+ '@unocss/preset-wind': 0.50.4
+ dev: true
+
+ /@unocss/preset-web-fonts@0.50.4:
+ resolution: {integrity: sha512-4l8ILVzL6pAtMjwB5NRg1HowCS6dz4tLRVxH5W4uPyU5ADt3nhk5oQvzD9hDiB5sNJcXFVpMhI09UsRjUHQaTw==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ ofetch: 1.0.1
+ dev: true
+
+ /@unocss/preset-wind@0.50.4:
+ resolution: {integrity: sha512-kOdX5DYrspbVOkNY7cEH0jJrtmtxlEcsZb9ieToYb3l76oWicgZX5G46c74+UzMW2ru9dxdOBgJWgnWbH7AFDQ==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ '@unocss/preset-mini': 0.50.4
+ dev: true
+
+ /@unocss/reset@0.50.4:
+ resolution: {integrity: sha512-UHNDhClJMx3sG3oi68XkOcTeJ2hkI20O0eHowSoua10NClbnS9tiKxeo4ZLInouzvac3tb1TsjKEgTosHfkR/w==}
+ dev: true
+
+ /@unocss/scope@0.50.4:
+ resolution: {integrity: sha512-USJ5hr1dVE8JOb0PJYqpfAWxGLB69b+z30ZGzdmDgblmVheYsyzWZ3KMclz/2x8HtXRsB2VuJT5KqUPW7lT3gw==}
+ dev: true
+
+ /@unocss/transformer-attributify-jsx@0.50.4:
+ resolution: {integrity: sha512-DETbAiN/i393/OLuyEMBCXr2wDGyqEbkDMl/ZPN5RKO6m7312yt0KebnfIJnKaL0wGs90ohtV4ZHWMOeucX2jQ==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/transformer-compile-class@0.50.4:
+ resolution: {integrity: sha512-pjXamTunv8CAX8r6heEw/UJdhkYNIbMEr6GGQfe33K6lL4fdU85NbvZD7c3pXbQJahKrGsgL7TSPvFoRw+5MZA==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/transformer-directives@0.50.4:
+ resolution: {integrity: sha512-sk7AlL6wGnfKbCBDP4bKg008sJQuIbT408bkq98yA7h0/bIlLTqF6U0nzqUoIer5YxAAvIVm1Sm30CQV06s9rA==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ css-tree: 2.3.1
+ dev: true
+
+ /@unocss/transformer-directives@0.50.6:
+ resolution: {integrity: sha512-deUJMZDDYQ/kGRFdGe3JrmnbiScs9Smc5Vj35Pr/MNMAM9pItbMwCgZLc+EcHgYNvO5tp0qfA9prPAIs4YpRbg==}
+ dependencies:
+ '@unocss/core': 0.50.6
+ css-tree: 2.3.1
+ dev: true
+
+ /@unocss/transformer-variant-group@0.50.4:
+ resolution: {integrity: sha512-caSByOVhD36yeE0j11gkhsxGPX7wphexVZLlzJa/6w2RAHwab1SCBCtAQeTRdl/C53DI8q4gsNt73IFoqQ1eng==}
+ dependencies:
+ '@unocss/core': 0.50.4
+ dev: true
+
+ /@unocss/vite@0.50.4:
+ resolution: {integrity: sha512-NW0B6hY3ho6G+PRFjNDvs0+nokCzHGbMtK4E9GIU5NyjJh0b4FfuWe9C9o1GxHGiFskGfYnirKPV40IHWOzOFw==}
+ peerDependencies:
+ vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0
+ dependencies:
+ '@ampproject/remapping': 2.2.0
+ '@rollup/pluginutils': 5.0.2
+ '@unocss/config': 0.50.4
+ '@unocss/core': 0.50.4
+ '@unocss/inspector': 0.50.4
+ '@unocss/scope': 0.50.4
+ '@unocss/transformer-directives': 0.50.4
+ chokidar: 3.5.3
+ fast-glob: 3.2.12
+ magic-string: 0.30.0
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /@unocss/webpack@0.50.4:
+ resolution: {integrity: sha512-AUmSBCpA3z7gJ+foe+IyK/HpJPp4yAHYKCGiEZ90DPGKPIlfVQQO8NLdbs7eCFqh2r2umRr/ofVdP5a2XJhe8g==}
+ peerDependencies:
+ webpack: ^4 || ^5
+ dependencies:
+ '@ampproject/remapping': 2.2.0
+ '@rollup/pluginutils': 5.0.2
+ '@unocss/config': 0.50.4
+ '@unocss/core': 0.50.4
+ chokidar: 3.5.3
+ fast-glob: 3.2.12
+ magic-string: 0.30.0
+ unplugin: 1.3.0
+ webpack-sources: 3.2.3
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /@vercel/nft@0.22.6:
+ resolution: {integrity: sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ '@mapbox/node-pre-gyp': 1.0.10
+ '@rollup/pluginutils': 4.2.1
+ acorn: 8.8.2
+ async-sema: 3.1.1
+ bindings: 1.5.0
+ estree-walker: 2.0.2
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ micromatch: 4.0.5
+ node-gyp-build: 4.6.0
+ resolve-from: 5.0.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ /@vitejs/plugin-vue-jsx@3.0.0(vite@4.1.4)(vue@3.2.47):
+ resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0
+ vue: ^3.0.0
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.0)
+ '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.0)
+ vite: 4.1.4
+ vue: 3.2.47
+ transitivePeerDependencies:
+ - supports-color
+
+ /@vitejs/plugin-vue@4.0.0(vite@4.1.4)(vue@3.2.47):
+ resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 4.1.4
+ vue: 3.2.47
+
+ /@vue/babel-helper-vue-transform-on@1.0.2:
+ resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==}
+
+ /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.0):
+ resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==}
+ dependencies:
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0)
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.2
+ '@babel/types': 7.21.2
+ '@vue/babel-helper-vue-transform-on': 1.0.2
+ camelcase: 6.3.0
+ html-tags: 3.2.0
+ svg-tags: 1.0.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ /@vue/compiler-core@3.2.47:
+ resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
+ dependencies:
+ '@babel/parser': 7.21.2
+ '@vue/shared': 3.2.47
+ estree-walker: 2.0.2
+ source-map: 0.6.1
+
+ /@vue/compiler-dom@3.2.47:
+ resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
+ dependencies:
+ '@vue/compiler-core': 3.2.47
+ '@vue/shared': 3.2.47
+
+ /@vue/compiler-sfc@3.2.47:
+ resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
+ dependencies:
+ '@babel/parser': 7.21.2
+ '@vue/compiler-core': 3.2.47
+ '@vue/compiler-dom': 3.2.47
+ '@vue/compiler-ssr': 3.2.47
+ '@vue/reactivity-transform': 3.2.47
+ '@vue/shared': 3.2.47
+ estree-walker: 2.0.2
+ magic-string: 0.25.9
+ postcss: 8.4.21
+ source-map: 0.6.1
+
+ /@vue/compiler-ssr@3.2.47:
+ resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
+ dependencies:
+ '@vue/compiler-dom': 3.2.47
+ '@vue/shared': 3.2.47
+
+ /@vue/devtools-api@6.5.0:
+ resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
+
+ /@vue/reactivity-transform@3.2.47:
+ resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
+ dependencies:
+ '@babel/parser': 7.21.2
+ '@vue/compiler-core': 3.2.47
+ '@vue/shared': 3.2.47
+ estree-walker: 2.0.2
+ magic-string: 0.25.9
+
+ /@vue/reactivity@3.2.47:
+ resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
+ dependencies:
+ '@vue/shared': 3.2.47
+
+ /@vue/runtime-core@3.2.47:
+ resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==}
+ dependencies:
+ '@vue/reactivity': 3.2.47
+ '@vue/shared': 3.2.47
+
+ /@vue/runtime-dom@3.2.47:
+ resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==}
+ dependencies:
+ '@vue/runtime-core': 3.2.47
+ '@vue/shared': 3.2.47
+ csstype: 2.6.21
+
+ /@vue/server-renderer@3.2.47(vue@3.2.47):
+ resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==}
+ peerDependencies:
+ vue: 3.2.47
+ dependencies:
+ '@vue/compiler-ssr': 3.2.47
+ '@vue/shared': 3.2.47
+ vue: 3.2.47
+
+ /@vue/shared@3.2.47:
+ resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
+
+ /@vueuse/core@9.13.0:
+ resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.13.0
+ '@vueuse/shared': 9.13.0
+ vue-demi: 0.13.11
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /@vueuse/metadata@9.13.0:
+ resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+ dev: false
+
+ /@vueuse/nuxt@9.13.0(nuxt@3.3.1):
+ resolution: {integrity: sha512-JunH/w6nFIwCyaZ0s+pfrYFMfBzGfhkwmFPz7ogHFmb71Ty/5HINrYOAOZCXpN44X6QH6FiJq/wuLLdvYzqFUw==}
+ peerDependencies:
+ nuxt: ^3.0.0
+ dependencies:
+ '@nuxt/kit': 3.2.3
+ '@vueuse/core': 9.13.0
+ '@vueuse/metadata': 9.13.0
+ local-pkg: 0.4.3
+ nuxt: 3.3.1(eslint@8.36.0)(typescript@4.9.5)
+ vue-demi: 0.13.11
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - rollup
+ - supports-color
+ - vue
+ dev: false
+
+ /@vueuse/shared@9.13.0:
+ resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
+ dependencies:
+ vue-demi: 0.13.11
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /abbrev@1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+
+ /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
+
+ /acorn@8.8.2:
+ resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ /agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ /ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+ dependencies:
+ ajv: 8.12.0
+ dev: false
+
+ /ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ /ajv@8.12.0:
+ resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+ dev: false
+
+ /ansi-escapes@4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.21.3
+
+ /ansi-escapes@6.0.0:
+ resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ type-fest: 3.6.1
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+
+ /ansi-styles@3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ /aproba@2.0.0:
+ resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
+
+ /arch@2.2.0:
+ resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==}
+
+ /archiver-utils@2.1.0:
+ resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
+ engines: {node: '>= 6'}
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.10
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 2.3.8
+
+ /archiver@5.3.1:
+ resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==}
+ engines: {node: '>= 10'}
+ dependencies:
+ archiver-utils: 2.1.0
+ async: 3.2.4
+ buffer-crc32: 0.2.13
+ readable-stream: 3.6.2
+ readdir-glob: 1.1.2
+ tar-stream: 2.2.0
+ zip-stream: 4.1.0
+
+ /are-we-there-yet@2.0.0:
+ resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
+ engines: {node: '>=10'}
+ dependencies:
+ delegates: 1.0.0
+ readable-stream: 3.6.2
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ /array-buffer-byte-length@1.0.0:
+ resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
+ dependencies:
+ call-bind: 1.0.2
+ is-array-buffer: 3.0.2
+ dev: true
+
+ /array-includes@3.1.6:
+ resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ get-intrinsic: 1.2.0
+ is-string: 1.0.7
+ dev: true
+
+ /array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array.prototype.flat@1.3.1:
+ resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /array.prototype.flatmap@1.3.1:
+ resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ es-shim-unscopables: 1.0.0
+ dev: true
+
+ /asn1@0.2.6:
+ resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: false
+
+ /assert-plus@1.0.0:
+ resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
+ engines: {node: '>=0.8'}
+ dev: false
+
+ /async-sema@3.1.1:
+ resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
+
+ /async@3.2.4:
+ resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
+
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ /atomically@2.0.1:
+ resolution: {integrity: sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==}
+ dependencies:
+ stubborn-fs: 1.2.4
+ when-exit: 2.1.0
+ dev: false
+
+ /autoprefixer@10.4.14(postcss@8.4.21):
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-lite: 1.0.30001464
+ fraction.js: 4.2.0
+ normalize-range: 0.1.2
+ picocolors: 1.0.0
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /available-typed-arrays@1.0.5:
+ resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /aws-sign2@0.7.0:
+ resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
+ dev: false
+
+ /aws4@1.12.0:
+ resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==}
+ dev: false
+
+ /axios@0.26.1:
+ resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
+ dependencies:
+ follow-redirects: 1.15.2
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /axios@1.3.4:
+ resolution: {integrity: sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==}
+ dependencies:
+ follow-redirects: 1.15.2
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /bail@2.0.2:
+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
+ dev: false
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ /bcrypt-pbkdf@1.0.2:
+ resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
+ dependencies:
+ tweetnacl: 0.14.5
+ dev: false
+
+ /beautiful-dom@1.0.9:
+ resolution: {integrity: sha512-DCtfle8jxvIjUgyrcokWcxVxDxS9bsWBC5lntKasOczGwkGM7Q/M22aD5OVEpIsF3blcm7S64Ub3nWHb0MUYxQ==}
+ dev: false
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+
+ /bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ /bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ /bl@5.1.0:
+ resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
+ dependencies:
+ buffer: 6.0.3
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ /boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ /bottleneckp@1.1.3:
+ resolution: {integrity: sha512-f3XqkhYX2xuSxgZNtk/XqT1CHgYLTHK90SVQZjEZqOr+F6ryZA3xEsMQWqWFpRItTbc4X/dnjsE8p+gnr16qgA==}
+ dev: false
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ /brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+
+ /braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.1.1
+ dev: false
+
+ /browserslist@4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001464
+ electron-to-chromium: 1.4.328
+ node-releases: 2.0.10
+ update-browserslist-db: 1.0.10(browserslist@4.21.5)
+
+ /buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ /buffer-equal-constant-time@1.0.1:
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+ optional: true
+
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ /buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ /buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ /builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ /builtins@5.0.1:
+ resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
+ dependencies:
+ semver: 7.3.8
+ dev: true
+
+ /busboy@1.6.0:
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
+ engines: {node: '>=10.16.0'}
+ dependencies:
+ streamsearch: 1.1.0
+ dev: false
+
+ /c12@1.2.0:
+ resolution: {integrity: sha512-CMznkE0LpNEuD8ILp5QvsQVP+YvcpJnrI/zFeFnosU2PyDtx1wT7tXfZ8S3Tl3l9MTTXbKeuhDYKwgvnAPOx3w==}
+ dependencies:
+ defu: 6.1.2
+ dotenv: 16.0.3
+ giget: 1.1.2
+ jiti: 1.17.2
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ rc9: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
+ /call-bind@1.0.2:
+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ dependencies:
+ function-bind: 1.1.1
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ /camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ /caniuse-api@3.0.0:
+ resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-lite: 1.0.30001464
+ lodash.memoize: 4.1.2
+ lodash.uniq: 4.5.0
+
+ /caniuse-lite@1.0.30001464:
+ resolution: {integrity: sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==}
+
+ /caseless@0.12.0:
+ resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
+ dev: false
+
+ /ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+ dev: false
+
+ /chalk@2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ /chalk@5.2.0:
+ resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ /character-entities-legacy@1.1.4:
+ resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
+ dev: true
+
+ /character-entities@1.2.4:
+ resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
+ dev: true
+
+ /character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+ dev: false
+
+ /character-reference-invalid@1.1.4:
+ resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
+ dev: true
+
+ /chardet@0.7.0:
+ resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+
+ /chatgpt-web@1.0.10:
+ resolution: {integrity: sha512-PFOLgbWs61dylyfEJZIPLFqLumHsX1UNlvS8G427flq9svHe3U/Dk2SDxzqAO7oxtNCcXI15MneuxVIH25JY4Q==}
+ engines: {node: '>=14'}
+ dependencies:
+ eventsource-parser: 0.0.5
+ p-timeout: 6.1.1
+ uuid: 9.0.0
+ dev: false
+
+ /chatgpt@5.0.10:
+ resolution: {integrity: sha512-R3vtPlhCapFLkDXED0Cnt1DBcOZAXygr0M5U5kbSI0Fwm4uDQmc7qoIOnr17rd8eaa0JO/UDOevJdEWvd079qA==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ '@dqbd/tiktoken': 0.4.0
+ cac: 6.7.14
+ conf: 11.0.1
+ eventsource-parser: 0.0.5
+ keyv: 4.5.2
+ p-timeout: 6.1.1
+ quick-lru: 6.1.1
+ read-pkg-up: 9.1.0
+ uuid: 9.0.0
+ dev: false
+
+ /cheerio@0.22.0:
+ resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ css-select: 1.2.0
+ dom-serializer: 0.1.1
+ entities: 1.1.2
+ htmlparser2: 3.10.1
+ lodash.assignin: 4.2.0
+ lodash.bind: 4.2.1
+ lodash.defaults: 4.2.0
+ lodash.filter: 4.6.0
+ lodash.flatten: 4.4.0
+ lodash.foreach: 4.5.0
+ lodash.map: 4.6.0
+ lodash.merge: 4.6.2
+ lodash.pick: 4.4.0
+ lodash.reduce: 4.6.0
+ lodash.reject: 4.6.0
+ lodash.some: 4.6.0
+ dev: false
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ /chownr@1.1.4:
+ resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+ dev: false
+
+ /chownr@2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+
+ /ci-info@3.8.0:
+ resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
+ engines: {node: '>=8'}
+
+ /clean-regexp@1.0.0:
+ resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
+ engines: {node: '>=4'}
+ dependencies:
+ escape-string-regexp: 1.0.5
+ dev: true
+
+ /clear@0.1.0:
+ resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==}
+
+ /cli-cursor@4.0.0:
+ resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ restore-cursor: 4.0.0
+
+ /cli-spinners@2.7.0:
+ resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==}
+ engines: {node: '>=6'}
+
+ /cli-width@4.0.0:
+ resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==}
+ engines: {node: '>= 12'}
+
+ /clipboardy@3.0.0:
+ resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ arch: 2.2.0
+ execa: 5.1.1
+ is-wsl: 2.2.0
+
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ /clone@1.0.4:
+ resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
+ engines: {node: '>=0.8'}
+
+ /cluster-key-slot@1.1.2:
+ resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
+ engines: {node: '>=0.10.0'}
+
+ /color-convert@1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+
+ /color-name@1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ /color-string@1.9.1:
+ resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+ dependencies:
+ color-name: 1.1.4
+ simple-swizzle: 0.2.2
+ dev: false
+
+ /color-support@1.1.3:
+ resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
+ hasBin: true
+
+ /color@4.2.3:
+ resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
+ engines: {node: '>=12.5.0'}
+ dependencies:
+ color-convert: 2.0.1
+ color-string: 1.9.1
+ dev: false
+
+ /colord@2.9.3:
+ resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+ /colorette@2.0.19:
+ resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==}
+
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+
+ /commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ /commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ /commander@8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+
+ /commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+
+ /compress-commons@4.1.1:
+ resolution: {integrity: sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==}
+ engines: {node: '>= 10'}
+ dependencies:
+ buffer-crc32: 0.2.13
+ crc32-stream: 4.0.2
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
+
+ /conf@11.0.1:
+ resolution: {integrity: sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==}
+ engines: {node: '>=14.16'}
+ dependencies:
+ ajv: 8.12.0
+ ajv-formats: 2.1.1
+ atomically: 2.0.1
+ debounce-fn: 5.1.2
+ dot-prop: 7.2.0
+ env-paths: 3.0.0
+ json-schema-typed: 8.0.1
+ semver: 7.3.8
+ dev: false
+
+ /consola@2.15.3:
+ resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
+
+ /consola@3.2.3:
+ resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
+ /console-control-strings@1.1.0:
+ resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
+
+ /convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
+ /cookie-es@0.5.0:
+ resolution: {integrity: sha512-RyZrFi6PNpBFbIaQjXDlFIhFVqV42QeKSZX1yQIl6ihImq6vcHNGMtqQ/QzY3RMPuYSkvsRwtnt5M9NeYxKt0g==}
+
+ /cookie-es@1.2.2:
+ resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
+
+ /core-util-is@1.0.2:
+ resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
+ dev: false
+
+ /core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ /crawler@1.4.0:
+ resolution: {integrity: sha512-rFg8/AtpQ5c8SItxwamlP4fGClnDd/n5GOdFakq0KtCdTzXL2HqzROyrAfEWPYuFzX2n+avafe3hQiFGKKOLXw==}
+ dependencies:
+ bottleneckp: 1.1.3
+ cheerio: 0.22.0
+ iconv-lite: 0.4.24
+ lodash: 4.17.21
+ request: 2.88.2
+ seenreq: 3.0.0
+ type-is: 1.6.18
+ dev: false
+
+ /crc-32@1.2.2:
+ resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ /crc32-stream@4.0.2:
+ resolution: {integrity: sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==}
+ engines: {node: '>= 10'}
+ dependencies:
+ crc-32: 1.2.2
+ readable-stream: 3.6.2
+
+ /create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
+ /cross-fetch@3.1.5:
+ resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==}
+ dependencies:
+ node-fetch: 2.6.7
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ /crossws@0.2.4:
+ resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==}
+ peerDependencies:
+ uWebSockets.js: '*'
+ peerDependenciesMeta:
+ uWebSockets.js:
+ optional: true
+
+ /css-declaration-sorter@6.3.1(postcss@8.4.21):
+ resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==}
+ engines: {node: ^10 || ^12 || >=14}
+ peerDependencies:
+ postcss: ^8.0.9
+ dependencies:
+ postcss: 8.4.21
+
+ /css-select@1.2.0:
+ resolution: {integrity: sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 2.1.3
+ domutils: 1.5.1
+ nth-check: 1.0.2
+ dev: false
+
+ /css-select@4.3.0:
+ resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ nth-check: 2.1.1
+
+ /css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.0.1
+ nth-check: 2.1.1
+ dev: false
+
+ /css-tree@1.1.3:
+ resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
+ /css-tree@2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ dependencies:
+ mdn-data: 2.0.30
+ source-map-js: 1.0.2
+ dev: true
+
+ /css-what@2.1.3:
+ resolution: {integrity: sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==}
+ dev: false
+
+ /css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+ engines: {node: '>= 6'}
+
+ /cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /cssnano-preset-default@5.2.14(postcss@8.4.21):
+ resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ css-declaration-sorter: 6.3.1(postcss@8.4.21)
+ cssnano-utils: 3.1.0(postcss@8.4.21)
+ postcss: 8.4.21
+ postcss-calc: 8.2.4(postcss@8.4.21)
+ postcss-colormin: 5.3.1(postcss@8.4.21)
+ postcss-convert-values: 5.1.3(postcss@8.4.21)
+ postcss-discard-comments: 5.1.2(postcss@8.4.21)
+ postcss-discard-duplicates: 5.1.0(postcss@8.4.21)
+ postcss-discard-empty: 5.1.1(postcss@8.4.21)
+ postcss-discard-overridden: 5.1.0(postcss@8.4.21)
+ postcss-merge-longhand: 5.1.7(postcss@8.4.21)
+ postcss-merge-rules: 5.1.4(postcss@8.4.21)
+ postcss-minify-font-values: 5.1.0(postcss@8.4.21)
+ postcss-minify-gradients: 5.1.1(postcss@8.4.21)
+ postcss-minify-params: 5.1.4(postcss@8.4.21)
+ postcss-minify-selectors: 5.2.1(postcss@8.4.21)
+ postcss-normalize-charset: 5.1.0(postcss@8.4.21)
+ postcss-normalize-display-values: 5.1.0(postcss@8.4.21)
+ postcss-normalize-positions: 5.1.1(postcss@8.4.21)
+ postcss-normalize-repeat-style: 5.1.1(postcss@8.4.21)
+ postcss-normalize-string: 5.1.0(postcss@8.4.21)
+ postcss-normalize-timing-functions: 5.1.0(postcss@8.4.21)
+ postcss-normalize-unicode: 5.1.1(postcss@8.4.21)
+ postcss-normalize-url: 5.1.0(postcss@8.4.21)
+ postcss-normalize-whitespace: 5.1.1(postcss@8.4.21)
+ postcss-ordered-values: 5.1.3(postcss@8.4.21)
+ postcss-reduce-initial: 5.1.2(postcss@8.4.21)
+ postcss-reduce-transforms: 5.1.0(postcss@8.4.21)
+ postcss-svgo: 5.1.0(postcss@8.4.21)
+ postcss-unique-selectors: 5.1.1(postcss@8.4.21)
+
+ /cssnano-utils@3.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /cssnano@5.1.15(postcss@8.4.21):
+ resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ cssnano-preset-default: 5.2.14(postcss@8.4.21)
+ lilconfig: 2.1.0
+ postcss: 8.4.21
+ yaml: 1.10.2
+
+ /csso@4.2.0:
+ resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ css-tree: 1.1.3
+
+ /csstype@2.6.21:
+ resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
+
+ /cuint@0.2.2:
+ resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==}
+
+ /dashdash@1.14.1:
+ resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ assert-plus: 1.0.0
+ dev: false
+
+ /data-uri-to-buffer@4.0.1:
+ resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
+ engines: {node: '>= 12'}
+
+ /debounce-fn@5.1.2:
+ resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==}
+ engines: {node: '>=12'}
+ dependencies:
+ mimic-fn: 4.0.0
+ dev: false
+
+ /debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+
+ /debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: true
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+
+ /decode-named-character-reference@1.0.2:
+ resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+ dependencies:
+ character-entities: 2.0.2
+ dev: false
+
+ /decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ mimic-response: 3.1.0
+ dev: false
+
+ /deep-extend@0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+ dev: false
+
+ /deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ /deepmerge@4.3.0:
+ resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
+ engines: {node: '>=0.10.0'}
+
+ /defaults@1.0.4:
+ resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
+ dependencies:
+ clone: 1.0.4
+
+ /define-lazy-prop@2.0.0:
+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
+ engines: {node: '>=8'}
+
+ /define-properties@1.2.0:
+ resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-property-descriptors: 1.0.0
+ object-keys: 1.1.1
+ dev: true
+
+ /defu@6.1.2:
+ resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==}
+
+ /defu@6.1.4:
+ resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ /delegates@1.0.0:
+ resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
+
+ /denque@2.1.0:
+ resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
+ engines: {node: '>=0.10'}
+
+ /depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ /dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /destr@1.2.2:
+ resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==}
+
+ /destr@2.0.3:
+ resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+
+ /destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ /deta@1.1.0:
+ resolution: {integrity: sha512-mQAvfAsB++McPMT3Gb39KWkxfFzaPSF+z8XNpomakkUslg9xTu6Z8gVjAXaDGJm0LFEIIZQdokpU+lOJOXtOqw==}
+ dependencies:
+ node-fetch: 2.6.9
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /detect-libc@2.0.1:
+ resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
+ engines: {node: '>=8'}
+
+ /dexie@3.2.3:
+ resolution: {integrity: sha512-iHayBd4UYryDCVUNa3PMsJMEnd8yjyh5p7a+RFeC8i8n476BC9wMhVvqiImq5zJZJf5Tuer+s4SSj+AA3x+ZbQ==}
+ engines: {node: '>=6.0'}
+ dev: false
+
+ /diff@5.1.0:
+ resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==}
+ engines: {node: '>=0.3.1'}
+ dev: false
+
+ /dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+
+ /doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+
+ /dom-serializer@0.1.1:
+ resolution: {integrity: sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==}
+ dependencies:
+ domelementtype: 1.3.1
+ entities: 1.1.2
+ dev: false
+
+ /dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+
+ /dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.4.0
+
+ /domelementtype@1.3.1:
+ resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
+ dev: false
+
+ /domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ /domhandler@2.4.2:
+ resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
+ dependencies:
+ domelementtype: 1.3.1
+ dev: false
+
+ /domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+
+ /domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+
+ /domutils@1.5.1:
+ resolution: {integrity: sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==}
+ dependencies:
+ dom-serializer: 0.1.1
+ domelementtype: 1.3.1
+ dev: false
+
+ /domutils@1.7.0:
+ resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
+ dependencies:
+ dom-serializer: 0.1.1
+ domelementtype: 1.3.1
+ dev: false
+
+ /domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+
+ /domutils@3.0.1:
+ resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
+ /dot-prop@7.2.0:
+ resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ type-fest: 2.19.0
+
+ /dotenv@16.0.3:
+ resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==}
+ engines: {node: '>=12'}
+
+ /duplexer@0.1.2:
+ resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ /ecc-jsbn@0.1.2:
+ resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==}
+ dependencies:
+ jsbn: 0.1.1
+ safer-buffer: 2.1.2
+ dev: false
+
+ /ecdsa-sig-formatter@1.0.11:
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+ optional: true
+
+ /ee-first@1.1.1:
+ resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
+
+ /electron-to-chromium@1.4.328:
+ resolution: {integrity: sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==}
+
+ /emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ /emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ /encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+
+ /enhanced-resolve@4.5.0:
+ resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ graceful-fs: 4.2.10
+ memory-fs: 0.5.0
+ tapable: 1.1.3
+
+ /enhanced-resolve@5.12.0:
+ resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.10
+ tapable: 2.2.1
+
+ /entities@1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+ dev: false
+
+ /entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+
+ /entities@4.4.0:
+ resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
+ engines: {node: '>=0.12'}
+
+ /env-paths@3.0.0:
+ resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: false
+
+ /errno@0.1.8:
+ resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+ hasBin: true
+ dependencies:
+ prr: 1.0.1
+
+ /error-ex@1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+
+ /es-abstract@1.21.2:
+ resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.5
+ get-intrinsic: 1.2.0
+ get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has: 1.0.3
+ has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.5
+ is-array-buffer: 3.0.2
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.2
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.2
+ is-string: 1.0.7
+ is-typed-array: 1.1.10
+ is-weakref: 1.0.2
+ object-inspect: 1.12.3
+ object-keys: 1.1.1
+ object.assign: 4.1.4
+ regexp.prototype.flags: 1.4.3
+ safe-regex-test: 1.0.0
+ string.prototype.trim: 1.2.7
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
+ typed-array-length: 1.0.4
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.9
+ dev: true
+
+ /es-set-tostringtag@2.0.1:
+ resolution: {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
+
+ /esbuild@0.16.17:
+ resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
+ 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
+
+ /esbuild@0.17.11:
+ resolution: {integrity: sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.17.11
+ '@esbuild/android-arm64': 0.17.11
+ '@esbuild/android-x64': 0.17.11
+ '@esbuild/darwin-arm64': 0.17.11
+ '@esbuild/darwin-x64': 0.17.11
+ '@esbuild/freebsd-arm64': 0.17.11
+ '@esbuild/freebsd-x64': 0.17.11
+ '@esbuild/linux-arm': 0.17.11
+ '@esbuild/linux-arm64': 0.17.11
+ '@esbuild/linux-ia32': 0.17.11
+ '@esbuild/linux-loong64': 0.17.11
+ '@esbuild/linux-mips64el': 0.17.11
+ '@esbuild/linux-ppc64': 0.17.11
+ '@esbuild/linux-riscv64': 0.17.11
+ '@esbuild/linux-s390x': 0.17.11
+ '@esbuild/linux-x64': 0.17.11
+ '@esbuild/netbsd-x64': 0.17.11
+ '@esbuild/openbsd-x64': 0.17.11
+ '@esbuild/sunos-x64': 0.17.11
+ '@esbuild/win32-arm64': 0.17.11
+ '@esbuild/win32-ia32': 0.17.11
+ '@esbuild/win32-x64': 0.17.11
+
+ /escalade@3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+
+ /escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ /escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ /escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ /escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
+ /eslint-import-resolver-node@0.3.7:
+ resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.11.0
+ resolve: 1.22.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint@8.36.0):
+ resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ debug: 3.2.7
+ eslint: 8.36.0
+ eslint-import-resolver-node: 0.3.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-antfu@0.36.0(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-qLYtjZC2y6d1fvVtG4nvVGoBUDEuUwQsS4E1RwjoEZyONZAkHYDPfeoeULDlPS0IqumSW8uGR6zGSAXi5rrVMg==}
+ dependencies:
+ '@typescript-eslint/utils': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ transitivePeerDependencies:
+ - eslint
+ - supports-color
+ - typescript
+ dev: true
+
+ /eslint-plugin-es@4.1.0(eslint@8.36.0):
+ resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==}
+ engines: {node: '>=8.10.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
+ dependencies:
+ eslint: 8.36.0
+ eslint-utils: 2.1.0
+ regexpp: 3.2.0
+ dev: true
+
+ /eslint-plugin-eslint-comments@3.2.0(eslint@8.36.0):
+ resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
+ engines: {node: '>=6.5.0'}
+ peerDependencies:
+ eslint: '>=4.19.1'
+ dependencies:
+ escape-string-regexp: 1.0.5
+ eslint: 8.36.0
+ ignore: 5.2.4
+ dev: true
+
+ /eslint-plugin-html@7.1.0:
+ resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==}
+ dependencies:
+ htmlparser2: 8.0.1
+ dev: true
+
+ /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.1)(eslint@8.36.0):
+ resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ array-includes: 3.1.6
+ array.prototype.flat: 1.3.1
+ array.prototype.flatmap: 1.3.1
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.36.0
+ eslint-import-resolver-node: 0.3.7
+ eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint@8.36.0)
+ has: 1.0.3
+ is-core-module: 2.11.0
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.values: 1.1.6
+ resolve: 1.22.1
+ semver: 6.3.0
+ tsconfig-paths: 3.14.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.54.1)(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.0.0
+ eslint: ^7.0.0 || ^8.0.0
+ jest: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ jest:
+ optional: true
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.54.1(eslint@8.36.0)(typescript@4.9.5)
+ eslint: 8.36.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /eslint-plugin-jsonc@2.6.0(eslint@8.36.0):
+ resolution: {integrity: sha512-4bA9YTx58QaWalua1Q1b82zt7eZMB7i+ed8q8cKkbKP75ofOA2SXbtFyCSok7RY6jIXeCqQnKjN9If8zCgv6PA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ eslint: 8.36.0
+ eslint-utils: 3.0.0(eslint@8.36.0)
+ jsonc-eslint-parser: 2.2.0
+ natural-compare: 1.4.0
+ dev: true
+
+ /eslint-plugin-markdown@3.0.0(eslint@8.36.0):
+ resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==}
+ 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.36.0
+ mdast-util-from-markdown: 0.8.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-n@15.6.1(eslint@8.36.0):
+ resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ eslint: '>=7.0.0'
+ dependencies:
+ builtins: 5.0.1
+ eslint: 8.36.0
+ eslint-plugin-es: 4.1.0(eslint@8.36.0)
+ eslint-utils: 3.0.0(eslint@8.36.0)
+ ignore: 5.2.4
+ is-core-module: 2.11.0
+ minimatch: 3.1.2
+ resolve: 1.22.1
+ semver: 7.3.8
+ dev: true
+
+ /eslint-plugin-no-only-tests@3.1.0:
+ resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==}
+ engines: {node: '>=5.0.0'}
+ dev: true
+
+ /eslint-plugin-promise@6.1.1(eslint@8.36.0):
+ resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ dependencies:
+ eslint: 8.36.0
+ dev: true
+
+ /eslint-plugin-unicorn@45.0.2(eslint@8.36.0):
+ resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==}
+ engines: {node: '>=14.18'}
+ peerDependencies:
+ eslint: '>=8.28.0'
+ dependencies:
+ '@babel/helper-validator-identifier': 7.19.1
+ '@eslint-community/eslint-utils': 4.2.0(eslint@8.36.0)
+ ci-info: 3.8.0
+ clean-regexp: 1.0.0
+ eslint: 8.36.0
+ esquery: 1.5.0
+ indent-string: 4.0.0
+ is-builtin-module: 3.2.1
+ jsesc: 3.0.2
+ lodash: 4.17.21
+ pluralize: 8.0.0
+ read-pkg-up: 7.0.1
+ regexp-tree: 0.1.24
+ regjsparser: 0.9.1
+ safe-regex: 2.1.1
+ semver: 7.3.8
+ strip-indent: 3.0.0
+ dev: true
+
+ /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.54.1)(eslint@8.36.0):
+ resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/eslint-plugin': ^5.0.0
+ eslint: ^8.0.0
+ peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.36.0)(typescript@4.9.5)
+ eslint: 8.36.0
+ eslint-rule-composer: 0.3.0
+ dev: true
+
+ /eslint-plugin-vue@9.9.0(eslint@8.36.0):
+ resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ eslint: 8.36.0
+ eslint-utils: 3.0.0(eslint@8.36.0)
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.0.11
+ semver: 7.3.8
+ vue-eslint-parser: 9.1.0(eslint@8.36.0)
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-yml@1.5.0(eslint@8.36.0):
+ resolution: {integrity: sha512-iygN054g+ZrnYmtOXMnT+sx9iDNXt89/m0+506cQHeG0+5jJN8hY5iOPQLd3yfd50AfK/mSasajBWruf1SoHpQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ debug: 4.3.4
+ eslint: 8.36.0
+ lodash: 4.17.21
+ natural-compare: 1.4.0
+ yaml-eslint-parser: 1.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-rule-composer@0.3.0:
+ resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
+ engines: {node: '>=4.0.0'}
+ dev: true
+
+ /eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint-scope@7.1.1:
+ resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ /eslint-utils@2.1.0:
+ resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}
+ engines: {node: '>=6'}
+ dependencies:
+ eslint-visitor-keys: 1.3.0
+ dev: true
+
+ /eslint-utils@3.0.0(eslint@8.36.0):
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+ dependencies:
+ eslint: 8.36.0
+ eslint-visitor-keys: 2.1.0
+ dev: true
+
+ /eslint-visitor-keys@1.3.0:
+ resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /eslint-visitor-keys@2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-visitor-keys@3.3.0:
+ resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ /eslint@8.36.0:
+ resolution: {integrity: sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.2.0(eslint@8.36.0)
+ '@eslint-community/regexpp': 4.4.0
+ '@eslint/eslintrc': 2.0.1
+ '@eslint/js': 8.36.0
+ '@humanwhocodes/config-array': 0.11.8
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.1.1
+ eslint-visitor-keys: 3.3.0
+ espree: 9.5.0
+ 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
+ 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
+ strip-ansi: 6.0.1
+ strip-json-comments: 3.1.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /esno@0.16.3:
+ resolution: {integrity: sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==}
+ hasBin: true
+ dependencies:
+ tsx: 3.12.6
+ dev: true
+
+ /espree@9.5.0:
+ resolution: {integrity: sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==}
+ 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
+
+ /esquery@1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+
+ /esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+
+ /estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ /estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+ dependencies:
+ '@types/estree': 1.0.0
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ /etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ /eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ /events@3.3.0:
+ resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
+ engines: {node: '>=0.8.x'}
+ optional: true
+
+ /eventsource-parser@0.0.5:
+ resolution: {integrity: sha512-BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /eventsource-parser@1.0.0:
+ resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==}
+ engines: {node: '>=14.18'}
+ dev: false
+
+ /execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ /expand-template@2.0.3:
+ resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ dev: false
+
+ /external-editor@3.1.0:
+ resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
+ engines: {node: '>=4'}
+ dependencies:
+ chardet: 0.7.0
+ iconv-lite: 0.4.24
+ tmp: 0.0.33
+
+ /externality@1.0.0:
+ resolution: {integrity: sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==}
+ dependencies:
+ enhanced-resolve: 5.12.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ ufo: 1.1.1
+
+ /extsprintf@1.3.0:
+ resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==}
+ engines: {'0': node >=0.6.0}
+ dev: false
+
+ /fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ /fast-glob@3.2.12:
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ 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
+
+ /fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ /fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ /fast-xml-parser@4.1.3:
+ resolution: {integrity: sha512-LsNDahCiCcJPe8NO7HijcnukHB24tKbfDDA5IILx9dmW3Frb52lhbeX6MPNUSvyGNfav2VTYpJ/OqkRoVLrh2Q==}
+ hasBin: true
+ dependencies:
+ strnum: 1.0.5
+ optional: true
+
+ /fastq@1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+
+ /fetch-blob@3.2.0:
+ resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
+ engines: {node: ^12.20 || >= 14.13}
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 3.2.1
+
+ /figures@5.0.0:
+ resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==}
+ engines: {node: '>=14'}
+ dependencies:
+ escape-string-regexp: 5.0.0
+ is-unicode-supported: 1.3.0
+
+ /file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.0.4
+
+ /file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+
+ /fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: false
+
+ /find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ /find-up@6.3.0:
+ resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ locate-path: 7.2.0
+ path-exists: 5.0.0
+ dev: false
+
+ /flat-cache@3.0.4:
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.2.7
+ rimraf: 3.0.2
+
+ /flat@5.0.2:
+ resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
+ hasBin: true
+
+ /flatted@3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
+
+ /floating-vue@2.0.0-beta.20:
+ resolution: {integrity: sha512-N68otcpp6WwcYC7zP8GeJqNZVdfvS7tEY88lwmuAHeqRgnfWx1Un8enzLxROyVnBDZ3TwUoUdj5IFg+bUT7JeA==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@floating-ui/dom': 0.1.10
+ vue-resize: 2.0.0-alpha.1
+ dev: false
+
+ /follow-redirects@1.15.2:
+ resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ /for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: true
+
+ /forever-agent@0.6.1:
+ resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
+ dev: false
+
+ /form-data@2.3.3:
+ resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
+ engines: {node: '>= 0.12'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: false
+
+ /form-data@3.0.1:
+ resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ optional: true
+
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ /formdata-polyfill@4.0.10:
+ resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
+ engines: {node: '>=12.20.0'}
+ dependencies:
+ fetch-blob: 3.2.0
+
+ /fraction.js@4.2.0:
+ resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
+
+ /fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ /fs-constants@1.0.0:
+ resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+
+ /fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ graceful-fs: 4.2.10
+ jsonfile: 6.1.0
+ universalify: 2.0.0
+
+ /fs-extra@11.1.1:
+ resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.10
+ jsonfile: 6.1.0
+ universalify: 2.0.0
+
+ /fs-minipass@2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.3.6
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ /fsevents@2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ optional: true
+
+ /function-bind@1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+
+ /function.prototype.name@1.1.5:
+ resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ functions-have-names: 1.2.3
+ dev: true
+
+ /functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ dev: true
+
+ /fuse.js@6.6.2:
+ resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /gauge@3.0.2:
+ resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ aproba: 2.0.0
+ color-support: 1.1.3
+ console-control-strings: 1.1.0
+ has-unicode: 2.0.1
+ object-assign: 4.1.1
+ signal-exit: 3.0.7
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wide-align: 1.1.5
+
+ /gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ /get-intrinsic@1.2.0:
+ resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-symbols: 1.0.3
+ dev: true
+
+ /get-port-please@3.0.1:
+ resolution: {integrity: sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==}
+
+ /get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ /get-symbol-description@1.0.0:
+ resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /get-tsconfig@4.4.0:
+ resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==}
+ dev: true
+
+ /getpass@0.1.7:
+ resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==}
+ dependencies:
+ assert-plus: 1.0.0
+ dev: false
+
+ /giget@1.1.2:
+ resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==}
+ hasBin: true
+ dependencies:
+ colorette: 2.0.19
+ defu: 6.1.2
+ https-proxy-agent: 5.0.1
+ mri: 1.2.0
+ node-fetch-native: 1.0.2
+ pathe: 1.1.0
+ tar: 6.1.13
+ transitivePeerDependencies:
+ - supports-color
+
+ /git-config-path@2.0.0:
+ resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==}
+ engines: {node: '>=4'}
+
+ /git-up@7.0.0:
+ resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==}
+ dependencies:
+ is-ssh: 1.4.0
+ parse-url: 8.1.0
+
+ /git-url-parse@13.1.0:
+ resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==}
+ dependencies:
+ git-up: 7.0.0
+
+ /github-from-package@0.0.0:
+ resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
+ dev: false
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+
+ /glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ /glob@8.1.0:
+ resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 5.1.6
+ once: 1.4.0
+
+ /globals@11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+
+ /globals@13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.2.0
+ dev: true
+
+ /globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.2.12
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /globby@13.1.3:
+ resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ dir-glob: 3.0.1
+ fast-glob: 3.2.12
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 4.0.0
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /gpt-token-utils@1.2.0:
+ resolution: {integrity: sha512-s8twaU38UE2Vp65JhQEjz8qvWhWY8KZYvmvYHapxlPT03Ok35Clq+gm9eE27wQILdFisseMVRSiC5lJR9GBklA==}
+ dev: false
+
+ /graceful-fs@4.2.10:
+ resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+
+ /grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+
+ /gzip-size@6.0.0:
+ resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ duplexer: 0.1.2
+ dev: true
+
+ /gzip-size@7.0.0:
+ resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ duplexer: 0.1.2
+
+ /h3@1.12.0:
+ resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==}
+ dependencies:
+ cookie-es: 1.2.2
+ crossws: 0.2.4
+ defu: 6.1.4
+ destr: 2.0.3
+ iron-webcrypto: 1.2.1
+ ohash: 1.1.3
+ radix3: 1.1.2
+ ufo: 1.5.4
+ uncrypto: 0.1.3
+ unenv: 1.10.0
+ transitivePeerDependencies:
+ - uWebSockets.js
+
+ /har-schema@2.0.0:
+ resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /har-validator@5.1.5:
+ resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==}
+ engines: {node: '>=6'}
+ deprecated: this library is no longer supported
+ dependencies:
+ ajv: 6.12.6
+ har-schema: 2.0.0
+ dev: false
+
+ /has-bigints@1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ dev: true
+
+ /has-flag@3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ /has-property-descriptors@1.0.0:
+ resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
+ dependencies:
+ get-intrinsic: 1.2.0
+ dev: true
+
+ /has-proto@1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-tostringtag@1.0.0:
+ resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /has-unicode@2.0.1:
+ resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
+
+ /has@1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+
+ /hash-sum@2.0.0:
+ resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
+
+ /hasha@5.2.2:
+ resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ is-stream: 2.0.1
+ type-fest: 0.8.1
+ dev: false
+
+ /he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: false
+
+ /hookable@5.5.1:
+ resolution: {integrity: sha512-ac50aYjbtRMMZEtTG0qnVaBDA+1lqL9fHzDnxMQlVuO6LZWcBB7NXjIu9H9iImClewNdrit4RiEzi9QpRTgKrg==}
+
+ /hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+ dev: true
+
+ /hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
+ dependencies:
+ lru-cache: 6.0.0
+ dev: false
+
+ /html-tags@3.2.0:
+ resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==}
+ engines: {node: '>=8'}
+
+ /htmlparser2@3.10.1:
+ resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
+ dependencies:
+ domelementtype: 1.3.1
+ domhandler: 2.4.2
+ domutils: 1.7.0
+ entities: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ dev: false
+
+ /htmlparser2@8.0.1:
+ resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.0.1
+ entities: 4.4.0
+ dev: true
+
+ /http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ /http-proxy-agent@5.0.0:
+ resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
+ engines: {node: '>= 6'}
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ /http-proxy@1.18.1:
+ resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ eventemitter3: 4.0.7
+ follow-redirects: 1.15.2
+ requires-port: 1.0.0
+ transitivePeerDependencies:
+ - debug
+
+ /http-shutdown@1.2.2:
+ resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
+ /http-signature@1.2.0:
+ resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==}
+ engines: {node: '>=0.8', npm: '>=1.3.7'}
+ dependencies:
+ assert-plus: 1.0.0
+ jsprim: 1.4.2
+ sshpk: 1.17.0
+ dev: false
+
+ /https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+
+ /human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ /hyperid@3.1.1:
+ resolution: {integrity: sha512-RveV33kIksycSf7HLkq1sHB5wW0OwuX8ot8MYnY++gaaPXGFfKpBncHrAWxdpuEeRlazUMGWefwP1w6o6GaumA==}
+ dependencies:
+ uuid: 8.3.2
+ uuid-parse: 1.1.0
+ dev: false
+
+ /iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ /ignore-dependency-scripts@1.0.1:
+ resolution: {integrity: sha512-WqyrHQb35hinQkdzsNTpFqlmnksHk0mHxmSX/03i91U4WdeiTOYTYf89dB15E8q0oP3lcY+1GP95sqSgjWGUdA==}
+ hasBin: true
+ dev: true
+
+ /ignore@5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+
+ /import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ /imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ /indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ /ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ /inquirer@9.1.4:
+ resolution: {integrity: sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ ansi-escapes: 6.0.0
+ chalk: 5.2.0
+ cli-cursor: 4.0.0
+ cli-width: 4.0.0
+ external-editor: 3.1.0
+ figures: 5.0.0
+ lodash: 4.17.21
+ mute-stream: 0.0.8
+ ora: 6.1.2
+ run-async: 2.4.1
+ rxjs: 7.8.0
+ string-width: 5.1.2
+ strip-ansi: 7.0.1
+ through: 2.3.8
+ wrap-ansi: 8.1.0
+
+ /internal-slot@1.0.5:
+ resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.0
+ has: 1.0.3
+ side-channel: 1.0.4
+ dev: true
+
+ /ioredis@5.3.1:
+ resolution: {integrity: sha512-C+IBcMysM6v52pTLItYMeV4Hz7uriGtoJdz7SSBDX6u+zwSYGirLdQh3L7t/OItWITcw3gTFMjJReYUwS4zihg==}
+ engines: {node: '>=12.22.0'}
+ dependencies:
+ '@ioredis/commands': 1.2.0
+ cluster-key-slot: 1.1.2
+ debug: 4.3.4
+ denque: 2.1.0
+ lodash.defaults: 4.2.0
+ lodash.isarguments: 3.1.0
+ redis-errors: 1.2.0
+ redis-parser: 3.0.0
+ standard-as-callback: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /ip-regex@5.0.0:
+ resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ /iron-webcrypto@1.2.1:
+ resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
+
+ /is-alphabetical@1.0.4:
+ resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
+ dev: true
+
+ /is-alphanumerical@1.0.4:
+ resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
+ dependencies:
+ is-alphabetical: 1.0.4
+ is-decimal: 1.0.4
+ dev: true
+
+ /is-array-buffer@3.0.2:
+ resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-typed-array: 1.1.10
+ dev: true
+
+ /is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ /is-arrayish@0.3.2:
+ resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
+ dev: false
+
+ /is-bigint@1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.2
+ dev: true
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+
+ /is-boolean-object@1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-buffer@2.0.5:
+ resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+ dependencies:
+ builtin-modules: 3.3.0
+
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-core-module@2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ dependencies:
+ has: 1.0.3
+
+ /is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-decimal@1.0.4:
+ resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
+ dev: true
+
+ /is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ /is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ /is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+
+ /is-hexadecimal@1.0.4:
+ resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
+ dev: true
+
+ /is-interactive@2.0.0:
+ resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
+ engines: {node: '>=12'}
+
+ /is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
+ /is-negative-zero@2.0.2:
+ resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ /is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ /is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /is-primitive@3.0.1:
+ resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==}
+ engines: {node: '>=0.10.0'}
+
+ /is-promise@4.0.0:
+ resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
+
+ /is-reference@1.2.1:
+ resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+ dependencies:
+ '@types/estree': 1.0.0
+
+ /is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-shared-array-buffer@1.0.2:
+ resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-ssh@1.4.0:
+ resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==}
+ dependencies:
+ protocols: 2.0.1
+
+ /is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ /is-string@1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /is-typed-array@1.1.10:
+ resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ dev: true
+
+ /is-typedarray@1.0.0:
+ resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
+ dev: false
+
+ /is-unicode-supported@1.3.0:
+ resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
+ engines: {node: '>=12'}
+
+ /is-weakref@1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.2
+ dev: true
+
+ /is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+ dependencies:
+ is-docker: 2.2.1
+
+ /isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ /isstream@0.1.2:
+ resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
+ dev: false
+
+ /jiti@1.17.2:
+ resolution: {integrity: sha512-Xf0nU8+8wuiQpLcqdb2HRyHqYwGk2Pd+F7kstyp20ZuqTyCmB9dqpX2NxaxFc1kovraa2bG6c1RL3W7XfapiZg==}
+ hasBin: true
+
+ /js-sdsl@4.3.0:
+ resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
+
+ /js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+
+ /jsbi@3.2.5:
+ resolution: {integrity: sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==}
+ optional: true
+
+ /jsbn@0.1.1:
+ resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
+ dev: false
+
+ /jsesc@0.5.0:
+ resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
+ hasBin: true
+ dev: true
+
+ /jsesc@2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /jsesc@3.0.2:
+ resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ dev: false
+
+ /json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ /json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ /json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: false
+
+ /json-schema-typed@8.0.1:
+ resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==}
+ dev: false
+
+ /json-schema@0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+ dev: false
+
+ /json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ dev: false
+
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ dev: true
+
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ /jsonc-eslint-parser@2.2.0:
+ resolution: {integrity: sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.8.2
+ eslint-visitor-keys: 3.3.0
+ espree: 9.5.0
+ semver: 7.3.8
+ dev: true
+
+ /jsonc-parser@3.2.0:
+ resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.0
+ optionalDependencies:
+ graceful-fs: 4.2.10
+
+ /jsonwebtoken@9.0.0:
+ resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==}
+ engines: {node: '>=12', npm: '>=6'}
+ dependencies:
+ jws: 3.2.2
+ lodash: 4.17.21
+ ms: 2.1.3
+ semver: 7.3.8
+ optional: true
+
+ /jsprim@1.4.2:
+ resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==}
+ engines: {node: '>=0.6.0'}
+ dependencies:
+ assert-plus: 1.0.0
+ extsprintf: 1.3.0
+ json-schema: 0.4.0
+ verror: 1.10.0
+ dev: false
+
+ /jwa@1.4.1:
+ resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+ optional: true
+
+ /jwa@2.0.0:
+ resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==}
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+ optional: true
+
+ /jws@3.2.2:
+ resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
+ dependencies:
+ jwa: 1.4.1
+ safe-buffer: 5.2.1
+ optional: true
+
+ /jws@4.0.0:
+ resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
+ dependencies:
+ jwa: 2.0.0
+ safe-buffer: 5.2.1
+ optional: true
+
+ /keyv@4.5.2:
+ resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==}
+ dependencies:
+ json-buffer: 3.0.1
+ dev: false
+
+ /kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /klona@2.0.6:
+ resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
+ engines: {node: '>= 8'}
+
+ /knitwork@1.0.0:
+ resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==}
+
+ /kolorist@1.7.0:
+ resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==}
+ dev: true
+
+ /lang-detector@1.0.6:
+ resolution: {integrity: sha512-YRt/OzgBlrCf8AGiFLWXuqbvEuOI9xHJQe73iKRGGfOZrylDyBAMUWWhWwVdCQxxX0yN5V52PDypqXnlVb4C/w==}
+ dependencies:
+ underscore: 1.13.6
+ dev: false
+
+ /lazystream@1.0.1:
+ resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
+ engines: {node: '>= 0.6.3'}
+ dependencies:
+ readable-stream: 2.3.8
+
+ /levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
+ /lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ /listhen@1.0.4:
+ resolution: {integrity: sha512-r94k7kmXHb8e8wpv7+UP/qqhhD+j/9TgX19QKim2cEJuWCLwlTw+5BkCFmYyjhQ7Bt8KdVun/2DcD7MF2Fe3+g==}
+ dependencies:
+ clipboardy: 3.0.0
+ colorette: 2.0.19
+ defu: 6.1.2
+ get-port-please: 3.0.1
+ http-shutdown: 1.2.2
+ ip-regex: 5.0.0
+ node-forge: 1.3.1
+ ufo: 1.1.1
+
+ /local-pkg@0.4.3:
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ engines: {node: '>=14'}
+
+ /locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-locate: 4.1.0
+ dev: true
+
+ /locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+
+ /locate-path@7.2.0:
+ resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-locate: 6.0.0
+ dev: false
+
+ /lodash._reinterpolate@3.0.0:
+ resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==}
+
+ /lodash.assignin@4.2.0:
+ resolution: {integrity: sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==}
+ dev: false
+
+ /lodash.bind@4.2.1:
+ resolution: {integrity: sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==}
+ dev: false
+
+ /lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ /lodash.defaults@4.2.0:
+ resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
+
+ /lodash.difference@4.5.0:
+ resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==}
+
+ /lodash.filter@4.6.0:
+ resolution: {integrity: sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==}
+ dev: false
+
+ /lodash.flatten@4.4.0:
+ resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
+
+ /lodash.foreach@4.5.0:
+ resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
+ dev: false
+
+ /lodash.isarguments@3.1.0:
+ resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
+
+ /lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ /lodash.map@4.6.0:
+ resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==}
+ dev: false
+
+ /lodash.memoize@4.1.2:
+ resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
+ /lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ /lodash.pick@4.4.0:
+ resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==}
+
+ /lodash.reduce@4.6.0:
+ resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==}
+ dev: false
+
+ /lodash.reject@4.6.0:
+ resolution: {integrity: sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==}
+ dev: false
+
+ /lodash.some@4.6.0:
+ resolution: {integrity: sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==}
+ dev: false
+
+ /lodash.template@4.5.0:
+ resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==}
+ dependencies:
+ lodash._reinterpolate: 3.0.0
+ lodash.templatesettings: 4.2.0
+
+ /lodash.templatesettings@4.2.0:
+ resolution: {integrity: sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==}
+ dependencies:
+ lodash._reinterpolate: 3.0.0
+
+ /lodash.union@4.6.0:
+ resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==}
+
+ /lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ /log-symbols@5.1.0:
+ resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}
+ engines: {node: '>=12'}
+ dependencies:
+ chalk: 5.2.0
+ is-unicode-supported: 1.3.0
+
+ /longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+ dev: false
+
+ /lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ dependencies:
+ yallist: 3.1.1
+
+ /lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+
+ /lru-cache@7.18.3:
+ resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
+ engines: {node: '>=12'}
+
+ /magic-string@0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+ dependencies:
+ sourcemap-codec: 1.4.8
+
+ /magic-string@0.27.0:
+ resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /magic-string@0.30.0:
+ resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.14
+
+ /make-dir@3.1.0:
+ resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
+ engines: {node: '>=8'}
+ dependencies:
+ semver: 6.3.0
+
+ /markdown-table@3.0.3:
+ resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
+ dev: false
+
+ /marked@4.2.12:
+ resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==}
+ engines: {node: '>= 12'}
+ hasBin: true
+ dev: false
+
+ /mdast-util-find-and-replace@2.2.2:
+ resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ escape-string-regexp: 5.0.0
+ unist-util-is: 5.2.1
+ unist-util-visit-parents: 5.1.3
+ dev: false
+
+ /mdast-util-from-markdown@0.8.5:
+ resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-string: 2.0.0
+ micromark: 2.11.4
+ parse-entities: 2.0.0
+ unist-util-stringify-position: 2.0.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /mdast-util-from-markdown@1.3.0:
+ resolution: {integrity: sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ '@types/unist': 2.0.6
+ decode-named-character-reference: 1.0.2
+ mdast-util-to-string: 3.1.1
+ micromark: 3.1.0
+ micromark-util-decode-numeric-character-reference: 1.0.0
+ micromark-util-decode-string: 1.0.2
+ micromark-util-normalize-identifier: 1.0.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ unist-util-stringify-position: 3.0.3
+ uvu: 0.5.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /mdast-util-gfm-autolink-literal@1.0.3:
+ resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ ccount: 2.0.1
+ mdast-util-find-and-replace: 2.2.2
+ micromark-util-character: 1.1.0
+ dev: false
+
+ /mdast-util-gfm-footnote@1.0.2:
+ resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ micromark-util-normalize-identifier: 1.0.0
+ dev: false
+
+ /mdast-util-gfm-strikethrough@1.0.3:
+ resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ dev: false
+
+ /mdast-util-gfm-table@1.0.7:
+ resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ markdown-table: 3.0.3
+ mdast-util-from-markdown: 1.3.0
+ mdast-util-to-markdown: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /mdast-util-gfm-task-list-item@1.0.2:
+ resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ dev: false
+
+ /mdast-util-gfm@2.0.2:
+ resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==}
+ dependencies:
+ mdast-util-from-markdown: 1.3.0
+ mdast-util-gfm-autolink-literal: 1.0.3
+ mdast-util-gfm-footnote: 1.0.2
+ mdast-util-gfm-strikethrough: 1.0.3
+ mdast-util-gfm-table: 1.0.7
+ mdast-util-gfm-task-list-item: 1.0.2
+ mdast-util-to-markdown: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /mdast-util-phrasing@3.0.1:
+ resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ unist-util-is: 5.2.1
+ dev: false
+
+ /mdast-util-to-markdown@1.5.0:
+ resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ '@types/unist': 2.0.6
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 3.0.1
+ mdast-util-to-string: 3.1.1
+ micromark-util-decode-string: 1.0.2
+ unist-util-visit: 4.1.2
+ zwitch: 2.0.4
+ dev: false
+
+ /mdast-util-to-string@2.0.0:
+ resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==}
+ dev: true
+
+ /mdast-util-to-string@3.1.1:
+ resolution: {integrity: sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ dev: false
+
+ /mdast@3.0.0:
+ resolution: {integrity: sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==}
+ deprecated: '`mdast` was renamed to `remark`'
+ dev: false
+
+ /mdn-data@2.0.14:
+ resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+
+ /mdn-data@2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+ dev: true
+
+ /media-typer@0.3.0:
+ resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /memory-fs@0.5.0:
+ resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==}
+ engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
+ dependencies:
+ errno: 0.1.8
+ readable-stream: 2.3.8
+
+ /merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ /micromark-core-commonmark@1.0.6:
+ resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==}
+ dependencies:
+ decode-named-character-reference: 1.0.2
+ micromark-factory-destination: 1.0.0
+ micromark-factory-label: 1.0.2
+ micromark-factory-space: 1.0.0
+ micromark-factory-title: 1.0.2
+ micromark-factory-whitespace: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-chunked: 1.0.0
+ micromark-util-classify-character: 1.0.0
+ micromark-util-html-tag-name: 1.1.0
+ micromark-util-normalize-identifier: 1.0.0
+ micromark-util-resolve-all: 1.0.0
+ micromark-util-subtokenize: 1.0.2
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-autolink-literal@1.0.3:
+ resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-sanitize-uri: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-footnote@1.0.4:
+ resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==}
+ dependencies:
+ micromark-core-commonmark: 1.0.6
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-normalize-identifier: 1.0.0
+ micromark-util-sanitize-uri: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-strikethrough@1.0.4:
+ resolution: {integrity: sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==}
+ dependencies:
+ micromark-util-chunked: 1.0.0
+ micromark-util-classify-character: 1.0.0
+ micromark-util-resolve-all: 1.0.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-table@1.0.5:
+ resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm-tagfilter@1.0.1:
+ resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==}
+ dependencies:
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-extension-gfm-task-list-item@1.0.3:
+ resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-extension-gfm@2.0.1:
+ resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==}
+ dependencies:
+ micromark-extension-gfm-autolink-literal: 1.0.3
+ micromark-extension-gfm-footnote: 1.0.4
+ micromark-extension-gfm-strikethrough: 1.0.4
+ micromark-extension-gfm-table: 1.0.5
+ micromark-extension-gfm-tagfilter: 1.0.1
+ micromark-extension-gfm-task-list-item: 1.0.3
+ micromark-util-combine-extensions: 1.0.0
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-factory-destination@1.0.0:
+ resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-factory-label@1.0.2:
+ resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-factory-space@1.0.0:
+ resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-factory-title@1.0.2:
+ resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-factory-whitespace@1.0.0:
+ resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==}
+ dependencies:
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-util-character@1.1.0:
+ resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==}
+ dependencies:
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-util-chunked@1.0.0:
+ resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==}
+ dependencies:
+ micromark-util-symbol: 1.0.1
+ dev: false
+
+ /micromark-util-classify-character@1.0.0:
+ resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-util-combine-extensions@1.0.0:
+ resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==}
+ dependencies:
+ micromark-util-chunked: 1.0.0
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-util-decode-numeric-character-reference@1.0.0:
+ resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==}
+ dependencies:
+ micromark-util-symbol: 1.0.1
+ dev: false
+
+ /micromark-util-decode-string@1.0.2:
+ resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==}
+ dependencies:
+ decode-named-character-reference: 1.0.2
+ micromark-util-character: 1.1.0
+ micromark-util-decode-numeric-character-reference: 1.0.0
+ micromark-util-symbol: 1.0.1
+ dev: false
+
+ /micromark-util-encode@1.0.1:
+ resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==}
+ dev: false
+
+ /micromark-util-html-tag-name@1.1.0:
+ resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==}
+ dev: false
+
+ /micromark-util-normalize-identifier@1.0.0:
+ resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==}
+ dependencies:
+ micromark-util-symbol: 1.0.1
+ dev: false
+
+ /micromark-util-resolve-all@1.0.0:
+ resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==}
+ dependencies:
+ micromark-util-types: 1.0.2
+ dev: false
+
+ /micromark-util-sanitize-uri@1.1.0:
+ resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==}
+ dependencies:
+ micromark-util-character: 1.1.0
+ micromark-util-encode: 1.0.1
+ micromark-util-symbol: 1.0.1
+ dev: false
+
+ /micromark-util-subtokenize@1.0.2:
+ resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==}
+ dependencies:
+ micromark-util-chunked: 1.0.0
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ dev: false
+
+ /micromark-util-symbol@1.0.1:
+ resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==}
+ dev: false
+
+ /micromark-util-types@1.0.2:
+ resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==}
+ dev: false
+
+ /micromark@2.11.4:
+ resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==}
+ dependencies:
+ debug: 4.3.4
+ parse-entities: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /micromark@3.1.0:
+ resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==}
+ dependencies:
+ '@types/debug': 4.1.7
+ debug: 4.3.4
+ decode-named-character-reference: 1.0.2
+ micromark-core-commonmark: 1.0.6
+ micromark-factory-space: 1.0.0
+ micromark-util-character: 1.1.0
+ micromark-util-chunked: 1.0.0
+ micromark-util-combine-extensions: 1.0.0
+ micromark-util-decode-numeric-character-reference: 1.0.0
+ micromark-util-encode: 1.0.1
+ micromark-util-normalize-identifier: 1.0.0
+ micromark-util-resolve-all: 1.0.0
+ micromark-util-sanitize-uri: 1.1.0
+ micromark-util-subtokenize: 1.0.2
+ micromark-util-symbol: 1.0.1
+ micromark-util-types: 1.0.2
+ uvu: 0.5.6
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+
+ /micromatch@4.0.7:
+ resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+ dev: false
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+
+ /mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /mime@2.5.2:
+ resolution: {integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==}
+ engines: {node: '>=4.0.0'}
+ hasBin: true
+
+ /mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ /mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /minimatch@3.0.8:
+ resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ /minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+ dependencies:
+ yallist: 4.0.0
+
+ /minipass@4.2.5:
+ resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==}
+ engines: {node: '>=8'}
+
+ /minizlib@2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ /mkdirp-classic@0.5.3:
+ resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
+ dev: false
+
+ /mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ /mlly@1.2.0:
+ resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==}
+ dependencies:
+ acorn: 8.8.2
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ ufo: 1.1.1
+
+ /mri@1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
+
+ /mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ /mute-stream@0.0.8:
+ resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+
+ /nanoid@3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ /nanoid@4.0.2:
+ resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==}
+ engines: {node: ^14 || ^16 || >=18}
+ hasBin: true
+
+ /napi-build-utils@1.0.2:
+ resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
+ dev: false
+
+ /natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+ dev: true
+
+ /natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ /nitropack@2.3.1:
+ resolution: {integrity: sha512-8cmPZHDweb7O6TmzQyA/ejkG1dzdJLmir1nVqJBdR7hWC/3xOI3y3ac1o8v0o9hVM7YP0HRIEj1h+FVbYJi2pQ==}
+ engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ hasBin: true
+ dependencies:
+ '@cloudflare/kv-asset-handler': 0.3.0
+ '@netlify/functions': 1.4.0
+ '@rollup/plugin-alias': 4.0.3(rollup@3.19.1)
+ '@rollup/plugin-commonjs': 24.0.1(rollup@3.19.1)
+ '@rollup/plugin-inject': 5.0.3(rollup@3.19.1)
+ '@rollup/plugin-json': 6.0.0(rollup@3.19.1)
+ '@rollup/plugin-node-resolve': 15.0.1(rollup@3.19.1)
+ '@rollup/plugin-replace': 5.0.2(rollup@3.19.1)
+ '@rollup/plugin-terser': 0.4.0(rollup@3.19.1)
+ '@rollup/plugin-wasm': 6.1.2(rollup@3.19.1)
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ '@vercel/nft': 0.22.6
+ archiver: 5.3.1
+ c12: 1.2.0
+ chalk: 5.2.0
+ chokidar: 3.5.3
+ consola: 2.15.3
+ cookie-es: 0.5.0
+ defu: 6.1.2
+ destr: 1.2.2
+ dot-prop: 7.2.0
+ esbuild: 0.17.11
+ escape-string-regexp: 5.0.0
+ etag: 1.8.1
+ fs-extra: 11.1.1
+ globby: 13.1.3
+ gzip-size: 7.0.0
+ h3: 1.12.0
+ hookable: 5.5.1
+ http-proxy: 1.18.1
+ is-primitive: 3.0.1
+ jiti: 1.17.2
+ klona: 2.0.6
+ knitwork: 1.0.0
+ listhen: 1.0.4
+ mime: 3.0.0
+ mlly: 1.2.0
+ mri: 1.2.0
+ node-fetch-native: 1.0.2
+ ofetch: 1.0.1
+ ohash: 1.0.0
+ pathe: 1.1.0
+ perfect-debounce: 0.1.3
+ pkg-types: 1.0.2
+ pretty-bytes: 6.1.0
+ radix3: 1.0.0
+ rollup: 3.19.1
+ rollup-plugin-visualizer: 5.9.0(rollup@3.19.1)
+ scule: 1.0.0
+ semver: 7.3.8
+ serve-placeholder: 2.0.1
+ serve-static: 1.15.0
+ source-map-support: 0.5.21
+ std-env: 3.3.2
+ ufo: 1.1.1
+ unenv: 1.2.2
+ unimport: 3.0.2(rollup@3.19.1)
+ unstorage: 1.4.0
+ transitivePeerDependencies:
+ - debug
+ - encoding
+ - supports-color
+ - uWebSockets.js
+
+ /node-abi@3.40.0:
+ resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==}
+ engines: {node: '>=10'}
+ dependencies:
+ semver: 7.3.8
+ dev: false
+
+ /node-abort-controller@3.1.1:
+ resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==}
+ optional: true
+
+ /node-addon-api@5.1.0:
+ resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
+ dev: false
+
+ /node-domexception@1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+
+ /node-fetch-native@1.0.2:
+ resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==}
+
+ /node-fetch-native@1.6.4:
+ resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+
+ /node-fetch@2.6.7:
+ resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: false
+
+ /node-fetch@2.6.9:
+ resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+
+ /node-fetch@3.3.1:
+ resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ data-uri-to-buffer: 4.0.1
+ fetch-blob: 3.2.0
+ formdata-polyfill: 4.0.10
+
+ /node-forge@1.3.1:
+ resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
+ engines: {node: '>= 6.13.0'}
+
+ /node-gyp-build@4.6.0:
+ resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
+ hasBin: true
+
+ /node-html-markdown@1.3.0:
+ resolution: {integrity: sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ node-html-parser: 6.1.5
+ dev: false
+
+ /node-html-parser@6.1.5:
+ resolution: {integrity: sha512-fAaM511feX++/Chnhe475a0NHD8M7AxDInsqQpz6x63GRF7xYNdS8Vo5dKsIVPgsOvG7eioRRTZQnWBrhDHBSg==}
+ dependencies:
+ css-select: 5.1.0
+ he: 1.2.0
+ dev: false
+
+ /node-releases@2.0.10:
+ resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
+
+ /node-url-utils@0.4.0:
+ resolution: {integrity: sha512-cg9J2VQ0nNvrZR+edoDaAoInvGRgi2r/LCSwOwNCgVASBo0rQiDbSwa4s0MpEcpPf1p4qokC14BXMx5TPxSU5w==}
+ engines: {node: '>=0.2.x'}
+ dev: false
+
+ /nopt@5.0.0:
+ resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+
+ /normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.1
+ semver: 5.7.1
+ validate-npm-package-license: 3.0.4
+ dev: true
+
+ /normalize-package-data@3.0.3:
+ resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+ engines: {node: '>=10'}
+ dependencies:
+ hosted-git-info: 4.1.0
+ is-core-module: 2.11.0
+ semver: 7.3.8
+ validate-npm-package-license: 3.0.4
+ dev: false
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ /normalize-range@0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+
+ /normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+
+ /npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-key: 3.1.1
+
+ /npmlog@5.0.1:
+ resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
+ dependencies:
+ are-we-there-yet: 2.0.0
+ console-control-strings: 1.1.0
+ gauge: 3.0.2
+ set-blocking: 2.0.0
+
+ /nth-check@1.0.2:
+ resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==}
+ dependencies:
+ boolbase: 1.0.0
+ dev: false
+
+ /nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ dependencies:
+ boolbase: 1.0.0
+
+ /nuxi@3.3.1:
+ resolution: {integrity: sha512-GJaJR0NtH05W7xrtFoJ3sX/eUhIMoqWj63QNFekqhrfD8LmXrlWrx9Q8GCFNc3nqk0oIcngJijyGNfWtTtpSxw==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ /nuxt@3.3.1(eslint@8.36.0)(typescript@4.9.5):
+ resolution: {integrity: sha512-1DTFXEr+FlZO/hyw765cb9a/AiGysHIGLNl8NGJtURwUWC4gd+Z3y5DnL04PE5fVJ08yB/KJwc0t6StijbL8wQ==}
+ engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
+ hasBin: true
+ dependencies:
+ '@nuxt/devalue': 2.0.0
+ '@nuxt/kit': 3.3.1
+ '@nuxt/schema': 3.3.1
+ '@nuxt/telemetry': 2.1.10
+ '@nuxt/ui-templates': 1.1.1
+ '@nuxt/vite-builder': 3.3.1(eslint@8.36.0)(typescript@4.9.5)(vue@3.2.47)
+ '@unhead/ssr': 1.1.23
+ '@unhead/vue': 1.1.23(vue@3.2.47)
+ '@vue/reactivity': 3.2.47
+ '@vue/shared': 3.2.47
+ chokidar: 3.5.3
+ cookie-es: 0.5.0
+ defu: 6.1.2
+ destr: 1.2.2
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ fs-extra: 11.1.1
+ globby: 13.1.3
+ h3: 1.12.0
+ hash-sum: 2.0.0
+ hookable: 5.5.1
+ jiti: 1.17.2
+ knitwork: 1.0.0
+ magic-string: 0.30.0
+ mlly: 1.2.0
+ nitropack: 2.3.1
+ nuxi: 3.3.1
+ ofetch: 1.0.1
+ ohash: 1.0.0
+ pathe: 1.1.0
+ perfect-debounce: 0.1.3
+ scule: 1.0.0
+ strip-literal: 1.0.1
+ ufo: 1.1.1
+ unctx: 2.1.2
+ unenv: 1.2.2
+ unimport: 3.0.2
+ unplugin: 1.3.0
+ untyped: 1.2.2
+ vue: 3.2.47
+ vue-bundle-renderer: 1.0.2
+ vue-devtools-stub: 0.1.0
+ vue-router: 4.1.6(vue@3.2.47)
+ transitivePeerDependencies:
+ - '@types/node'
+ - debug
+ - encoding
+ - eslint
+ - less
+ - meow
+ - optionator
+ - rollup
+ - sass
+ - stylelint
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - typescript
+ - uWebSockets.js
+ - vls
+ - vti
+ - vue-tsc
+
+ /oauth-sign@0.9.0:
+ resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==}
+ dev: false
+
+ /object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ /object-inspect@1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: true
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign@4.1.4:
+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.values@1.1.6:
+ resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /ofetch@1.0.1:
+ resolution: {integrity: sha512-icBz2JYfEpt+wZz1FRoGcrMigjNKjzvufE26m9+yUiacRQRHwnNlGRPiDnW4op7WX/MR6aniwS8xw8jyVelF2g==}
+ dependencies:
+ destr: 1.2.2
+ node-fetch-native: 1.0.2
+ ufo: 1.1.1
+
+ /ohash@1.0.0:
+ resolution: {integrity: sha512-kxSyzq6tt+6EE/xCnD1XaFhCCjUNUaz3X30rJp6mnjGLXAAvuPFqohMdv0aScWzajR45C29HyBaXZ8jXBwnh9A==}
+
+ /ohash@1.1.3:
+ resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
+
+ /on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ mimic-fn: 2.1.0
+
+ /open@8.4.2:
+ resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ /openai@3.2.1:
+ resolution: {integrity: sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==}
+ dependencies:
+ axios: 0.26.1
+ form-data: 4.0.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /optionator@0.9.1:
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ 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
+
+ /ora@6.1.2:
+ resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ bl: 5.1.0
+ chalk: 5.2.0
+ cli-cursor: 4.0.0
+ cli-spinners: 2.7.0
+ is-interactive: 2.0.0
+ is-unicode-supported: 1.3.0
+ log-symbols: 5.1.0
+ strip-ansi: 7.0.1
+ wcwidth: 1.0.1
+
+ /os-tmpdir@1.0.2:
+ resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
+ engines: {node: '>=0.10.0'}
+
+ /p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+ dependencies:
+ p-try: 2.2.0
+ dev: true
+
+ /p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+
+ /p-limit@4.0.0:
+ resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ yocto-queue: 1.0.0
+ dev: false
+
+ /p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-limit: 2.3.0
+ dev: true
+
+ /p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+
+ /p-locate@6.0.0:
+ resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ p-limit: 4.0.0
+ dev: false
+
+ /p-timeout@6.1.1:
+ resolution: {integrity: sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==}
+ engines: {node: '>=14.16'}
+ dev: false
+
+ /p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+
+ /parse-entities@2.0.0:
+ resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
+ dependencies:
+ character-entities: 1.2.4
+ character-entities-legacy: 1.1.4
+ character-reference-invalid: 1.1.4
+ is-alphanumerical: 1.0.4
+ is-decimal: 1.0.4
+ is-hexadecimal: 1.0.4
+ dev: true
+
+ /parse-git-config@3.0.0:
+ resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==}
+ engines: {node: '>=8'}
+ dependencies:
+ git-config-path: 2.0.0
+ ini: 1.3.8
+
+ /parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ /parse-path@7.0.0:
+ resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==}
+ dependencies:
+ protocols: 2.0.1
+
+ /parse-url@8.1.0:
+ resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==}
+ dependencies:
+ parse-path: 7.0.0
+
+ /parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
+ /path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ /path-exists@5.0.0:
+ resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: false
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ /path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ /pathe@1.1.0:
+ resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
+
+ /pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+
+ /perfect-debounce@0.1.3:
+ resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==}
+
+ /performance-now@2.1.0:
+ resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
+ dev: false
+
+ /picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ /pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ /pkg-types@1.0.2:
+ resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==}
+ dependencies:
+ jsonc-parser: 3.2.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+
+ /pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /postcss-calc@8.2.4(postcss@8.4.21):
+ resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
+ peerDependencies:
+ postcss: ^8.2.2
+ dependencies:
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+ postcss-value-parser: 4.2.0
+
+ /postcss-colormin@5.3.1(postcss@8.4.21):
+ resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-api: 3.0.0
+ colord: 2.9.3
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-convert-values@5.1.3(postcss@8.4.21):
+ resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-discard-comments@5.1.2(postcss@8.4.21):
+ resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /postcss-discard-duplicates@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /postcss-discard-empty@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /postcss-discard-overridden@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /postcss-import-resolver@2.0.0:
+ resolution: {integrity: sha512-y001XYgGvVwgxyxw9J1a5kqM/vtmIQGzx34g0A0Oy44MFcy/ZboZw1hu/iN3VYFjSTRzbvd7zZJJz0Kh0AGkTw==}
+ dependencies:
+ enhanced-resolve: 4.5.0
+
+ /postcss-import@15.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.1
+
+ /postcss-merge-longhand@5.1.7(postcss@8.4.21):
+ resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+ stylehacks: 5.1.1(postcss@8.4.21)
+
+ /postcss-merge-rules@5.1.4(postcss@8.4.21):
+ resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-api: 3.0.0
+ cssnano-utils: 3.1.0(postcss@8.4.21)
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+
+ /postcss-minify-font-values@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-minify-gradients@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ colord: 2.9.3
+ cssnano-utils: 3.1.0(postcss@8.4.21)
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-minify-params@5.1.4(postcss@8.4.21):
+ resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ cssnano-utils: 3.1.0(postcss@8.4.21)
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-minify-selectors@5.2.1(postcss@8.4.21):
+ resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+
+ /postcss-normalize-charset@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+
+ /postcss-normalize-display-values@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-positions@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-repeat-style@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-string@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-timing-functions@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-unicode@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-url@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ normalize-url: 6.1.0
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-normalize-whitespace@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-ordered-values@5.1.3(postcss@8.4.21):
+ resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ cssnano-utils: 3.1.0(postcss@8.4.21)
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-reduce-initial@5.1.2(postcss@8.4.21):
+ resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ caniuse-api: 3.0.0
+ postcss: 8.4.21
+
+ /postcss-reduce-transforms@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+
+ /postcss-selector-parser@6.0.11:
+ resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ /postcss-svgo@5.1.0(postcss@8.4.21):
+ resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-value-parser: 4.2.0
+ svgo: 2.8.0
+
+ /postcss-unique-selectors@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+
+ /postcss-url@10.1.3(postcss@8.4.21):
+ resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ postcss: ^8.0.0
+ dependencies:
+ make-dir: 3.1.0
+ mime: 2.5.2
+ minimatch: 3.0.8
+ postcss: 8.4.21
+ xxhashjs: 0.2.2
+
+ /postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ /postcss@8.4.21:
+ resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ /prebuild-install@7.1.1:
+ resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ detect-libc: 2.0.1
+ expand-template: 2.0.3
+ github-from-package: 0.0.0
+ minimist: 1.2.8
+ mkdirp-classic: 0.5.3
+ napi-build-utils: 1.0.2
+ node-abi: 3.40.0
+ pump: 3.0.0
+ rc: 1.2.8
+ simple-get: 4.0.1
+ tar-fs: 2.1.1
+ tunnel-agent: 0.6.0
+ dev: false
+
+ /prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ /pretty-bytes@6.1.0:
+ resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+
+ /priorityqueuejs@1.0.0:
+ resolution: {integrity: sha512-lg++21mreCEOuGWTbO5DnJKAdxfjrdN0S9ysoW9SzdSJvbkWpkaDdpG/cdsPCsEnoLUwmd9m3WcZhngW7yKA2g==}
+ optional: true
+
+ /prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ /process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+ optional: true
+
+ /protocols@2.0.1:
+ resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==}
+
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: false
+
+ /prr@1.0.1:
+ resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+
+ /psl@1.9.0:
+ resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ dev: false
+
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+
+ /qs@6.5.3:
+ resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
+ engines: {node: '>=0.6'}
+ dev: false
+
+ /querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+ optional: true
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ /quick-lru@6.1.1:
+ resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /radix3@1.0.0:
+ resolution: {integrity: sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==}
+
+ /radix3@1.1.2:
+ resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
+
+ /randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+ dependencies:
+ safe-buffer: 5.2.1
+
+ /range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ /rc9@2.0.1:
+ resolution: {integrity: sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA==}
+ dependencies:
+ defu: 6.1.2
+ destr: 1.2.2
+ flat: 5.0.2
+
+ /rc@1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+ dependencies:
+ deep-extend: 0.6.0
+ ini: 1.3.8
+ minimist: 1.2.8
+ strip-json-comments: 2.0.1
+ dev: false
+
+ /read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ dependencies:
+ pify: 2.3.0
+
+ /read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+ dev: true
+
+ /read-pkg-up@9.1.0:
+ resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ find-up: 6.3.0
+ read-pkg: 7.1.0
+ type-fest: 2.19.0
+ dev: false
+
+ /read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@types/normalize-package-data': 2.4.1
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+ dev: true
+
+ /read-pkg@7.1.0:
+ resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==}
+ engines: {node: '>=12.20'}
+ dependencies:
+ '@types/normalize-package-data': 2.4.1
+ normalize-package-data: 3.0.3
+ parse-json: 5.2.0
+ type-fest: 2.19.0
+ dev: false
+
+ /readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ /readdir-glob@1.1.2:
+ resolution: {integrity: sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==}
+ dependencies:
+ minimatch: 5.1.6
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+
+ /redis-errors@1.2.0:
+ resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
+ engines: {node: '>=4'}
+
+ /redis-parser@3.0.0:
+ resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
+ engines: {node: '>=4'}
+ dependencies:
+ redis-errors: 1.2.0
+
+ /regexp-tree@0.1.24:
+ resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==}
+ hasBin: true
+ dev: true
+
+ /regexp.prototype.flags@1.4.3:
+ resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ functions-have-names: 1.2.3
+ dev: true
+
+ /regexpp@3.2.0:
+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /regjsparser@0.9.1:
+ resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==}
+ hasBin: true
+ dependencies:
+ jsesc: 0.5.0
+ dev: true
+
+ /remark-gfm@3.0.1:
+ resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-gfm: 2.0.2
+ micromark-extension-gfm: 2.0.1
+ unified: 10.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /remark-parse@10.0.1:
+ resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-from-markdown: 1.3.0
+ unified: 10.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /remark-stringify@10.0.2:
+ resolution: {integrity: sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ mdast-util-to-markdown: 1.5.0
+ unified: 10.1.2
+ dev: false
+
+ /remark@14.0.2:
+ resolution: {integrity: sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==}
+ dependencies:
+ '@types/mdast': 3.0.10
+ remark-parse: 10.0.1
+ remark-stringify: 10.0.2
+ unified: 10.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /request@2.88.2:
+ resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==}
+ engines: {node: '>= 6'}
+ deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
+ dependencies:
+ aws-sign2: 0.7.0
+ aws4: 1.12.0
+ caseless: 0.12.0
+ combined-stream: 1.0.8
+ extend: 3.0.2
+ forever-agent: 0.6.1
+ form-data: 2.3.3
+ har-validator: 5.1.5
+ http-signature: 1.2.0
+ is-typedarray: 1.0.0
+ isstream: 0.1.2
+ json-stringify-safe: 5.0.1
+ mime-types: 2.1.35
+ oauth-sign: 0.9.0
+ performance-now: 2.1.0
+ qs: 6.5.3
+ safe-buffer: 5.2.1
+ tough-cookie: 2.5.0
+ tunnel-agent: 0.6.0
+ uuid: 3.4.0
+ dev: false
+
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ /require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ /resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ /resolve@1.22.1:
+ resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.11.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ /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
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+
+ /rollup-plugin-visualizer@5.9.0(rollup@3.19.1):
+ resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ peerDependencies:
+ rollup: 2.x || 3.x
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ open: 8.4.2
+ picomatch: 2.3.1
+ rollup: 3.19.1
+ source-map: 0.7.4
+ yargs: 17.7.1
+
+ /rollup@3.19.1:
+ resolution: {integrity: sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ /run-async@2.4.1:
+ resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
+ engines: {node: '>=0.12.0'}
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+
+ /rxjs@7.8.0:
+ resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
+ dependencies:
+ tslib: 2.5.0
+
+ /sade@1.8.1:
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ mri: 1.2.0
+ dev: false
+
+ /safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ /safe-regex-test@1.0.0:
+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-regex: 1.1.4
+ dev: true
+
+ /safe-regex@2.1.1:
+ resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
+ dependencies:
+ regexp-tree: 0.1.24
+ dev: true
+
+ /safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ /sax@1.2.4:
+ resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
+ optional: true
+
+ /scule@1.0.0:
+ resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==}
+
+ /seenreq@3.0.0:
+ resolution: {integrity: sha512-wSe7hb83TKkyweL8Jq5a1xuStmqfwxiJn2SXjA/Wns42aUJjlWzPzj/jWaomOCRY5ZpIRkiyh/+5pNz/20363A==}
+ dependencies:
+ node-url-utils: 0.4.0
+ dev: false
+
+ /semaphore@1.1.0:
+ resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==}
+ engines: {node: '>=0.8.0'}
+ optional: true
+
+ /semver@5.7.1:
+ resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ hasBin: true
+ dev: true
+
+ /semver@6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+
+ /semver@7.3.8:
+ resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
+ /send@0.18.0:
+ resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ /serialize-javascript@6.0.1:
+ resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==}
+ dependencies:
+ randombytes: 2.1.0
+
+ /serve-placeholder@2.0.1:
+ resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==}
+ dependencies:
+ defu: 6.1.2
+
+ /serve-static@1.15.0:
+ resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.18.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
+
+ /setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ /sharp@0.31.3:
+ resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==}
+ engines: {node: '>=14.15.0'}
+ requiresBuild: true
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.1
+ node-addon-api: 5.1.0
+ prebuild-install: 7.1.1
+ semver: 7.3.8
+ simple-get: 4.0.1
+ tar-fs: 2.1.1
+ tunnel-agent: 0.6.0
+ dev: false
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ /shiki-es@0.2.0:
+ resolution: {integrity: sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==}
+ dev: false
+
+ /side-channel@1.0.4:
+ resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ object-inspect: 1.12.3
+ dev: true
+
+ /signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ /simple-concat@1.0.1:
+ resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
+ dev: false
+
+ /simple-get@4.0.1:
+ resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
+ dependencies:
+ decompress-response: 6.0.0
+ once: 1.4.0
+ simple-concat: 1.0.1
+ dev: false
+
+ /simple-swizzle@0.2.2:
+ resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+ dependencies:
+ is-arrayish: 0.3.2
+ dev: false
+
+ /sirv@2.0.2:
+ resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@polka/url': 1.0.0-next.21
+ mrmime: 1.0.1
+ totalist: 3.0.0
+ dev: true
+
+ /slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /slash@4.0.0:
+ resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
+ engines: {node: '>=12'}
+
+ /smob@0.0.6:
+ resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==}
+
+ /source-map-js@1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
+ /sourcemap-codec@1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+
+ /spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.13
+
+ /spdx-exceptions@2.3.0:
+ resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
+
+ /spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+ dependencies:
+ spdx-exceptions: 2.3.0
+ spdx-license-ids: 3.0.13
+
+ /spdx-license-ids@3.0.13:
+ resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==}
+
+ /sshpk@1.17.0:
+ resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ asn1: 0.2.6
+ assert-plus: 1.0.0
+ bcrypt-pbkdf: 1.0.2
+ dashdash: 1.14.1
+ ecc-jsbn: 0.1.2
+ getpass: 0.1.7
+ jsbn: 0.1.1
+ safer-buffer: 2.1.2
+ tweetnacl: 0.14.5
+ dev: false
+
+ /stable@0.1.8:
+ resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
+ deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
+
+ /standard-as-callback@2.1.0:
+ resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
+
+ /statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ /std-env@3.3.2:
+ resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==}
+
+ /stoppable@1.1.0:
+ resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
+ engines: {node: '>=4', npm: '>=6'}
+ optional: true
+
+ /streamsearch@1.1.0:
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
+ engines: {node: '>=10.0.0'}
+ dev: false
+
+ /string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.0.1
+
+ /string.prototype.trim@1.2.7:
+ resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /string.prototype.trimend@1.0.6:
+ resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /string.prototype.trimstart@1.0.6:
+ resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ es-abstract: 1.21.2
+ dev: true
+
+ /string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
+
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+
+ /strip-ansi@7.0.1:
+ resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+
+ /strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ /strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: true
+
+ /strip-json-comments@2.0.1:
+ resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ /strip-literal@1.0.1:
+ resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
+ dependencies:
+ acorn: 8.8.2
+
+ /strnum@1.0.5:
+ resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
+ optional: true
+
+ /stubborn-fs@1.2.4:
+ resolution: {integrity: sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==}
+ dev: false
+
+ /stylehacks@5.1.1(postcss@8.4.21):
+ resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
+ engines: {node: ^10 || ^12 || >=14.0}
+ peerDependencies:
+ postcss: ^8.2.15
+ dependencies:
+ browserslist: 4.21.5
+ postcss: 8.4.21
+ postcss-selector-parser: 6.0.11
+
+ /supports-color@5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ /svg-tags@1.0.0:
+ resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+
+ /svgo@2.8.0:
+ resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dependencies:
+ '@trysound/sax': 0.2.0
+ commander: 7.2.0
+ css-select: 4.3.0
+ css-tree: 1.1.3
+ csso: 4.2.0
+ picocolors: 1.0.0
+ stable: 0.1.8
+
+ /tapable@1.1.3:
+ resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
+ engines: {node: '>=6'}
+
+ /tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
+ /tar-fs@2.1.1:
+ resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
+ dependencies:
+ chownr: 1.1.4
+ mkdirp-classic: 0.5.3
+ pump: 3.0.0
+ tar-stream: 2.2.0
+ dev: false
+
+ /tar-stream@2.2.0:
+ resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ /tar@6.1.13:
+ resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==}
+ engines: {node: '>=10'}
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 4.2.5
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ /terser@5.16.6:
+ resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ '@jridgewell/source-map': 0.3.2
+ acorn: 8.8.2
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
+ /text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ /theme-vitesse@0.6.4:
+ resolution: {integrity: sha512-uCn8emUUfEOKoukSZz0GqxB5q+gQ2wVEXx6+cCKWbXIjW56afkozVdosVSqXkRuML7i77tMmzMbvzcY/2uc01w==}
+ engines: {vscode: ^1.43.0}
+ dev: true
+
+ /through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ /tiny-invariant@1.3.1:
+ resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==}
+
+ /tinycolor2@1.6.0:
+ resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
+ dev: false
+
+ /tmp@0.0.33:
+ resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
+ engines: {node: '>=0.6.0'}
+ dependencies:
+ os-tmpdir: 1.0.2
+
+ /to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+
+ /toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ /totalist@3.0.0:
+ resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /tough-cookie@2.5.0:
+ resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.3.0
+ dev: false
+
+ /tough-cookie@4.1.2:
+ resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.3.0
+ universalify: 0.2.0
+ url-parse: 1.5.10
+ optional: true
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ /trough@2.1.0:
+ resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==}
+ dev: false
+
+ /trpc-nuxt@0.8.0(@trpc/client@10.18.0)(@trpc/server@10.18.0):
+ resolution: {integrity: sha512-60Xvvbr2qqePw++yQDcBq6C2atejW05h0dXf8NeDXdNQBsKEoi9nPT0rhpcqeq9KpUMM2OXzfLW6sA+11vBztg==}
+ engines: {node: ^16.13.0 || ^18.12.0}
+ peerDependencies:
+ '@trpc/client': ^10.18.0
+ '@trpc/server': ^10.18.0
+ dependencies:
+ '@trpc/client': 10.18.0(@trpc/server@10.18.0)
+ '@trpc/server': 10.18.0
+ h3: 1.12.0
+ ofetch: 1.0.1
+ ohash: 1.0.0
+ ufo: 1.1.1
+ transitivePeerDependencies:
+ - uWebSockets.js
+ dev: false
+
+ /tsconfig-paths@3.14.2:
+ resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ dev: true
+
+ /tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
+
+ /tslib@2.5.0:
+ resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
+
+ /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.6:
+ resolution: {integrity: sha512-q93WgS3lBdHlPgS0h1i+87Pt6n9K/qULIMNYZo07nSeu2z5QE2CellcAZfofVXBo2tQg9av2ZcRMQ2S2i5oadQ==}
+ hasBin: true
+ dependencies:
+ '@esbuild-kit/cjs-loader': 2.4.2
+ '@esbuild-kit/core-utils': 3.1.0
+ '@esbuild-kit/esm-loader': 2.5.5
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /tunnel-agent@0.6.0:
+ resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /tunnel@0.0.6:
+ resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
+ engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
+ optional: true
+
+ /tweetnacl@0.14.5:
+ resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
+ dev: false
+
+ /type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+
+ /type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ /type-fest@0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+
+ /type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+
+ /type-fest@2.19.0:
+ resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
+ engines: {node: '>=12.20'}
+
+ /type-fest@3.6.1:
+ resolution: {integrity: sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==}
+ engines: {node: '>=14.16'}
+
+ /type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+ dev: false
+
+ /typed-array-length@1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ is-typed-array: 1.1.10
+ dev: true
+
+ /typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ /ufo@1.1.1:
+ resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==}
+
+ /ufo@1.5.4:
+ resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+
+ /unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ dependencies:
+ call-bind: 1.0.2
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+ dev: true
+
+ /unconfig@0.3.7:
+ resolution: {integrity: sha512-1589b7oGa8ILBYpta7TndM5mLHLzHUqBfhszeZxuUBrjO/RoQ52VGVWsS3w0C0GLNxO9RPmqkf6BmIvBApaRdA==}
+ dependencies:
+ '@antfu/utils': 0.5.2
+ defu: 6.1.2
+ jiti: 1.17.2
+ dev: true
+
+ /uncrypto@0.1.3:
+ resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+
+ /unctx@2.1.2:
+ resolution: {integrity: sha512-KK18aLRKe3OlbPyHbXAkIWSU3xK8GInomXfA7fzDMGFXQ1crX1UWrCzKesVXeUyHIayHUrnTvf87IPCKMyeKTg==}
+ dependencies:
+ acorn: 8.8.2
+ estree-walker: 3.0.3
+ magic-string: 0.27.0
+ unplugin: 1.3.0
+
+ /underscore@1.13.6:
+ resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==}
+ dev: false
+
+ /undici@5.21.0:
+ resolution: {integrity: sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==}
+ engines: {node: '>=12.18'}
+ dependencies:
+ busboy: 1.6.0
+ dev: false
+
+ /unenv@1.10.0:
+ resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
+ dependencies:
+ consola: 3.2.3
+ defu: 6.1.4
+ mime: 3.0.0
+ node-fetch-native: 1.6.4
+ pathe: 1.1.2
+
+ /unenv@1.2.2:
+ resolution: {integrity: sha512-SYqIFLFC4wYtLyxD6RyAfoK/dkgvW85BfNdiYvroyfrL4cyLkoigSldSBBiUTgtxwb4pcE0zexw502DghVWeuA==}
+ dependencies:
+ defu: 6.1.2
+ mime: 3.0.0
+ node-fetch-native: 1.0.2
+ pathe: 1.1.0
+
+ /unhead@1.1.23:
+ resolution: {integrity: sha512-nM74sM3+puqhHLC9cbwk0rOsjZR41aP0UJeQcoYVuzFlX0+abECgPkpkSI+/HZsXeRVTGxs9WWmjiFHaG18DrQ==}
+ dependencies:
+ '@unhead/dom': 1.1.23
+ '@unhead/schema': 1.1.23
+ '@unhead/shared': 1.1.23
+ hookable: 5.5.1
+
+ /unified@10.1.2:
+ resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
+ dependencies:
+ '@types/unist': 2.0.6
+ bail: 2.0.2
+ extend: 3.0.2
+ is-buffer: 2.0.5
+ is-plain-obj: 4.1.0
+ trough: 2.1.0
+ vfile: 5.3.7
+ dev: false
+
+ /unimport@2.2.4:
+ resolution: {integrity: sha512-qMgmeEGqqrrmEtm0dqxMG37J6xBtrriqxq9hILvDb+e6l2F0yTnJomLoCCp0eghLR7bYGeBsUU5Y0oyiUYhViw==}
+ dependencies:
+ '@rollup/pluginutils': 5.0.2
+ escape-string-regexp: 5.0.0
+ fast-glob: 3.2.12
+ local-pkg: 0.4.3
+ magic-string: 0.27.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ strip-literal: 1.0.1
+ unplugin: 1.3.0
+ transitivePeerDependencies:
+ - rollup
+
+ /unimport@3.0.2:
+ resolution: {integrity: sha512-OQ0hShpcerS1PSsISsyn/NV2dGe5xfdUn4p5nwOodq0iqq5xxYQrTidHqlFGjxIliPDtDJp80OeySzyPTjYHmA==}
+ dependencies:
+ '@rollup/pluginutils': 5.0.2
+ escape-string-regexp: 5.0.0
+ fast-glob: 3.2.12
+ local-pkg: 0.4.3
+ magic-string: 0.30.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ strip-literal: 1.0.1
+ unplugin: 1.3.0
+ transitivePeerDependencies:
+ - rollup
+
+ /unimport@3.0.2(rollup@3.19.1):
+ resolution: {integrity: sha512-OQ0hShpcerS1PSsISsyn/NV2dGe5xfdUn4p5nwOodq0iqq5xxYQrTidHqlFGjxIliPDtDJp80OeySzyPTjYHmA==}
+ dependencies:
+ '@rollup/pluginutils': 5.0.2(rollup@3.19.1)
+ escape-string-regexp: 5.0.0
+ fast-glob: 3.2.12
+ local-pkg: 0.4.3
+ magic-string: 0.30.0
+ mlly: 1.2.0
+ pathe: 1.1.0
+ pkg-types: 1.0.2
+ scule: 1.0.0
+ strip-literal: 1.0.1
+ unplugin: 1.3.0
+ transitivePeerDependencies:
+ - rollup
+
+ /unist-util-is@5.2.1:
+ resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
+ dependencies:
+ '@types/unist': 2.0.6
+ dev: false
+
+ /unist-util-stringify-position@2.0.3:
+ resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
+ dependencies:
+ '@types/unist': 2.0.6
+ dev: true
+
+ /unist-util-stringify-position@3.0.3:
+ resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
+ dependencies:
+ '@types/unist': 2.0.6
+ dev: false
+
+ /unist-util-visit-parents@5.1.3:
+ resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
+ dependencies:
+ '@types/unist': 2.0.6
+ unist-util-is: 5.2.1
+ dev: false
+
+ /unist-util-visit@4.1.2:
+ resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
+ dependencies:
+ '@types/unist': 2.0.6
+ unist-util-is: 5.2.1
+ unist-util-visit-parents: 5.1.3
+ dev: false
+
+ /universal-user-agent@6.0.0:
+ resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==}
+ optional: true
+
+ /universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+ optional: true
+
+ /universalify@2.0.0:
+ resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
+ engines: {node: '>= 10.0.0'}
+
+ /unocss@0.50.4(@unocss/webpack@0.50.4):
+ resolution: {integrity: sha512-9offjUEwVlAkR//0sidTyvKkSArRGkDdgSFeW4P4005GWnjmXnbx4amuAeS3Au4o8WoshZCCOi5EYrpO4aLdfg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@unocss/webpack': 0.50.4
+ peerDependenciesMeta:
+ '@unocss/webpack':
+ optional: true
+ dependencies:
+ '@unocss/astro': 0.50.4
+ '@unocss/cli': 0.50.4
+ '@unocss/core': 0.50.4
+ '@unocss/postcss': 0.50.4
+ '@unocss/preset-attributify': 0.50.4
+ '@unocss/preset-icons': 0.50.4
+ '@unocss/preset-mini': 0.50.4
+ '@unocss/preset-tagify': 0.50.4
+ '@unocss/preset-typography': 0.50.4
+ '@unocss/preset-uno': 0.50.4
+ '@unocss/preset-web-fonts': 0.50.4
+ '@unocss/preset-wind': 0.50.4
+ '@unocss/reset': 0.50.4
+ '@unocss/transformer-attributify-jsx': 0.50.4
+ '@unocss/transformer-compile-class': 0.50.4
+ '@unocss/transformer-directives': 0.50.4
+ '@unocss/transformer-variant-group': 0.50.4
+ '@unocss/vite': 0.50.4
+ '@unocss/webpack': 0.50.4
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ - vite
+ dev: true
+
+ /unplugin@1.3.0:
+ resolution: {integrity: sha512-l4Udjxg2+vCuKRgIA2T8fHd7UwKWaLizh7t+3C72zjnN0+ZS+odzATFenymOUgcGqG1dkCSYE34h9wBbMXrKrA==}
+ dependencies:
+ acorn: 8.8.2
+ chokidar: 3.5.3
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.5.0
+
+ /unstorage@1.4.0:
+ resolution: {integrity: sha512-l4ggmklguKsfkoEcO9QiSgnYLEUTVqHk+Sl9Y63FzhUnCqGz7icxLX7WmvDwPtAYH6qI4hBkfJbVVjS5rispMQ==}
+ dependencies:
+ anymatch: 3.1.3
+ chokidar: 3.5.3
+ destr: 1.2.2
+ h3: 1.12.0
+ ioredis: 5.3.1
+ listhen: 1.0.4
+ lru-cache: 7.18.3
+ mri: 1.2.0
+ node-fetch-native: 1.0.2
+ ofetch: 1.0.1
+ ufo: 1.1.1
+ optionalDependencies:
+ '@azure/app-configuration': 1.3.1
+ '@azure/cosmos': 3.17.3
+ '@azure/data-tables': 13.2.1
+ '@azure/identity': 3.1.3
+ '@azure/keyvault-secrets': 4.6.0
+ '@azure/storage-blob': 12.13.0
+ '@planetscale/database': 1.6.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+ - uWebSockets.js
+
+ /untyped@1.2.2:
+ resolution: {integrity: sha512-EANYd5L6AdpgfldlgMcmvOOnj092nWhy0ybhc7uhEH12ipytDYz89EOegBQKj8qWL3u1wgYnmFjADhsuCJs5Aw==}
+ dependencies:
+ '@babel/core': 7.21.0
+ '@babel/standalone': 7.21.2
+ '@babel/types': 7.21.2
+ scule: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ /update-browserslist-db@1.0.10(browserslist@4.21.5):
+ resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.5
+ escalade: 3.1.1
+ picocolors: 1.0.0
+
+ /uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.3.0
+
+ /url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+ optional: true
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ /uuid-parse@1.1.0:
+ resolution: {integrity: sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==}
+ dev: false
+
+ /uuid@3.4.0:
+ resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
+ deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
+ hasBin: true
+ dev: false
+
+ /uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
+ /uuid@9.0.0:
+ resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
+ hasBin: true
+ dev: false
+
+ /uvu@0.5.6:
+ resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dependencies:
+ dequal: 2.0.3
+ diff: 5.1.0
+ kleur: 4.1.5
+ sade: 1.8.1
+ dev: false
+
+ /validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ /verror@1.10.0:
+ resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
+ engines: {'0': node >=0.6.0}
+ dependencies:
+ assert-plus: 1.0.0
+ core-util-is: 1.0.2
+ extsprintf: 1.3.0
+ dev: false
+
+ /vfile-message@3.1.4:
+ resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
+ dependencies:
+ '@types/unist': 2.0.6
+ unist-util-stringify-position: 3.0.3
+ dev: false
+
+ /vfile@5.3.7:
+ resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
+ dependencies:
+ '@types/unist': 2.0.6
+ is-buffer: 2.0.5
+ unist-util-stringify-position: 3.0.3
+ vfile-message: 3.1.4
+ dev: false
+
+ /vite-node@0.29.2:
+ resolution: {integrity: sha512-5oe1z6wzI3gkvc4yOBbDBbgpiWiApvuN4P55E8OI131JGrSuo4X3SOZrNmZYo4R8Zkze/dhi572blX0zc+6SdA==}
+ engines: {node: '>=v14.16.0'}
+ hasBin: true
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.4
+ mlly: 1.2.0
+ pathe: 1.1.0
+ picocolors: 1.0.0
+ vite: 4.1.4
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ /vite-plugin-checker@0.5.6(eslint@8.36.0)(typescript@4.9.5)(vite@4.1.4):
+ resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==}
+ engines: {node: '>=14.16'}
+ peerDependencies:
+ eslint: '>=7'
+ meow: ^9.0.0
+ optionator: ^0.9.1
+ stylelint: '>=13'
+ typescript: '*'
+ vite: '>=2.0.0'
+ vls: '*'
+ vti: '*'
+ vue-tsc: '*'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ meow:
+ optional: true
+ optionator:
+ optional: true
+ stylelint:
+ optional: true
+ typescript:
+ optional: true
+ vls:
+ optional: true
+ vti:
+ optional: true
+ vue-tsc:
+ optional: true
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ chokidar: 3.5.3
+ commander: 8.3.0
+ eslint: 8.36.0
+ fast-glob: 3.2.12
+ fs-extra: 11.1.1
+ lodash.debounce: 4.0.8
+ lodash.pick: 4.4.0
+ npm-run-path: 4.0.1
+ strip-ansi: 6.0.1
+ tiny-invariant: 1.3.1
+ typescript: 4.9.5
+ vite: 4.1.4
+ vscode-languageclient: 7.0.0
+ vscode-languageserver: 7.0.0
+ vscode-languageserver-textdocument: 1.0.8
+ vscode-uri: 3.0.7
+
+ /vite-plugin-css-injected-by-js@3.5.1:
+ resolution: {integrity: sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ==}
+ peerDependencies:
+ vite: '>2.0.0-0'
+ dev: false
+
+ /vite-plugin-singlefile@2.0.2:
+ resolution: {integrity: sha512-Z2ou6HcvED5CF0hM+vcFSaFa+klyS8RyyLxW0PbMRLnMbvzTI6ueWyxdYNFhpuXZgz/aj6+E/dHFTdEcw6gb9w==}
+ engines: {node: '>18.0.0'}
+ peerDependencies:
+ rollup: ^4.18.0
+ vite: ^5.3.1
+ dependencies:
+ micromatch: 4.0.7
+ dev: false
+
+ /vite@4.1.4:
+ resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.16.17
+ postcss: 8.4.21
+ resolve: 1.22.1
+ rollup: 3.19.1
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ /vscode-jsonrpc@6.0.0:
+ resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==}
+ engines: {node: '>=8.0.0 || >=10.0.0'}
+
+ /vscode-languageclient@7.0.0:
+ resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==}
+ engines: {vscode: ^1.52.0}
+ dependencies:
+ minimatch: 3.1.2
+ semver: 7.3.8
+ vscode-languageserver-protocol: 3.16.0
+
+ /vscode-languageserver-protocol@3.16.0:
+ resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==}
+ dependencies:
+ vscode-jsonrpc: 6.0.0
+ vscode-languageserver-types: 3.16.0
+
+ /vscode-languageserver-textdocument@1.0.8:
+ resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==}
+
+ /vscode-languageserver-types@3.16.0:
+ resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==}
+
+ /vscode-languageserver@7.0.0:
+ resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==}
+ hasBin: true
+ dependencies:
+ vscode-languageserver-protocol: 3.16.0
+
+ /vscode-uri@3.0.7:
+ resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==}
+
+ /vue-bundle-renderer@1.0.2:
+ resolution: {integrity: sha512-jfFfTlXV7Xp2LxqcdRnBslFLb4C/DBvecTgpUYcDpMd75u326svTmEqa8YX5d1t7Mh9jODKdt8y+/z+8Pegh3g==}
+ dependencies:
+ ufo: 1.1.1
+
+ /vue-demi@0.13.11:
+ resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dev: false
+
+ /vue-devtools-stub@0.1.0:
+ resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==}
+
+ /vue-eslint-parser@9.1.0(eslint@8.36.0):
+ resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ debug: 4.3.4
+ eslint: 8.36.0
+ eslint-scope: 7.1.1
+ eslint-visitor-keys: 3.3.0
+ espree: 9.5.0
+ esquery: 1.5.0
+ lodash: 4.17.21
+ semver: 7.3.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /vue-resize@2.0.0-alpha.1:
+ resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
+ peerDependencies:
+ vue: ^3.0.0
+ dev: false
+
+ /vue-router@4.1.6(vue@3.2.47):
+ resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@vue/devtools-api': 6.5.0
+ vue: 3.2.47
+
+ /vue@3.2.47:
+ resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==}
+ dependencies:
+ '@vue/compiler-dom': 3.2.47
+ '@vue/compiler-sfc': 3.2.47
+ '@vue/runtime-dom': 3.2.47
+ '@vue/server-renderer': 3.2.47(vue@3.2.47)
+ '@vue/shared': 3.2.47
+
+ /wcwidth@1.0.1:
+ resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
+ dependencies:
+ defaults: 1.0.4
+
+ /web-streams-polyfill@3.2.1:
+ resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
+ engines: {node: '>= 8'}
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ /webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+
+ /webpack-virtual-modules@0.5.0:
+ resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ /when-exit@2.1.0:
+ resolution: {integrity: sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==}
+ dev: false
+
+ /which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
+ /which-typed-array@1.1.9:
+ resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ is-typed-array: 1.1.10
+ dev: true
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+
+ /wide-align@1.1.5:
+ resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
+ dependencies:
+ string-width: 4.2.3
+
+ /word-wrap@1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ /wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.0.1
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /xml2js@0.4.23:
+ resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
+ engines: {node: '>=4.0.0'}
+ dependencies:
+ sax: 1.2.4
+ xmlbuilder: 11.0.1
+ optional: true
+
+ /xmlbuilder@11.0.1:
+ resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
+ engines: {node: '>=4.0'}
+ optional: true
+
+ /xxhashjs@0.2.2:
+ resolution: {integrity: sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==}
+ dependencies:
+ cuint: 0.2.2
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ /yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ /yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yaml-eslint-parser@1.2.0:
+ resolution: {integrity: sha512-OmuvQd5lyIJWfFALc39K5fGqp0aWNc+EtyhVgcQIPZaUKMnTb7An3RMp+QJizJ/x0F4kpgTNe6BL/ctdvoIwIg==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ dependencies:
+ eslint-visitor-keys: 3.3.0
+ lodash: 4.17.21
+ yaml: 2.2.1
+ dev: true
+
+ /yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
+ /yaml@2.2.1:
+ resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ /yargs@17.7.1:
+ resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ /yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ /yocto-queue@1.0.0:
+ resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==}
+ engines: {node: '>=12.20'}
+ dev: false
+
+ /zhead@2.0.4:
+ resolution: {integrity: sha512-V4R94t3ifk9AURym6OskbKcnowzgp5Z88tkoL/NF67vyryNxC62u6mx5F1Ux4oh4+YN7FFmKYEyWy6m5kfPH6g==}
+
+ /zip-stream@4.1.0:
+ resolution: {integrity: sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==}
+ engines: {node: '>= 10'}
+ dependencies:
+ archiver-utils: 2.1.0
+ compress-commons: 4.1.1
+ readable-stream: 3.6.2
+
+ /zod@3.21.4:
+ resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
+ dev: false
+
+ /zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+ dev: false
diff --git a/Golem/public/.gitignore b/Golem/public/.gitignore
new file mode 100644
index 0000000..f68ec6b
--- /dev/null
+++ b/Golem/public/.gitignore
@@ -0,0 +1 @@
+shiki
\ No newline at end of file
diff --git a/Golem/public/android-chrome-192x192.png b/Golem/public/android-chrome-192x192.png
new file mode 100644
index 0000000..cb647d8
Binary files /dev/null and b/Golem/public/android-chrome-192x192.png differ
diff --git a/Golem/public/android-chrome-256x256.png b/Golem/public/android-chrome-256x256.png
new file mode 100644
index 0000000..a6aa38d
Binary files /dev/null and b/Golem/public/android-chrome-256x256.png differ
diff --git a/Golem/public/android-chrome-512x512.png b/Golem/public/android-chrome-512x512.png
new file mode 100644
index 0000000..d028f12
Binary files /dev/null and b/Golem/public/android-chrome-512x512.png differ
diff --git a/Golem/public/apple-touch-icon.png b/Golem/public/apple-touch-icon.png
new file mode 100644
index 0000000..7c3adac
Binary files /dev/null and b/Golem/public/apple-touch-icon.png differ
diff --git a/Golem/public/browserconfig.xml b/Golem/public/browserconfig.xml
new file mode 100644
index 0000000..b3930d0
--- /dev/null
+++ b/Golem/public/browserconfig.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/Golem/public/favicon-16x16.png b/Golem/public/favicon-16x16.png
new file mode 100644
index 0000000..140b2c9
Binary files /dev/null and b/Golem/public/favicon-16x16.png differ
diff --git a/Golem/public/favicon-32x32.png b/Golem/public/favicon-32x32.png
new file mode 100644
index 0000000..1b6ca16
Binary files /dev/null and b/Golem/public/favicon-32x32.png differ
diff --git a/Golem/public/favicon.ico b/Golem/public/favicon.ico
new file mode 100644
index 0000000..9fb5de9
Binary files /dev/null and b/Golem/public/favicon.ico differ
diff --git a/Golem/public/image/logo-dark-lettered.svg b/Golem/public/image/logo-dark-lettered.svg
new file mode 100644
index 0000000..ee04010
--- /dev/null
+++ b/Golem/public/image/logo-dark-lettered.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/Golem/public/image/logo-dark-square-transparent.svg b/Golem/public/image/logo-dark-square-transparent.svg
new file mode 100644
index 0000000..3c8e489
--- /dev/null
+++ b/Golem/public/image/logo-dark-square-transparent.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Golem/public/image/logo-dark-square.svg b/Golem/public/image/logo-dark-square.svg
new file mode 100644
index 0000000..4bdfbcf
--- /dev/null
+++ b/Golem/public/image/logo-dark-square.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Golem/public/image/logo-light-lettered.svg b/Golem/public/image/logo-light-lettered.svg
new file mode 100644
index 0000000..c843f44
--- /dev/null
+++ b/Golem/public/image/logo-light-lettered.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/Golem/public/image/logo-light-square-transparent.svg b/Golem/public/image/logo-light-square-transparent.svg
new file mode 100644
index 0000000..d70b2e4
--- /dev/null
+++ b/Golem/public/image/logo-light-square-transparent.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Golem/public/image/logo-light-square.svg b/Golem/public/image/logo-light-square.svg
new file mode 100644
index 0000000..bff53f9
--- /dev/null
+++ b/Golem/public/image/logo-light-square.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Golem/public/image/logo-splash.svg b/Golem/public/image/logo-splash.svg
new file mode 100644
index 0000000..a5eaea8
--- /dev/null
+++ b/Golem/public/image/logo-splash.svg
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Golem/public/mstile-150x150.png b/Golem/public/mstile-150x150.png
new file mode 100644
index 0000000..8212f2f
Binary files /dev/null and b/Golem/public/mstile-150x150.png differ
diff --git a/Golem/public/og-image.png b/Golem/public/og-image.png
new file mode 100644
index 0000000..999d3dd
Binary files /dev/null and b/Golem/public/og-image.png differ
diff --git a/Golem/public/safari-pinned-tab.svg b/Golem/public/safari-pinned-tab.svg
new file mode 100644
index 0000000..303e5cf
--- /dev/null
+++ b/Golem/public/safari-pinned-tab.svg
@@ -0,0 +1,35 @@
+
+
+
+
+Created by potrace 1.14, written by Peter Selinger 2001-2017
+
+
+
+
+
+
diff --git a/Golem/public/site.webmanifest b/Golem/public/site.webmanifest
new file mode 100644
index 0000000..45dc8a2
--- /dev/null
+++ b/Golem/public/site.webmanifest
@@ -0,0 +1 @@
+{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
diff --git a/Golem/scripts/prepare.ts b/Golem/scripts/prepare.ts
new file mode 100644
index 0000000..1740dcb
--- /dev/null
+++ b/Golem/scripts/prepare.ts
@@ -0,0 +1,10 @@
+import fs from 'fs-extra'
+
+const dereference = process.platform === 'win32' ? true : undefined
+
+await fs.copy('node_modules/shiki-es/dist/assets', 'public/shiki/', {
+ dereference,
+ filter: (src: any) => src === 'node_modules/shiki/' || src.includes('languages') || src.includes('dist'),
+})
+await fs.copy('node_modules/theme-vitesse/themes', 'public/shiki/themes', { dereference })
+await fs.copy('node_modules/theme-vitesse/themes', 'node_modules/shiki/themes', { overwrite: true, dereference })
diff --git a/Golem/server/api/auth/login.post.ts b/Golem/server/api/auth/login.post.ts
new file mode 100644
index 0000000..fc88e50
--- /dev/null
+++ b/Golem/server/api/auth/login.post.ts
@@ -0,0 +1,8 @@
+import { defineEventHandler } from 'h3';
+
+export default defineEventHandler(async (event) => {
+ const { accessToken } = await readBody(event)
+ setCookie(event, 'ungpt-session', accessToken, {})
+
+ return accessToken
+})
diff --git a/Golem/server/api/knowledge.post.ts b/Golem/server/api/knowledge.post.ts
new file mode 100644
index 0000000..569a9c8
--- /dev/null
+++ b/Golem/server/api/knowledge.post.ts
@@ -0,0 +1,24 @@
+import { indexDocuments } from '../embedding'
+import { scrapeUrl } from '../from/scraping'
+import { defineEventHandler } from 'h3';
+
+export default defineEventHandler(async (event) => {
+ const payload = await readBody(event)
+
+ if (payload.type === 'url') {
+ const { url, embeddings } = payload
+
+ if (!url) {
+ throw new Error('No URL provided')
+ }
+
+ const { markdown, favicon, title } = await scrapeUrl(url)
+ if (embeddings) {
+ return await indexDocuments([{
+ url,
+ content: markdown,
+ }])
+ }
+ return { markdown, favicon, title }
+ }
+})
diff --git a/Golem/server/api/message.post.ts b/Golem/server/api/message.post.ts
new file mode 100644
index 0000000..d3c1261
--- /dev/null
+++ b/Golem/server/api/message.post.ts
@@ -0,0 +1,198 @@
+import { Readable } from 'node:stream'
+import { z } from 'zod'
+import type { ChatCompletionRequestMessage, CreateChatCompletionRequest } from 'openai'
+import { Configuration, OpenAIApi } from 'openai'
+import type { H3Event } from 'h3'
+import { nanoid } from 'nanoid'
+import { encoding_for_model } from '@dqbd/tiktoken'
+import trimIndent from '~~/utils/string'
+import { fetchSSE } from '~~/utils/fetch-sse'
+import { defineEventHandler } from 'h3';
+
+const CHAT_COMPLETION_ENDPOINT = 'https://api.openai.com/v1/chat/completions'
+
+const TokenCounter = {
+ 'mistral-7b-v0.1': encoding_for_model('mistral-7b-v0.1'),
+ 'llama3-8b': encoding_for_model('llama3-8b'),
+}
+
+const MaxTokensPerModel = {
+ 'mistral-7b-v0.1': 8180,
+ 'llama3-8b': 4080,
+}
+
+export default defineEventHandler(async (event) => {
+ const body = await readBody(event)
+
+ // Validate message with zod
+ const messageSchema = z.object({
+ messages: z.array(z.object({
+ content: z.string(),
+ role: z.enum(['user', 'assistant', 'system']),
+ })),
+ systemMessage: z.string().optional().default(getDefaultSystemMessage()),
+ model: z.enum(['llama3-8b', 'mistral-7b-v0.1']),
+ maxTokens: z.number()
+ .min(20)
+ .optional(),
+ stream: z.boolean().optional().default(false),
+ })
+
+ const message = messageSchema.safeParse(body)
+ if (!message.success) {
+ event.node.res.statusCode = 400
+ return {
+ error: 'Invalid message',
+ message: message.error,
+ }
+ }
+
+ const apiKey = getApiKey(event)
+ if (!apiKey) {
+ event.node.res.statusCode = 400
+ return {
+ error: 'Missing API key',
+ }
+ }
+
+ const config = new Configuration({ apiKey })
+ const openai = new OpenAIApi(config)
+
+ const messageListWithSystemMessage: ChatCompletionRequestMessage[] = [
+ { content: message.data.systemMessage, role: 'system' },
+ ...message.data.messages.filter(({ role }) => role !== 'system'),
+ ]
+
+ const request: CreateChatCompletionRequest = {
+ model: message.data.model,
+ messages: messageListWithSystemMessage,
+ max_tokens: message.data.maxTokens,
+ stream: message.data.stream,
+ }
+
+ const getTokenCount = () => TokenCounter[message.data.model].encode(messageListWithSystemMessage.map(({ content }) => content).join('\n\n')).length
+ let lastTokenCount = getTokenCount()
+ if (getTokenCount() > MaxTokensPerModel[message.data.model]) {
+ // Remove the first message that is not a system message
+ // until the token count is less than the max or there are no more messages
+ while (messageListWithSystemMessage.length > 1 && lastTokenCount > MaxTokensPerModel[message.data.model]) {
+ messageListWithSystemMessage.shift()
+ lastTokenCount = getTokenCount()
+ }
+ if (messageListWithSystemMessage.length === 1) {
+ event.node.res.statusCode = 400
+ return {
+ error: {
+ error: 'Too many tokens',
+ code: 'context_length_exceeded',
+ message: `The token count for the messages is too high. The maximum is ${MaxTokensPerModel[message.data.model]}, but the current count is ${lastTokenCount}.`,
+ },
+ }
+ }
+ }
+
+ const result = {
+ role: 'assistant',
+ id: nanoid(),
+ text: '',
+ delta: undefined,
+ detail: undefined,
+ }
+
+ try {
+ if (message.data.stream) {
+ const stream = new Readable({
+ read() {},
+ encoding: 'utf8',
+ })
+ const response = await fetchSSE(CHAT_COMPLETION_ENDPOINT, {
+ method: 'POST',
+ headers: getChatCompletionRequestHeaders(event),
+ body: JSON.stringify(request),
+ onMessage: (data) => {
+ if (data === '[DONE]') {
+ result.text = result.text.trim()
+ // End the stream
+ stream.push(null)
+ return
+ }
+ try {
+ const response = JSON.parse(data)
+ if (response.id) {
+ result.id = response.id
+ }
+ if (response?.choices?.length) {
+ const delta = response.choices[0].delta
+ result.delta = delta.content
+ if (delta?.content) {
+ result.text += delta.content
+ }
+ result.detail = response
+ if (delta.role) {
+ result.role = delta.role
+ }
+ if (result.text) {
+ stream.push(JSON.stringify(result))
+ }
+ }
+ }
+ catch (err) {
+ console.log(data)
+ }
+ },
+ })
+ // console.log(requestResponse)
+ return sendStream(event, stream)
+ }
+ else {
+ const res = await openai.createChatCompletion(request)
+ if (res.data.id) {
+ result.id = res.data.id
+ }
+ const message = res.data.choices[0].message
+ if (!message) {
+ throw new Error('No message in response')
+ }
+ result.text = message.content
+ if (message.role) {
+ result.role = message.role
+ }
+ result.detail = res.data as any
+ return result
+ }
+ }
+ catch (e: any) {
+ // If the error is a 4xx or 5xx error, return the error message
+ if (e.response?.data?.error) {
+ event.node.res.statusCode = e.response.status
+ return {
+ error: e.response.data.error,
+ message: e.response.data.message,
+ }
+ }
+ event.node.res.statusCode = 500
+ return e.cause
+ }
+})
+
+function getApiKey(event: H3Event) {
+ const { apiKey: instanceApiKey } = useRuntimeConfig()
+ const headerApiKey = getHeader(event, 'x-openai-api-key')
+ return headerApiKey || instanceApiKey
+}
+
+function getChatCompletionRequestHeaders(event: H3Event) {
+ return {
+ 'Content-Type': 'application/json',
+ 'Authorization': `Bearer ${getApiKey(event)}`,
+ }
+}
+
+function getDefaultSystemMessage() {
+ const currentDate = new Date().toISOString().split('T')[0]
+ return trimIndent(`
+ You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.
+ Knowledge cutoff: 2021-09-01
+ Current date: ${currentDate}
+ `)
+}
diff --git a/Golem/server/api/trpc/[trpc].ts b/Golem/server/api/trpc/[trpc].ts
new file mode 100644
index 0000000..5edf757
--- /dev/null
+++ b/Golem/server/api/trpc/[trpc].ts
@@ -0,0 +1,9 @@
+import { createNuxtApiHandler } from 'trpc-nuxt'
+import { appRouter } from '~/server/trpc/routers'
+import { createContext } from '~/server/trpc/context'
+
+// export API handler
+export default createNuxtApiHandler({
+ router: appRouter,
+ createContext,
+})
diff --git a/Golem/server/db/deta.ts b/Golem/server/db/deta.ts
new file mode 100644
index 0000000..fa4dd07
--- /dev/null
+++ b/Golem/server/db/deta.ts
@@ -0,0 +1,14 @@
+import { Deta } from 'deta'
+import type Base from 'deta/dist/types/base'
+
+export function getDetaBase(collection: string) {
+ const detaKey = useRuntimeConfig().detaKey || process.env?.DETA_PROJECT_KEY
+
+ console.log({detaKey , collection});
+ if (!detaKey) {
+ return {} as Base
+ }
+ const deta = Deta(detaKey)
+ const db = deta.Base(collection)
+ return db
+}
diff --git a/Golem/server/embedding/index.ts b/Golem/server/embedding/index.ts
new file mode 100644
index 0000000..5ec0571
--- /dev/null
+++ b/Golem/server/embedding/index.ts
@@ -0,0 +1,61 @@
+import openai from 'openai'
+import pLimit from 'p-limit'
+import { splitMarkdownByHeadingLevel } from '../markdown'
+
+export const createOpenAIClient = () => {
+ const config = new openai.Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ })
+ return new openai.OpenAIApi(config)
+}
+
+/**
+ * Create an embedding for a given text input.
+ * @param {string} content
+ * @returns {Promise}
+ * @throws {Error} if the request is invalid
+ * */
+export const createEmbedding = async (content: string) => {
+ const client = createOpenAIClient()
+
+ const embedding = await client.createEmbedding({
+ model: 'text-embedding-ada-002',
+ input: content,
+ })
+
+ return embedding.data.data[0].embedding
+}
+
+export async function indexDocuments(
+ documentList: { url: string; content: string }[],
+) {
+ const documentsWithSections = await Promise.all(
+ documentList.map(async document => ({
+ ...document,
+ // Split markdown into sections of ## headings
+ sections: splitMarkdownByHeadingLevel(document.content, 3),
+ fullEmbedding: await createEmbedding(document.content),
+ })),
+ )
+
+ // Sections flattened
+ const sections = documentsWithSections
+ .reduce((acc, val) => {
+ const sectionList = val.sections.map((section) => {
+ const { sections: _, content: __, ...file } = val
+ return { ...file, section }
+ })
+ return [...acc, ...sectionList]
+ }, [] as { fullEmbedding: number[]; section: string; url: string }[])
+
+ // Create embeddings for each section
+ const limit = pLimit(20)
+
+ const fileEmbeddingsFetch = sections.map(section => limit(async () => {
+ const embedding = await createEmbedding(section.section)
+ return { ...section, embedding }
+ }))
+
+ const embeddings = await Promise.all(fileEmbeddingsFetch)
+ return embeddings
+}
diff --git a/Golem/server/from/scraping.ts b/Golem/server/from/scraping.ts
new file mode 100644
index 0000000..f4a4069
--- /dev/null
+++ b/Golem/server/from/scraping.ts
@@ -0,0 +1,127 @@
+import stream from 'node:stream'
+import Crawler from 'crawler'
+import { NodeHtmlMarkdown } from 'node-html-markdown'
+import type { types } from '~~/utils/types'
+
+const nhm = new NodeHtmlMarkdown()
+
+function extractContentAndLinks($: cheerio.CheerioAPI) {
+ try {
+ // Get page title and favicon
+ const title = $('title').text()
+ const favicon = $('link[rel="icon"]').attr('href')
+
+ const allowedTags = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'code']
+ const filteredHtml = $('*')
+ .filter((i, el) => el.type === 'tag' && allowedTags.includes(el.tagName))
+ .map((i, el) => $.html(el))
+ .get()
+ .join('')
+ const markdown = nhm.translate(filteredHtml)
+
+ // Remove images
+ const markdownClean = markdown
+ .replace(/!\[.*\]\(.*\)/g, '')
+ // Remove everything before a heading
+ .replace(/^(?!#).*/g, '')
+ // Remove headings that are just links
+ .replace(/#{1,6} \[.*\]\(.*\)/g, '')
+ // Remove empty headings
+ .replace(/#{1,6} ?\n/g, '')
+ .split('\n')
+ .map(line => line.trim())
+ .filter(Boolean)
+ .join('\n')
+ // Get next links with the same domain
+ const links = $('a')
+ .filter((i, el) => {
+ const href = $(el).attr('href')
+ return Boolean(href?.startsWith('/') && !href.startsWith('//'))
+ })
+ .map((i, el) => $(el).attr('href'))
+ .toArray()
+ .map(link => (link as any as string).replace(/[#\?].+/g, ''))
+
+ return { markdown: markdownClean, links, favicon, title }
+ }
+ catch (error) {
+ console.log(error)
+ return { markdown: '', links: [] }
+ }
+}
+
+function normalizeLinkList(links: string[], baseUrl: string) {
+ return links.map((link) => {
+ const baseUrlWithoutParts = baseUrl.split('/').slice(0, 3).join('/')
+ const completeLink = link.startsWith('http') ? link : baseUrlWithoutParts + link
+ // Remove double slashes except for the protocol
+ const normalizedLink = completeLink
+ .replace(/([^:]\/)\/+/g, '$1')
+ .replace(/\/$/, '')
+
+ return normalizedLink
+ }).filter(link => link.startsWith(baseUrl))
+}
+
+// Returns a stream of { url, markdown }
+export function WebScraper(url: string, options?: {
+ maxConnections?: number
+ maxDepth?: number
+ crawl?: boolean
+}) {
+ // Create a stream
+ const readable = new stream.Readable({
+ objectMode: true,
+ read() {},
+ })
+
+ const visited = new Set()
+ const c = new Crawler({
+ maxConnections: options?.maxConnections || 5,
+ callback(error, res, done) {
+ if (error) {
+ console.log(error)
+ }
+ else {
+ console.log('Crawling', res.request.uri.href)
+ const { $, request } = res
+ const { markdown, links, favicon, title } = extractContentAndLinks($)
+ const result = { url: request.uri.href, markdown, favicon, title }
+ readable.push(result)
+ if (options?.crawl) {
+ const normalizedLinks = normalizeLinkList(links, url)
+ normalizedLinks.forEach((link) => {
+ if (!visited.has(link)) {
+ visited.add(link)
+ c.queue(link)
+ }
+ })
+ }
+ }
+ done()
+ },
+ })
+ c.queue(url)
+
+ c.on('drain', () => {
+ readable.emit('end')
+ })
+
+ return readable
+}
+
+export async function scrapeUrl(url: string): Promise {
+ return new Promise((resolve, reject) => {
+ const readable = WebScraper(url)
+ let result: types.WebScraperResult
+ readable.on('data', (data) => {
+ result = data as types.WebScraperResult
+ })
+ readable.on('end', () => {
+ resolve(result)
+ })
+ readable.on('error', (error) => {
+ reject(error)
+ })
+ })
+}
diff --git a/Golem/server/markdown/index.ts b/Golem/server/markdown/index.ts
new file mode 100644
index 0000000..67e13a5
--- /dev/null
+++ b/Golem/server/markdown/index.ts
@@ -0,0 +1,8 @@
+export function splitMarkdownByHeadingLevel(content: string, level: number) {
+ const headingRegex = new RegExp(`^#{${level}} `, 'gm')
+ const sections = content
+ .split(headingRegex)
+ .filter(Boolean)
+ .map(section => section.trim())
+ return sections
+}
diff --git a/Golem/server/trpc/context.ts b/Golem/server/trpc/context.ts
new file mode 100644
index 0000000..b6ff180
--- /dev/null
+++ b/Golem/server/trpc/context.ts
@@ -0,0 +1,14 @@
+import type { inferAsyncReturnType } from '@trpc/server'
+import { getDetaBase } from '../db/deta'
+/**
+ * Creates context for an incoming request
+ * @link https://trpc.io/docs/context
+ */
+export const createContext = () => ({
+ deta: {
+ conversations: getDetaBase('conversations'),
+ messages: getDetaBase('messages'),
+ preferences: getDetaBase('preferences'),
+ },
+})
+export type Context = inferAsyncReturnType
diff --git a/Golem/server/trpc/routers/auth.ts b/Golem/server/trpc/routers/auth.ts
new file mode 100644
index 0000000..37d1e52
--- /dev/null
+++ b/Golem/server/trpc/routers/auth.ts
@@ -0,0 +1,13 @@
+import { z } from 'zod'
+import { publicProcedure, router } from '~/server/trpc/trpc'
+
+export const authRouter = router({
+ login: publicProcedure
+ .input(z.string())
+ .mutation(async ({ input }) => {
+ const { password } = useRuntimeConfig()
+ return input === password
+ }),
+})
+
+export type AuthRouter = typeof authRouter
diff --git a/Golem/server/trpc/routers/deta/conversation.ts b/Golem/server/trpc/routers/deta/conversation.ts
new file mode 100644
index 0000000..7a8516b
--- /dev/null
+++ b/Golem/server/trpc/routers/deta/conversation.ts
@@ -0,0 +1,90 @@
+import { z } from 'zod'
+import { publicProcedure, router } from '~/server/trpc/trpc'
+import type { types } from '~~/utils/types'
+
+export const conversationRouter = router({
+
+ list: publicProcedure
+ .query(async ({ ctx }) => {
+ const { items } = await ctx.deta.conversations.fetch()
+ return items as any as types.deta.Conversation[]
+ }),
+
+ get: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ }),
+ )
+ .query(async ({ ctx, input }) => {
+ const { id } = input
+ const conversation = await ctx.deta.conversations.get(id)
+ return conversation as any as types.deta.Conversation
+ }),
+
+ create: publicProcedure
+ .input(
+ z.object({
+ title: z.string(),
+ id: z.string(),
+ updatedAt: z.string().or(z.date()),
+ createdAt: z.string().or(z.date()),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { title, id, updatedAt, createdAt } = input
+ const conversation = await ctx.deta.conversations.insert({
+ key: id,
+ title,
+ updatedAt: updatedAt as string,
+ createdAt: createdAt as string,
+ })
+ return conversation
+ }),
+
+ update: publicProcedure
+ .input(
+ z.object({
+ title: z.string().optional(),
+ id: z.string(),
+ metadata: z.any().optional(),
+ updatedAt: z.string().or(z.date()).optional(),
+ createdAt: z.string().or(z.date()).optional(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { title, id, updatedAt, createdAt, metadata } = input
+ const patch = new Map()
+ if (title) {
+ patch.set('title', title)
+ }
+ if (updatedAt) {
+ patch.set('updatedAt', updatedAt)
+ }
+ if (createdAt) {
+ patch.set('createdAt', createdAt)
+ }
+ if (metadata !== undefined) {
+ patch.set('metadata', metadata)
+ }
+ const conversation = await ctx.deta.conversations.put({
+ key: id,
+ ...Object.fromEntries(patch),
+ })
+ return conversation
+ }),
+
+ delete: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { id } = input
+ const conversation = await ctx.deta.conversations.delete(id)
+ return conversation
+ }),
+})
+
+export type ConversationRouter = typeof conversationRouter
diff --git a/Golem/server/trpc/routers/deta/index.ts b/Golem/server/trpc/routers/deta/index.ts
new file mode 100644
index 0000000..eb6e4bc
--- /dev/null
+++ b/Golem/server/trpc/routers/deta/index.ts
@@ -0,0 +1,12 @@
+import { publicProcedure, router } from '~/server/trpc/trpc'
+
+export const detaInfoRouter = router({
+
+ isEnabled: publicProcedure
+ .query(async () => {
+ return Boolean(process?.env?.DETA_PROJECT_KEY)
+ }),
+
+})
+
+export type DetaInfoRouter = typeof detaInfoRouter
diff --git a/Golem/server/trpc/routers/deta/message.ts b/Golem/server/trpc/routers/deta/message.ts
new file mode 100644
index 0000000..bfbfd2a
--- /dev/null
+++ b/Golem/server/trpc/routers/deta/message.ts
@@ -0,0 +1,114 @@
+import { z } from 'zod'
+import { publicProcedure, router } from '~/server/trpc/trpc'
+import type { types } from '~~/utils/types'
+import { parseDateFields } from '~/utils/object'
+
+export const messageRouter = router({
+
+ list: publicProcedure
+ .input(
+ z.object({
+ conversationId: z.string().optional(),
+ }),
+ )
+ .query(async ({ ctx, input }) => {
+ const query: Record = {}
+ if (input.conversationId) {
+ query.conversationId = input.conversationId
+ }
+ const { items } = await ctx.deta.messages.fetch(query)
+ return items.map(item => ({
+ ...item as any,
+ id: item.key as string,
+ }))
+ }),
+
+ get: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ }),
+ )
+ .query(async ({ ctx, input }) => {
+ const { id } = input
+ const conversation = await ctx.deta.messages.get(id)
+ return parseDateFields(
+ conversation as any as types.deta.Message,
+ ['updatedAt', 'createdAt'] as const,
+ )
+ }),
+
+ create: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ updatedAt: z.string().or(z.string().or(z.date())),
+ createdAt: z.string().or(z.string().or(z.date())),
+ conversationId: z.string().optional(),
+ text: z.string(),
+ role: z.string(),
+ parentMessageId: z.string().optional(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { id, updatedAt, createdAt, conversationId, text, role, parentMessageId } = input
+ const message = await ctx.deta.messages.insert({
+ key: id,
+ conversationId,
+ updatedAt: updatedAt as string,
+ createdAt: createdAt as string,
+ text,
+ role,
+ parentMessageId,
+ })
+ return message
+ }),
+
+ update: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ updatedAt: z.string().or(z.date()).optional(),
+ createdAt: z.string().or(z.date()).optional(),
+ conversationId: z.string().optional(),
+ text: z.string().optional(),
+ metadata: z.any().optional(),
+ role: z.any().optional(),
+ parentMessageId: z.string().optional(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { updatedAt, createdAt } = input
+ const patch = new Map()
+ if (updatedAt) {
+ patch.set('updatedAt', updatedAt)
+ }
+ if (createdAt) {
+ patch.set('createdAt', createdAt)
+ }
+ for (const field of ['conversationId', 'text', 'role', 'parentMessageId', 'metadata'] as const) {
+ if (input[field]) {
+ patch.set(field, input[field])
+ }
+ }
+ const message = await ctx.deta.messages.put({
+ key: input.id,
+ ...Object.fromEntries(patch),
+ })
+ return message
+ }),
+
+ delete: publicProcedure
+ .input(
+ z.object({
+ id: z.string(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ const { id } = input
+ const conversation = await ctx.deta.messages.delete(id)
+ return conversation
+ }),
+})
+
+export type MessageRouter = typeof messageRouter
diff --git a/Golem/server/trpc/routers/deta/preferences.ts b/Golem/server/trpc/routers/deta/preferences.ts
new file mode 100644
index 0000000..b0bd93b
--- /dev/null
+++ b/Golem/server/trpc/routers/deta/preferences.ts
@@ -0,0 +1,34 @@
+import { z } from 'zod'
+import { publicProcedure, router } from '~/server/trpc/trpc'
+
+const AvailablePreferences = [
+ 'api-key',
+ 'color',
+] as const
+
+export const preferencesRouter = router({
+
+ get: publicProcedure
+ .input(
+ z.enum(AvailablePreferences),
+ )
+ .query(async ({ ctx, input }) => {
+ return (await ctx.deta.preferences.get(input))?.value
+ }),
+
+ set: publicProcedure
+ .input(
+ z.object({
+ key: z.enum(AvailablePreferences),
+ value: z.string(),
+ }),
+ )
+ .mutation(async ({ ctx, input }) => {
+ await ctx.deta.preferences.put({
+ key: input.key,
+ value: input.value,
+ })
+ }),
+})
+
+export type PreferencesRouter = typeof preferencesRouter
diff --git a/Golem/server/trpc/routers/index.ts b/Golem/server/trpc/routers/index.ts
new file mode 100644
index 0000000..c7f49f4
--- /dev/null
+++ b/Golem/server/trpc/routers/index.ts
@@ -0,0 +1,19 @@
+import { router } from '../trpc'
+import { authRouter } from './auth'
+import { detaInfoRouter } from './deta'
+import { conversationRouter } from './deta/conversation'
+import { messageRouter } from './deta/message'
+import { preferencesRouter } from './deta/preferences'
+import { modelRouter } from './model'
+export const appRouter = router({
+ deta: router({
+ conversations: conversationRouter,
+ messages: messageRouter,
+ info: detaInfoRouter,
+ preferences: preferencesRouter,
+ }),
+ model: modelRouter,
+ auth: authRouter,
+})
+// export type definition of API
+export type AppRouter = typeof appRouter
diff --git a/Golem/server/trpc/routers/model.ts b/Golem/server/trpc/routers/model.ts
new file mode 100644
index 0000000..c37c219
--- /dev/null
+++ b/Golem/server/trpc/routers/model.ts
@@ -0,0 +1,14 @@
+import { z } from 'zod'
+import { encoding_for_model } from '@dqbd/tiktoken'
+import { publicProcedure, router } from '~/server/trpc/trpc'
+
+export const modelRouter = router({
+ getTokenCount: publicProcedure
+ .input(z.string())
+ .mutation(async ({ input }) => {
+ const encoding = encoding_for_model('llama3-8b')
+ return encoding.encode(input).length
+ }),
+})
+
+export type ModelRouter = typeof modelRouter
diff --git a/Golem/server/trpc/trpc.ts b/Golem/server/trpc/trpc.ts
new file mode 100644
index 0000000..2c038f2
--- /dev/null
+++ b/Golem/server/trpc/trpc.ts
@@ -0,0 +1,10 @@
+import { initTRPC } from '@trpc/server'
+import type { Context } from '~/server/trpc/context'
+
+const t = initTRPC.context().create()
+/**
+ * Unprotected procedure
+ **/
+export const publicProcedure = t.procedure
+export const router = t.router
+export const middleware = t.middleware
diff --git a/Golem/tsconfig.json b/Golem/tsconfig.json
new file mode 100644
index 0000000..a746f2a
--- /dev/null
+++ b/Golem/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ // https://nuxt.com/docs/guide/concepts/typescript
+ "extends": "./.nuxt/tsconfig.json"
+}
diff --git a/Golem/unocss.config.ts b/Golem/unocss.config.ts
new file mode 100644
index 0000000..df53b86
--- /dev/null
+++ b/Golem/unocss.config.ts
@@ -0,0 +1,51 @@
+import { defineConfig } from 'unocss'
+import transformerDirectives from '@unocss/transformer-directives'
+
+export default defineConfig({
+ shortcuts: [
+ { 'text-color': 'text-gray-7 dark:text-gray-2' },
+ { 'text-color-lighter': 'text-gray-5 dark:text-gray-4' },
+ ],
+ rules: [
+ [/^bg-([\d]+)\/(\d+)/, ([_, color, opacity]) => ({
+ '--gp-bg-opacity': opacity,
+ 'background-color': `rgba(var(--color-primary-${color}), ${Number(opacity) / 100})`,
+ })],
+
+ [/^shadow-([\d]+)\/(\d+)/, ([_, color, opacity]) => ({
+ '--gp-shadow-opacity': opacity,
+ '--un-shadow-color': `rgba(var(--color-primary-${color}), ${Number(opacity) / 100})`,
+ })],
+ ],
+ theme: {
+ colors: {
+ primary: {
+ 50: 'rgb(var(--color-primary-50))',
+ 100: 'rgb(var(--color-primary-100))',
+ 200: 'rgb(var(--color-primary-200))',
+ 300: 'rgb(var(--color-primary-300))',
+ 400: 'rgb(var(--color-primary-400))',
+ 500: 'rgb(var(--color-primary-500))',
+ 600: 'rgb(var(--color-primary-600))',
+ 700: 'rgb(var(--color-primary-700))',
+ 800: 'rgb(var(--color-primary-800))',
+ 900: 'rgb(var(--color-primary-900))',
+ DEFAULT: 'rgb(var(--color-primary-500))',
+ // 50: '#eadbf0',
+ // 100: '#efd8f3',
+ // 200: '#eed0f0',
+ // 300: '#e0b1e7',
+ // 400: '#cd83d8',
+ // 500: '#b95ec9',
+ // 600: '#a741aa',
+ // 700: '#903597',
+ // 800: '#762d7c',
+ // 900: '#672862',
+ // DEFAULT: '#b95ec9',
+ },
+ },
+ },
+ transformers: [
+ transformerDirectives(),
+ ],
+})
diff --git a/Golem/utils/app-provide.ts b/Golem/utils/app-provide.ts
new file mode 100644
index 0000000..9650507
--- /dev/null
+++ b/Golem/utils/app-provide.ts
@@ -0,0 +1,4 @@
+export function appProvide(key: string, provided: any) {
+ const { vueApp } = useNuxtApp()
+ vueApp.provide(key, provided)
+}
diff --git a/Golem/utils/fetch-sse.ts b/Golem/utils/fetch-sse.ts
new file mode 100644
index 0000000..babbb31
--- /dev/null
+++ b/Golem/utils/fetch-sse.ts
@@ -0,0 +1,164 @@
+import { createParser } from 'eventsource-parser'
+import { fetch as crossFetch } from 'cross-fetch'
+
+export async function fetchSSE(
+ url: string,
+ options: Parameters[1] & {
+ onMessage: (data: string) => void
+ onError?: (error: any) => void
+ },
+) {
+ const f = (process.client ? window.fetch : crossFetch)
+ const { onMessage, onError, ...fetchOptions } = options
+ const res = await f(url, fetchOptions)
+ if (!res.ok) {
+ let reason: string
+
+ try {
+ reason = await res.text()
+ }
+ catch (err) {
+ reason = res.statusText
+ }
+
+ const message = `ChatGPT error ${res.status}: ${reason}`
+ const error = new OpenAIError({ message, cause: reason, statusCode: res.status })
+ throw error
+ }
+
+ const parser = createParser((event) => {
+ if (event.type === 'event') {
+ onMessage(event.data)
+ }
+ })
+
+ // handle special response errors
+ const feed = (chunk: string) => {
+ let response = null
+
+ try {
+ response = JSON.parse(chunk)
+ }
+ catch {
+ }
+
+ if (response?.detail?.type === 'invalid_request_error') {
+ const message = `ChatGPT error ${response.detail.message}: ${response.detail.code} (${response.detail.type})`
+ const error = new OpenAIError({
+ message,
+ cause: response.detail,
+ statusCode: response.detail.code,
+ })
+
+ if (onError) {
+ onError(error)
+ }
+ else {
+ console.error(error)
+ }
+ return
+ }
+
+ parser.feed(chunk)
+ }
+
+ if (!res?.body?.getReader) {
+ // Vercel polyfills `fetch` with `node-fetch`, which doesn't conform to
+ // web standards, so this is a workaround...
+ const body: NodeJS.ReadableStream = res.body as any
+
+ if (!body?.on || !body?.read) {
+ throw new OpenAIError({ message: 'unsupported "fetch" implementation' })
+ }
+
+ body.on('readable', () => {
+ let chunk: string | Buffer = body.read()
+ while (chunk !== null) {
+ feed(chunk.toString())
+ chunk = body.read()
+ }
+ })
+ }
+ else {
+ for await (const chunk of streamAsyncIterable(res.body)) {
+ const str = new TextDecoder().decode(chunk)
+ feed(str)
+ }
+ }
+}
+
+export async function* streamAsyncIterable(stream: ReadableStream) {
+ const reader = stream.getReader()
+ try {
+ while (true) {
+ const { done, value } = await reader.read()
+ if (done) {
+ return
+ }
+ yield value
+ }
+ }
+ finally {
+ reader.releaseLock()
+ }
+}
+
+export async function* streamOpenAIResponse(stream: ReadableStream) {
+ const iterator = streamAsyncIterable(stream)
+
+ const queue: any[] = []
+ const addData = (item: any) => {
+ queue.push(item)
+ }
+
+ const onData = async (chunkDecoded: string) => {
+ createParser(async (event) => {
+ if (event.type === 'event') {
+ if (event.data === '[DONE]') {
+ addData(undefined)
+ return
+ }
+ try {
+ const data = JSON.parse(event.data)
+ addData(data)
+ }
+ catch {
+ logger.error('Failed to parse chunk', event.data)
+ }
+ }
+ }).feed(chunkDecoded)
+ };
+
+ (async () => {
+ for await (const chunk of iterator) {
+ const chunkDecoded = new TextDecoder().decode(chunk)
+ await onData(chunkDecoded)
+ }
+ })()
+
+ while (true) {
+ if (queue.length === 0) {
+ await new Promise(resolve => setTimeout(resolve, 50))
+ continue
+ }
+
+ const nextValue = queue.shift()
+ if (nextValue === undefined) {
+ break
+ }
+
+ yield nextValue
+ }
+
+ return null
+}
+
+export class OpenAIError extends Error {
+ public cause
+ public statusCode
+ constructor(opts: { message: string; cause?: any; statusCode?: number }) {
+ super(opts.message)
+ this.cause = opts.cause
+ this.statusCode = opts.statusCode
+ }
+}
diff --git a/Golem/utils/handle.ts b/Golem/utils/handle.ts
new file mode 100644
index 0000000..84bfe35
--- /dev/null
+++ b/Golem/utils/handle.ts
@@ -0,0 +1,13 @@
+type HandleReturn = Promise<{ error: null; data: T } | { error: Error; data: null }>
+export default async function handle(promise: (Promise | (() => Promise))): HandleReturn {
+ try {
+ if (typeof promise === 'function') {
+ promise = promise()
+ }
+ const data = await promise
+ return { error: null, data }
+ }
+ catch (error: any) {
+ return { error, data: null }
+ }
+}
diff --git a/Golem/utils/local-storage-ref.ts b/Golem/utils/local-storage-ref.ts
new file mode 100644
index 0000000..e7d9c6e
--- /dev/null
+++ b/Golem/utils/local-storage-ref.ts
@@ -0,0 +1,10 @@
+import type { RemovableRef } from '@vueuse/core'
+
+export function syncStorageRef(storageRef: RemovableRef) {
+ const newRef = ref(storageRef.value)
+ watch(newRef, (newValue) => {
+ storageRef.value = newValue
+ }, { immediate: true })
+
+ return newRef
+}
diff --git a/Golem/utils/log.ts b/Golem/utils/log.ts
new file mode 100644
index 0000000..b9f01e2
--- /dev/null
+++ b/Golem/utils/log.ts
@@ -0,0 +1,5 @@
+import consola from 'consola'
+
+export const logger = consola.create({
+ level: __DEV__ ? 4 : 3,
+})
diff --git a/Golem/utils/map-value.ts b/Golem/utils/map-value.ts
new file mode 100644
index 0000000..60cafa6
--- /dev/null
+++ b/Golem/utils/map-value.ts
@@ -0,0 +1,8 @@
+export default function mapValue(map: Record, value: string, defaultValue?: any) {
+ if (value in map) {
+ return map[value]
+ }
+ else {
+ return defaultValue
+ }
+}
diff --git a/Golem/utils/object.ts b/Golem/utils/object.ts
new file mode 100644
index 0000000..d616331
--- /dev/null
+++ b/Golem/utils/object.ts
@@ -0,0 +1,41 @@
+export function omitKeys, K extends keyof T>(obj: T, keys: K[]): Omit {
+ const result = {} as Omit
+ for (const [key, value] of Object.entries(obj)) {
+ if (!keys.includes(key as unknown as K)) {
+ result[key as Exclude] = value as T[Exclude]
+ }
+ }
+ return result
+}
+
+// Makes any non-object, non-array or non-primitive a string (e.g. Date)
+export function pruneObject>(obj: T): T {
+ const result = {} as T
+ for (const [key, value] of Object.entries(obj)) {
+ if (typeof value === 'object' && value !== null) {
+ result[key as keyof T] = pruneObject(value as unknown as Record) as T[keyof T]
+ }
+ else {
+ result[key as keyof T] = value as T[keyof T]
+ }
+ }
+ return result
+}
+
+export function parseDateFields>(obj: T, fields: U):
+{
+ [K in keyof T]: K extends Extract ? Date : T[K]
+} {
+ const result = {} as any
+ for (const [key, value] of Object.entries(obj)) {
+ if (fields.includes(key as unknown as U[number])) {
+ result[key as U[number]] = new Date(value as unknown as string)
+ }
+ else {
+ result[key as U[number]] = value as T[keyof T]
+ }
+ }
+ return result as {
+ [K in keyof T]: K extends Extract ? Date : T[K]
+ }
+}
diff --git a/Golem/utils/string.ts b/Golem/utils/string.ts
new file mode 100644
index 0000000..3a11298
--- /dev/null
+++ b/Golem/utils/string.ts
@@ -0,0 +1,5 @@
+export default function trimIndent(content: string) {
+ const lines = content.split('\n')
+ const indent = lines.map(line => line.trimStart())
+ return indent.join('\n')
+}
diff --git a/Golem/utils/types.ts b/Golem/utils/types.ts
new file mode 100644
index 0000000..141e96a
--- /dev/null
+++ b/Golem/utils/types.ts
@@ -0,0 +1,85 @@
+import type { ChatMessage } from 'chatgpt-web'
+
+export namespace types {
+ export interface Conversation {
+ id: string
+ title: string
+ messages: Message[]
+ knowledge: string[]
+ createdAt: Date
+ updatedAt: Date
+ type?: 'chat' | 'embbeded'
+ systemMessage?: string
+ metadata?: ConversationMetadata
+ settings?: ConversationSettings
+ }
+
+ export interface ConversationMetadata {
+ favorite?: boolean
+ }
+
+ export interface ConversationSettings {
+ personaId?: string
+ model?: string | null
+ maxTokens?: number | null
+ creativity?: Creativity | null
+ }
+
+ export interface Message extends ChatMessage {
+ updatedAt: Date
+ createdAt: Date
+ isError?: boolean
+ metadata?: MessageMetadata
+ actions?: any[]
+ }
+
+ export interface MessageMetadata {
+ favorite?: boolean
+ }
+
+ export interface Persona {
+ title: string
+ instructions: string
+ id: string
+ }
+
+ export interface KnowledgeItem {
+ id: string
+ title: string
+ type: string
+ sections: { content: string; embedding?: number[]; url?: string }[]
+ updatedAt: Date
+ metadata: any
+ }
+
+ export interface WebScraperResult {
+ url: string
+ markdown: string
+ favicon: string
+ title: string
+ }
+
+ export type Creativity = 'none' | 'normal' | 'high'
+
+ // Deta namespace
+ export namespace deta {
+ export interface Conversation {
+ key: string
+ title: string
+ updatedAt: string
+ createdAt: string
+ metadata?: ConversationMetadata
+ }
+
+ export interface Message {
+ key: string
+ conversationId: string
+ text: string
+ role: string
+ updatedAt: string
+ createdAt: string
+ parentMessageId?: string
+ }
+ }
+
+}