From d0d15e4008183634ff25f9b672e17a6824317196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9?= <61122611+CrazyTapok-bit@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:38:41 +0200 Subject: [PATCH] Initial docs --- .github/workflows/deploy-docs.yml | 41 + .gitignore | 5 + package-lock.json | 5259 +++++++++++++++++ package.json | 20 + src/.vuepress/config.ts | 24 + src/.vuepress/navbar/index.ts | 1 + src/.vuepress/navbar/uk.ts | 12 + .../public/assets/icon/apple-icon-152.png | Bin 0 -> 3568 bytes .../public/assets/icon/chrome-192.png | Bin 0 -> 4733 bytes .../public/assets/icon/chrome-512.png | Bin 0 -> 13251 bytes .../public/assets/icon/chrome-mask-192.png | Bin 0 -> 4755 bytes .../public/assets/icon/chrome-mask-512.png | Bin 0 -> 13040 bytes .../public/assets/icon/guide-maskable.png | Bin 0 -> 2270 bytes .../public/assets/icon/ms-icon-144.png | Bin 0 -> 3657 bytes .../public/assets/image/advanced.svg | 1 + src/.vuepress/public/assets/image/blog.svg | 1 + src/.vuepress/public/assets/image/box.svg | 1 + .../public/assets/image/features.svg | 1 + .../public/assets/image/github-dark.svg | 1 + .../public/assets/image/github-light.svg | 1 + src/.vuepress/public/assets/image/layout.svg | 1 + .../public/assets/image/markdown.svg | 1 + src/.vuepress/public/favicon.ico | Bin 0 -> 67646 bytes src/.vuepress/public/logo.png | Bin 0 -> 94186 bytes src/.vuepress/public/logo.svg | 1 + src/.vuepress/sidebar/index.ts | 1 + src/.vuepress/sidebar/uk.ts | 13 + src/.vuepress/styles/config.scss | 3 + src/.vuepress/styles/index.scss | 1 + src/.vuepress/styles/palette.scss | 2 + src/.vuepress/theme.ts | 172 + src/README.md | 268 + src/docs/README.md | 36 + src/docs/entity/README.md | 9 + src/docs/entity/init-data/README.md | 86 + src/docs/entity/init-data/chat.md | 49 + src/docs/entity/init-data/receiver.md | 61 + src/docs/entity/init-data/user.md | 85 + src/docs/entity/login-widget.md | 62 + src/docs/example.md | 62 + src/docs/exception/README.md | 9 + src/docs/exception/bot.md | 8 + src/docs/exception/validation.md | 9 + src/docs/get-started/README.md | 10 + src/docs/get-started/config.md | 43 + src/docs/get-started/install.md | 24 + src/docs/get-started/multiple.md | 39 + src/docs/get-started/usage.md | 37 + src/docs/validator/README.md | 9 + src/docs/validator/login-widget.md | 47 + src/docs/validator/web-app.md | 43 + 51 files changed, 6559 insertions(+) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 .gitignore create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/.vuepress/config.ts create mode 100644 src/.vuepress/navbar/index.ts create mode 100644 src/.vuepress/navbar/uk.ts create mode 100644 src/.vuepress/public/assets/icon/apple-icon-152.png create mode 100644 src/.vuepress/public/assets/icon/chrome-192.png create mode 100644 src/.vuepress/public/assets/icon/chrome-512.png create mode 100644 src/.vuepress/public/assets/icon/chrome-mask-192.png create mode 100644 src/.vuepress/public/assets/icon/chrome-mask-512.png create mode 100644 src/.vuepress/public/assets/icon/guide-maskable.png create mode 100644 src/.vuepress/public/assets/icon/ms-icon-144.png create mode 100644 src/.vuepress/public/assets/image/advanced.svg create mode 100644 src/.vuepress/public/assets/image/blog.svg create mode 100644 src/.vuepress/public/assets/image/box.svg create mode 100644 src/.vuepress/public/assets/image/features.svg create mode 100644 src/.vuepress/public/assets/image/github-dark.svg create mode 100644 src/.vuepress/public/assets/image/github-light.svg create mode 100644 src/.vuepress/public/assets/image/layout.svg create mode 100644 src/.vuepress/public/assets/image/markdown.svg create mode 100644 src/.vuepress/public/favicon.ico create mode 100644 src/.vuepress/public/logo.png create mode 100644 src/.vuepress/public/logo.svg create mode 100644 src/.vuepress/sidebar/index.ts create mode 100644 src/.vuepress/sidebar/uk.ts create mode 100644 src/.vuepress/styles/config.scss create mode 100644 src/.vuepress/styles/index.scss create mode 100644 src/.vuepress/styles/palette.scss create mode 100644 src/.vuepress/theme.ts create mode 100644 src/README.md create mode 100644 src/docs/README.md create mode 100644 src/docs/entity/README.md create mode 100644 src/docs/entity/init-data/README.md create mode 100644 src/docs/entity/init-data/chat.md create mode 100644 src/docs/entity/init-data/receiver.md create mode 100644 src/docs/entity/init-data/user.md create mode 100644 src/docs/entity/login-widget.md create mode 100644 src/docs/example.md create mode 100644 src/docs/exception/README.md create mode 100644 src/docs/exception/bot.md create mode 100644 src/docs/exception/validation.md create mode 100644 src/docs/get-started/README.md create mode 100644 src/docs/get-started/config.md create mode 100644 src/docs/get-started/install.md create mode 100644 src/docs/get-started/multiple.md create mode 100644 src/docs/get-started/usage.md create mode 100644 src/docs/validator/README.md create mode 100644 src/docs/validator/login-widget.md create mode 100644 src/docs/validator/web-app.md diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..157b905 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,41 @@ + +name: Deploy Docs + +on: + push: + branches: + - master + +permissions: + contents: write + +jobs: + deploy-gh-pages: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + cache: npm + + - name: Install Deps + run: npm ci + + - name: Build Docs + env: + NODE_OPTIONS: --max_old_space_size=8192 + run: |- + npm run docs:build + > src/.vuepress/dist/.nojekyll + + - name: Deploy Docs + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: gh-pages + folder: src/.vuepress/dist diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..411fb0d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ + +node_modules/ +src/.vuepress/.cache/ +src/.vuepress/.temp/ +src/.vuepress/dist/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..9281c9c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5259 @@ +{ + "name": "tgwebvalid", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tgwebvalid", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/plugin-docsearch": "^2.0.0-rc.0", + "vue": "^3.4.1", + "vuepress": "2.0.0-rc.0", + "vuepress-theme-hope": "2.0.0-rc.10" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "dev": true, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.0.tgz", + "integrity": "sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.22.0" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.0.tgz", + "integrity": "sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==", + "dev": true + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.0.tgz", + "integrity": "sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.22.0" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.0.tgz", + "integrity": "sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.22.0", + "@algolia/client-search": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.0.tgz", + "integrity": "sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.22.0", + "@algolia/client-search": "4.22.0", + "@algolia/requester-common": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.0.tgz", + "integrity": "sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.0.tgz", + "integrity": "sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.22.0", + "@algolia/requester-common": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.0.tgz", + "integrity": "sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==", + "dev": true, + "dependencies": { + "@algolia/client-common": "4.22.0", + "@algolia/requester-common": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/@algolia/logger-common": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.0.tgz", + "integrity": "sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==", + "dev": true + }, + "node_modules/@algolia/logger-console": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.0.tgz", + "integrity": "sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==", + "dev": true, + "dependencies": { + "@algolia/logger-common": "4.22.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.0.tgz", + "integrity": "sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.22.0" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.0.tgz", + "integrity": "sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==", + "dev": true + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.0.tgz", + "integrity": "sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==", + "dev": true, + "dependencies": { + "@algolia/requester-common": "4.22.0" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.0.tgz", + "integrity": "sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==", + "dev": true, + "dependencies": { + "@algolia/cache-common": "4.22.0", + "@algolia/logger-common": "4.22.0", + "@algolia/requester-common": "4.22.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@docsearch/css": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", + "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", + "dev": true + }, + "node_modules/@docsearch/js": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz", + "integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==", + "dev": true, + "dependencies": { + "@docsearch/react": "3.5.2", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", + "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "dev": true, + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.2", + "algoliasearch": "^4.19.1" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", + "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==", + "dev": true + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.2.tgz", + "integrity": "sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==", + "dev": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.2" + } + }, + "node_modules/@mdit-vue/plugin-component": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-component/-/plugin-component-1.0.0.tgz", + "integrity": "sha512-ZXsJwxkG5yyTHARIYbR74cT4AZ0SfMokFFjiHYCbypHIeYWgJhso4+CZ8+3V9EWFG3EHlGoKNGqKp9chHnqntQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/plugin-frontmatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-1.0.0.tgz", + "integrity": "sha512-MMA7Ny+YPZA7eDOY1t4E+rKuEWO39mzDdP/M68fKdXJU6VfcGkPr7gnpnJfW2QBJ5qIvMrK/3lDAA2JBy5TfpA==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "gray-matter": "^4.0.3", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/plugin-headers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-headers/-/plugin-headers-1.0.0.tgz", + "integrity": "sha512-0rK/iKy6x13d/Pp5XxdLBshTD0+YjZvtHIaIV+JO+/H2WnOv7oaRgs48G5d44z3XJVUE2u6fNnTlI169fef0/A==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "1.0.0", + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/plugin-sfc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-sfc/-/plugin-sfc-1.0.0.tgz", + "integrity": "sha512-agMUe0fY4YHxsZivSvplBwRwrFvsIf/JNUJCAYq1+2Sg9+2hviTBZwjZDxYqHDHOVLtiNr+wuo68tE24mAx3AQ==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/plugin-title": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-title/-/plugin-title-1.0.0.tgz", + "integrity": "sha512-8yC60fCZ95xcJ/cvJH4Lv43Rs4k+33UGyKrRWj5J8TNyMwUyGcwur0XyPM+ffJH4/Bzq4myZLsj/TTFSkXRxvw==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "1.0.0", + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/plugin-toc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-toc/-/plugin-toc-1.0.0.tgz", + "integrity": "sha512-WN8blfX0X/5Nolic0ClDWP7eVo9IB+U4g0jbycX3lolIZX5Bai1UpsD3QYZr5VVsPbQJMKMGvTrCEtCNTGvyWQ==", + "dev": true, + "dependencies": { + "@mdit-vue/shared": "1.0.0", + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/shared": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/shared/-/shared-1.0.0.tgz", + "integrity": "sha512-nbYBfmEi+pR2Lm0Z6TMVX2/iBjfr/kGEsHW8CC0rQw+3+sG5dY6VG094HuFAkiAmmvZx9DZZb+7ZMWp9vkwCRw==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "1.0.0", + "@types/markdown-it": "^13.0.1", + "markdown-it": "^13.0.1" + } + }, + "node_modules/@mdit-vue/types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/types/-/types-1.0.0.tgz", + "integrity": "sha512-xeF5+sHLzRNF7plbksywKCph4qli20l72of2fMlZQQ7RECvXYrRkE9+bjRFQCyULC7B8ydUYbpbkux5xJlVWyw==", + "dev": true + }, + "node_modules/@mdit/plugin-alert": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-alert/-/plugin-alert-0.7.6.tgz", + "integrity": "sha512-Z+/bHBDniCz/Q+TMa3M6f47KG4tUKvJI8FHXhDwgbKLzDLn045ZBHcOTeqvuWrrjCIKBEo4fVAlYszYcehxmfg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-align": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-align/-/plugin-align-0.7.6.tgz", + "integrity": "sha512-NYGrsnX1c84dtY1tugDVX71zxxfcGSIjWANzQ0/od4B0+N31eXkq3SXdAjCXOWUUHSa6phfvtok+x4V9ExQwHA==", + "dev": true, + "dependencies": { + "@mdit/plugin-container": "0.7.6", + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-attrs": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-attrs/-/plugin-attrs-0.7.6.tgz", + "integrity": "sha512-vTSsqZUXglZRQ4cLNou6N2cTLudHS01Tir+HPtrWkN+VB4VAIRlCKV3hf0vzKRM+HR3DSe+vQMrWzfnQdD0o4A==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-container": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-container/-/plugin-container-0.7.6.tgz", + "integrity": "sha512-egEYoJLkar4hxrBfFf6tO3IfoLzeUHYChGRI3FA2fxiMwwyclPvBMMQTtG2rY3sjPy497Z86QiqYwjRM0qA8Mw==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-demo": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-demo/-/plugin-demo-0.7.6.tgz", + "integrity": "sha512-pybxLVpIKYlxt7fgjHK4Zd6f/IMCjACB6eZmIIlow0eOnijRnikHdRDVkoyDOxcFuQvP0yvT6LWcQlhHF+CGwQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-figure": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-figure/-/plugin-figure-0.7.6.tgz", + "integrity": "sha512-ysH5O3WWuDrfxLWQO4wYXYGdo8oi+EbMQFgbaSTxhoPKTFf3HTovCn3RANn7qATBqmGP26zf0hY55mX9BFUu5A==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-footnote": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-footnote/-/plugin-footnote-0.7.6.tgz", + "integrity": "sha512-fQvbi3+/Hm+k4GJptXCc5i0n9/+ZpQx4yqpjOTGGSUz1k22XU07YaK3wpL9w+nPAfcBfzD06D72Y+eDIG5wi8w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + } + }, + "node_modules/@mdit/plugin-img-lazyload": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-img-lazyload/-/plugin-img-lazyload-0.7.6.tgz", + "integrity": "sha512-BBgxlXCOO7+9TMHJXtUyvi48jlH4ZYQtC9lNfgu1rvmq56iblZ7etOzg61/CmXmLgMHNvCbb/Kx7gRLkOBhv6A==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-img-mark": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-img-mark/-/plugin-img-mark-0.7.6.tgz", + "integrity": "sha512-IhbkmTLbxr+c04ZQcSV2IFq8n1GeRFO08qQagkONUijI1O2G/RE2y6QvCVBUy0gB1Hc8c1i9vEyK1F0e4GpheQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-img-size": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-img-size/-/plugin-img-size-0.7.6.tgz", + "integrity": "sha512-GZGEbuR0l4+ENXDG1Y2HsrNO2JuEmjI6PPe7pgsolk5yveWOiqzcEV4ushrWnpvwNal3Acuj+dpFDmZFOtm42g==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-include": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-include/-/plugin-include-0.7.6.tgz", + "integrity": "sha512-4Pu0SdD2IOONLor/3GtQOYOBDv1xZ1LWByXLhht0kqEioX5D+aDZ5KD5MZ0AxH0xoNUGMynMEn/ak4/D9LLI7Q==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7", + "upath": "^2.0.1" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-katex": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-katex/-/plugin-katex-0.7.6.tgz", + "integrity": "sha512-ZbPIks1SlgzS5R6YOL5s0J5vk20ROl5hF+Yj9o6CiEljodK2ln0ewpX36qM6POVrS/cu6E4Lx4X0fc5JTI6nAQ==", + "dev": true, + "dependencies": { + "@mdit/plugin-tex": "0.7.6", + "@types/katex": "^0.16.7", + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "katex": "^0.16.9", + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "katex": { + "optional": true + }, + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-mark": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-mark/-/plugin-mark-0.7.6.tgz", + "integrity": "sha512-D9gv+ebVORa4r69t0JeJg3NW9gCR/NOGYa1DKYDEQOJoZ1WwjZVuhdxd3wCpLKtqDLnyHTFWd3cnV/HHrmca3w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-mathjax": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-mathjax/-/plugin-mathjax-0.7.6.tgz", + "integrity": "sha512-Sn3nYbkPftAF5tgemIJ1aClxgU4NnElHPV5PIgkMxwusaSsN4RB+GZ1NmTKrPUqVoIZi0pO1oYxy08TlIHcrPg==", + "dev": true, + "dependencies": { + "@mdit/plugin-tex": "0.7.6", + "@types/markdown-it": "^13.0.7", + "upath": "^2.0.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2", + "mathjax-full": "^3.2.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + }, + "mathjax-full": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-stylize": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-stylize/-/plugin-stylize-0.7.6.tgz", + "integrity": "sha512-dhhYxo4KdnB66g1080qeuz8X/80q3h4Cpmwnwi2rCbQfl29Nv26H5tz5pp15NKQfdfVgrZnXXLsDskJeg5IcaQ==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-sub": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-sub/-/plugin-sub-0.7.6.tgz", + "integrity": "sha512-jo60gUC2KwnG4SqtyrbyI16hOcxb+Y1LwUKxXKfZRbZbcPcOfrzjE8q7XEq4MhmU51mfqY6EvCoB0yo49Zh2QA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-sup": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-sup/-/plugin-sup-0.7.6.tgz", + "integrity": "sha512-bCR1DxNuPAyYOaTtl3VkrRc7dMsJjrqt9HnM9T1ZiprW08uciaT37fLXF7DeUHWhGpcklI9dFtaU5cQkjUosTg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tab": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-tab/-/plugin-tab-0.7.6.tgz", + "integrity": "sha512-kWwWmhv+PeeA9aC5InGyY4eJeIsCDDMhi1tbzyKW/wJ1eeFp+rpWpSfWwUe6QyTy/ZOhQ1nGXz0/uXI4xWz4Xw==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tasklist": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-tasklist/-/plugin-tasklist-0.7.6.tgz", + "integrity": "sha512-ZsPHqQv/Cd9TUG3JfmrPOMRFR/SOG3/menWTz2kwE1HtJ1CUfBmoCRtfq2Sm7Rlqg/P6ZfWAd1t9bOwGkxD/5w==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tex": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-tex/-/plugin-tex-0.7.6.tgz", + "integrity": "sha512-TZfIJp98n7NI0TxDSxPs4Il1fqyJ/1GE3v8UZHA1DbfAdiVMxno/Dun9381ZxoJYibl+dnX3Kz7Ej3BDOceGGA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-uml": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@mdit/plugin-uml/-/plugin-uml-0.7.6.tgz", + "integrity": "sha512-P/aRntMnMfvtAEcLCkg6vhzNFEidj6jIno7VXr3HZNLitonr9ihnksM6jgrqG1rrMo4okBWUGFFGqsR8hHJk6g==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.7" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.2.tgz", + "integrity": "sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.2.tgz", + "integrity": "sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.2.tgz", + "integrity": "sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.2.tgz", + "integrity": "sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.2.tgz", + "integrity": "sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.2.tgz", + "integrity": "sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.2.tgz", + "integrity": "sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.2.tgz", + "integrity": "sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.2.tgz", + "integrity": "sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.2.tgz", + "integrity": "sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.2.tgz", + "integrity": "sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.2.tgz", + "integrity": "sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.2.tgz", + "integrity": "sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", + "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@stackblitz/sdk": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@stackblitz/sdk/-/sdk-1.9.0.tgz", + "integrity": "sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==", + "dev": true + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==", + "dev": true + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true + }, + "node_modules/@types/linkify-it": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.7.tgz", + "integrity": "sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/markdown-it-emoji": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/markdown-it-emoji/-/markdown-it-emoji-2.0.4.tgz", + "integrity": "sha512-H6ulk/ZmbDxOayPwI/leJzrmoW1YKX1Z+MVSCHXuYhvqckV4I/c+hPTf6UiqJyn2avWugfj30XroheEb6/Ekqg==", + "dev": true, + "dependencies": { + "@types/markdown-it": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.6.tgz", + "integrity": "sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.1.tgz", + "integrity": "sha512-4JG1b1SPQpviIXkp4cwUaHluU0KCgjLprdyYaw4cq6OkJzqFXuao5CefsOaftcRpw8rlMQVwmHEurK+1zIzTlA==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.2.tgz", + "integrity": "sha512-DFs9KF2oqL5sz2nyhhaGJfKPzh0Txjgu46cu+Xgyrd5WWDeAoYyiQf+pVB7AeH2G4YKSKKAT3C3l9eeJxDEWtg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/shared": "3.4.2", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.2.tgz", + "integrity": "sha512-Wbr7JIbgPmljyQYTYb8jdf4d/tkTovjoqdFAHP7h7rYySYbTz9oOoDPN0CUdqH9X0qpav3ksItsJf8rKf2Cr1Q==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.2", + "@vue/shared": "3.4.2" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.2.tgz", + "integrity": "sha512-7EoAi5EFNnByjxiHLKc4Q6YmiItFsGPjapk4fP3woBinkZoHaYEJ3mHqyKBK91P/gBmMoeOto+0RTKnH0tcRZw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/compiler-core": "3.4.2", + "@vue/compiler-dom": "3.4.2", + "@vue/compiler-ssr": "3.4.2", + "@vue/shared": "3.4.2", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.2.tgz", + "integrity": "sha512-9MpcSLDqW1BfNIy5wviEHudmyXVJ2pEVB2vXI4qo/W0tD6X5J7hzsDiYBihXaMaEP7ZL/zL9Kkv13AaWo2OM1w==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.2", + "@vue/shared": "3.4.2" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==", + "dev": true + }, + "node_modules/@vue/reactivity": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.2.tgz", + "integrity": "sha512-SegdalwvnTwghmF2piGCu/So626dlQq+hTGKJIpAJ+Sj+rnybI7tPSaQBmL2d68GEsHxJ6r/sfX9Wfp7Gr06zg==", + "dev": true, + "dependencies": { + "@vue/shared": "3.4.2" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.2.tgz", + "integrity": "sha512-AJUtHqCYRYZgvtjSDCnATEJg/4mFxhYh5tQZ7+KKFU+ugsaXSA7uZAVVfLEymkzpt4CYu7Dn4OPcHX+LI21NAw==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.4.2", + "@vue/shared": "3.4.2" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.2.tgz", + "integrity": "sha512-bDYMGxCZgzcsuR/Fk4xGRtsDPrH2bn6YVG6F1Jju4eUCl2KksdBT8xGh2uEUpUfMx/UA6a1Ya5Nf+hCEWqQ6Nw==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.4.2", + "@vue/shared": "3.4.2", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.2.tgz", + "integrity": "sha512-WcXwyNj2Kl2IrRRUWRG+0UFmeXf9P4wH90uKya9E7EyCcbxMp4V+y4Aoj1rtQkFaFV8tODhrbSXQi1ZdwgyTMQ==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.4.2", + "@vue/shared": "3.4.2" + }, + "peerDependencies": { + "vue": "3.4.2" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.2.tgz", + "integrity": "sha512-QANtRj0jTGS/jrAyFak0S1Pvlb+By3Q7GOW1l++kFWz8B0kv3AR/ZmwkoWf+i75jJPse+/F17jXou3fwQm47wg==", + "dev": true + }, + "node_modules/@vuepress/bundler-vite": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.0.tgz", + "integrity": "sha512-rX8S8IYpqqlJfNPstS/joorpxXx/4WuE7+gDM31i2HUrxOKGZVzq8ZsRRRU2UdoTwHZSd3LpUS4sMtxE5xLK1A==", + "dev": true, + "dependencies": { + "@vitejs/plugin-vue": "^4.5.0", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "autoprefixer": "^10.4.16", + "connect-history-api-fallback": "^2.0.0", + "postcss": "^8.4.31", + "postcss-load-config": "^4.0.1", + "rollup": "^4.4.1", + "vite": "~5.0.0", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } + }, + "node_modules/@vuepress/cli": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/cli/-/cli-2.0.0-rc.0.tgz", + "integrity": "sha512-XWSIFO9iOR7N4O2lXIwS5vZuLjU9WU/aGAtmhMWEMxrdMx7TQaJbgrfpTUEbHMf+cPI1DXBbUbtmkqIvtfOV0w==", + "dev": true, + "dependencies": { + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "cac": "^6.7.14", + "chokidar": "^3.5.3", + "envinfo": "^7.11.0", + "esbuild": "~0.19.5" + }, + "bin": { + "vuepress-cli": "bin/vuepress.js" + } + }, + "node_modules/@vuepress/client": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/client/-/client-2.0.0-rc.0.tgz", + "integrity": "sha512-TwQx8hJgYONYxX+QltZ2aw9O5Ym6SKelfiUduuIRb555B1gece/jSVap3H/ZwyBhpgJMtG4+/Mrmf8nlDSHjvw==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.5.1", + "@vuepress/shared": "2.0.0-rc.0", + "@vueuse/core": "^10.6.1", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } + }, + "node_modules/@vuepress/core": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-2.0.0-rc.0.tgz", + "integrity": "sha512-uoOaZP1MdxZYJIAJcRcmYKKeCIVnxZeOuLMOOB9CPuAKSalT1RvJ1lztw6RX3q9SPnlqtSZPQXDncPAZivw4pA==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/markdown": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.3.8" + } + }, + "node_modules/@vuepress/markdown": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-2.0.0-rc.0.tgz", + "integrity": "sha512-USmqdKKMT6ZFHYRztTjKUlO8qgGfnEygMAAq4AzC/uYXiEfrbMBLAWJhteyGS56P3rGLj0OPAhksE681bX/wOg==", + "dev": true, + "dependencies": { + "@mdit-vue/plugin-component": "^1.0.0", + "@mdit-vue/plugin-frontmatter": "^1.0.0", + "@mdit-vue/plugin-headers": "^1.0.0", + "@mdit-vue/plugin-sfc": "^1.0.0", + "@mdit-vue/plugin-title": "^1.0.0", + "@mdit-vue/plugin-toc": "^1.0.0", + "@mdit-vue/shared": "^1.0.0", + "@mdit-vue/types": "^1.0.0", + "@types/markdown-it": "^13.0.6", + "@types/markdown-it-emoji": "^2.0.4", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "markdown-it": "^13.0.2", + "markdown-it-anchor": "^8.6.7", + "markdown-it-emoji": "^2.0.2", + "mdurl": "^1.0.1" + } + }, + "node_modules/@vuepress/plugin-active-header-links": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.0.tgz", + "integrity": "sha512-UJdXLYNGL5Wjy5YGY8M2QgqT75bZ95EHebbqGi8twBdIJE9O+bM+dPJyYtAk2PIVqFORiw3Hj+PchsNSxdn9+g==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "ts-debounce": "^4.0.0", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } + }, + "node_modules/@vuepress/plugin-back-to-top": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.0.tgz", + "integrity": "sha512-6GPfuzV5lkAnR00BxRUhqMXwMWt741alkq2R6bln4N8BneSOwEpX/7vi19MGf232aKdS/Va4pF5p0/nJ8Sed/g==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "ts-debounce": "^4.0.0", + "vue": "^3.3.8" + } + }, + "node_modules/@vuepress/plugin-container": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-container/-/plugin-container-2.0.0-rc.0.tgz", + "integrity": "sha512-b7vrLN11YE7qiUDPfA3N9P7Z8fupe9Wbcr9KAE/bmfZ9VT4d6kzpVyoU7XHi99XngitsmnkaXP4aBvBF1c2AnA==", + "dev": true, + "dependencies": { + "@types/markdown-it": "^13.0.6", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/markdown": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "markdown-it": "^13.0.2", + "markdown-it-container": "^3.0.0" + } + }, + "node_modules/@vuepress/plugin-docsearch": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-docsearch/-/plugin-docsearch-2.0.0-rc.0.tgz", + "integrity": "sha512-bFbb+RxNyoLVbojv3Fh3UNfMmx9tszdae5ni9nG2xa05giCRwGKT0wFG3Q6n0a9kIQ6V7z3PjCj9x1k4SALPEA==", + "dev": true, + "dependencies": { + "@docsearch/css": "^3.5.2", + "@docsearch/js": "^3.5.2", + "@docsearch/react": "^3.5.2", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.6.1", + "ts-debounce": "^4.0.0", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } + }, + "node_modules/@vuepress/plugin-external-link-icon": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-rc.0.tgz", + "integrity": "sha512-o8bk0oIlj/BkKc02mq91XLDloq1VOz/8iNcRwKAeqBE6svXzdYiyoTGet0J/4iPuAetsCn75S57W6RioDJHMnQ==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/markdown": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.3.8" + } + }, + "node_modules/@vuepress/plugin-git": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.0.tgz", + "integrity": "sha512-r7UF77vZxaYeJQLygzodKv+15z3/dTLuGp4VcYO21W6BlJZvd4u9zqgiV7A//bZQvK4+3Hprylr0G3KgXqMewA==", + "dev": true, + "dependencies": { + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "execa": "^8.0.1" + } + }, + "node_modules/@vuepress/plugin-medium-zoom": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.0.tgz", + "integrity": "sha512-peU1lYKsmKikIe/0pkJuHzD/k6xW2TuqdvKVhV4I//aOE1WxsREKJ4ACcldmoIsnysoDydAUqKT6xDPGyDsH2g==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "medium-zoom": "^1.1.0", + "vue": "^3.3.8" + } + }, + "node_modules/@vuepress/plugin-nprogress": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.0.tgz", + "integrity": "sha512-rI+eK0Pg1KiZE+7hGmDUeSbgdWCid8Vnw0hFKNmjinDzGVmx4m03M6qfvclsI0SryH+lR7itZGLaR4gbTlrz/w==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } + }, + "node_modules/@vuepress/plugin-palette": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.0.tgz", + "integrity": "sha512-wW70SCp3/K7s1lln5YQsBGTog2WXaQv5piva5zhXcQ47YGf4aAJpThDa5C/ot4HhkPOKn8Iz5s0ckxXZzW8DIg==", + "dev": true, + "dependencies": { + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "chokidar": "^3.5.3" + } + }, + "node_modules/@vuepress/plugin-prismjs": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.0.tgz", + "integrity": "sha512-c5WRI7+FhVjdbymOKQ8F2KY/Bnv7aQtWScVk8vCMUimNi7v7Wff/A/i3KSFNz/tge3LxiAeH/Dc2WS/OnQXwCg==", + "dev": true, + "dependencies": { + "@vuepress/core": "2.0.0-rc.0", + "prismjs": "^1.29.0" + } + }, + "node_modules/@vuepress/plugin-theme-data": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.0.tgz", + "integrity": "sha512-FXY3/Ml+rM6gNKvwdBF6vKAcwnSvtXCzKgQwJAw3ppQTKUkLcbOxqM+h4d8bzHWAAvdnEvQFug5uEZgWllBQbA==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.5.1", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.3.8" + } + }, + "node_modules/@vuepress/shared": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/shared/-/shared-2.0.0-rc.0.tgz", + "integrity": "sha512-ikdSfjRv5LGM1iv4HHwF9P6gqTjaFCXKPK+hzlkHFHNZO1GLqk7/BPc4F51tAG1s8TcLhUZc+54LrfgS7PkXXA==", + "dev": true, + "dependencies": { + "@mdit-vue/types": "^1.0.0", + "@vue/shared": "^3.3.8" + } + }, + "node_modules/@vuepress/theme-default": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.0.tgz", + "integrity": "sha512-I8Y08evDmMuD1jh3NftPpFFSlCWOizQDJLjN7EQwcg7jiAP4A7c2REo6nBN2EmP24Mi7UrRM+RnytHR5V+pElA==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/plugin-active-header-links": "2.0.0-rc.0", + "@vuepress/plugin-back-to-top": "2.0.0-rc.0", + "@vuepress/plugin-container": "2.0.0-rc.0", + "@vuepress/plugin-external-link-icon": "2.0.0-rc.0", + "@vuepress/plugin-git": "2.0.0-rc.0", + "@vuepress/plugin-medium-zoom": "2.0.0-rc.0", + "@vuepress/plugin-nprogress": "2.0.0-rc.0", + "@vuepress/plugin-palette": "2.0.0-rc.0", + "@vuepress/plugin-prismjs": "2.0.0-rc.0", + "@vuepress/plugin-theme-data": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.6.1", + "sass": "^1.69.5", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + }, + "peerDependencies": { + "sass-loader": "^13.3.2" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + } + } + }, + "node_modules/@vuepress/utils": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@vuepress/utils/-/utils-2.0.0-rc.0.tgz", + "integrity": "sha512-Q1ay/woClDHcW0Qe91KsnHoupdNN0tp/vhjvVLuAYxlv/1Obii7hz9WFcajyyGEhmsYxdvG2sGmcxFA02tuKkw==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.12", + "@types/fs-extra": "^11.0.4", + "@types/hash-sum": "^1.0.2", + "@vuepress/shared": "2.0.0-rc.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "globby": "^14.0.0", + "hash-sum": "^2.0.0", + "ora": "^7.0.1", + "picocolors": "^1.0.0", + "upath": "^2.0.1" + } + }, + "node_modules/@vueuse/core": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.1.tgz", + "integrity": "sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==", + "dev": true, + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.7.1", + "@vueuse/shared": "10.7.1", + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.1.tgz", + "integrity": "sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.1.tgz", + "integrity": "sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==", + "dev": true, + "dependencies": { + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/algoliasearch": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.0.tgz", + "integrity": "sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.22.0", + "@algolia/cache-common": "4.22.0", + "@algolia/cache-in-memory": "4.22.0", + "@algolia/client-account": "4.22.0", + "@algolia/client-analytics": "4.22.0", + "@algolia/client-common": "4.22.0", + "@algolia/client-personalization": "4.22.0", + "@algolia/client-search": "4.22.0", + "@algolia/logger-common": "4.22.0", + "@algolia/logger-console": "4.22.0", + "@algolia/requester-browser-xhr": "4.22.0", + "@algolia/requester-common": "4.22.0", + "@algolia/requester-node-http": "4.22.0", + "@algolia/transporter": "4.22.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balloon-css": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-1.2.0.tgz", + "integrity": "sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-ts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-ts/-/bcrypt-ts-5.0.1.tgz", + "integrity": "sha512-+Q6wjkT+PO0Da56BIyaYyueMeqAV/zOXqfFIssRgCbQLGwU+YkBJfBpP2Q9Q8hGbpDyDNCrG36npSdE+S9HWUA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-codepen": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/create-codepen/-/create-codepen-1.0.1.tgz", + "integrity": "sha512-XzSWwGCFNeOnNGp3KdCDGaKq4Cp1SvjzpPGQqO0tj1HT3BhksLdl/xQ2ZEY4+0MQ3m1I/K1Fvpm4GGMthtamyA==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.616", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fflate": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.1.tgz", + "integrity": "sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/giscus": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/giscus/-/giscus-1.4.0.tgz", + "integrity": "sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==", + "dev": true, + "dependencies": { + "lit": "^3.1.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", + "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^1.0.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "dev": true, + "dependencies": { + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" + } + }, + "node_modules/lit-element": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.2.tgz", + "integrity": "sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==", + "dev": true, + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.2", + "@lit/reactive-element": "^2.0.0", + "lit-html": "^3.1.0" + } + }, + "node_modules/lit-html": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.0.tgz", + "integrity": "sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/markdown-it-container": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz", + "integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==", + "dev": true + }, + "node_modules/markdown-it-emoji": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.2.tgz", + "integrity": "sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==", + "dev": true + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/medium-zoom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", + "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", + "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", + "dev": true, + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.9.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.3.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/photoswipe": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.4.3.tgz", + "integrity": "sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/preact": { + "version": "10.19.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz", + "integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dev": true, + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.2.tgz", + "integrity": "sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.9.2", + "@rollup/rollup-android-arm64": "4.9.2", + "@rollup/rollup-darwin-arm64": "4.9.2", + "@rollup/rollup-darwin-x64": "4.9.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.2", + "@rollup/rollup-linux-arm64-gnu": "4.9.2", + "@rollup/rollup-linux-arm64-musl": "4.9.2", + "@rollup/rollup-linux-riscv64-gnu": "4.9.2", + "@rollup/rollup-linux-x64-gnu": "4.9.2", + "@rollup/rollup-linux-x64-musl": "4.9.2", + "@rollup/rollup-win32-arm64-msvc": "4.9.2", + "@rollup/rollup-win32-ia32-msvc": "4.9.2", + "@rollup/rollup-win32-x64-msvc": "4.9.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sass": { + "version": "1.69.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.6.tgz", + "integrity": "sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true + }, + "node_modules/search-insights": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", + "dev": true, + "peer": true + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "dev": true, + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", + "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/striptags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.2.0.tgz", + "integrity": "sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-debounce": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ts-debounce/-/ts-debounce-4.0.0.tgz", + "integrity": "sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==", + "dev": true + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.10.tgz", + "integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.2.tgz", + "integrity": "sha512-lLLsnZLysSxHXM5uIk7frehU2B0vwzZmbZlX9im/kKISd9rfDtywo9jhvgAMLnrLBtP5QtEaP4f9MYHPpfIJtQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.2", + "@vue/compiler-sfc": "3.4.2", + "@vue/runtime-dom": "3.4.2", + "@vue/server-renderer": "3.4.2", + "@vue/shared": "3.4.2" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", + "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==", + "dev": true, + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuepress": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.0.tgz", + "integrity": "sha512-sydt/B7+pIw926G5PntYmptLkC5o2buXKh+WR1+P2KnsvkXU+UGnQrJJ0FBvu/4RNuY99tkUZd59nyPhEmRrCg==", + "dev": true, + "dependencies": { + "vuepress-vite": "2.0.0-rc.0" + }, + "bin": { + "vuepress": "bin/vuepress.js" + }, + "engines": { + "node": ">=18.16.0" + } + }, + "node_modules/vuepress-plugin-auto-catalog": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-auto-catalog/-/vuepress-plugin-auto-catalog-2.0.0-rc.10.tgz", + "integrity": "sha512-+t3qSddUCAch0WfDFewSz9kX8CZ2u1mWWN6nx8fxJL7hl9ZmwaPuKEk5DQK9G93mFHSrh9PNIBYTIlNXkxtxfg==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-components": "2.0.0-rc.10", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-blog2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-blog2/-/vuepress-plugin-blog2-2.0.0-rc.10.tgz", + "integrity": "sha512-WXsUJuFS1XDUXvMXr0qZWkYf9A7YJ0f0mUnrK0UNclByBJLdKYFkCwddC6/jA+Z1N9QY2190EqPz29bZxpKg2w==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "chokidar": "^3.5.3", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-comment2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-comment2/-/vuepress-plugin-comment2-2.0.0-rc.10.tgz", + "integrity": "sha512-NYjLrrw3U8psffTLsEYOAFjBccRrPSIK7JielvMvAhHnhikItUhgPU9DbijvyMuHjBmF4FtygJdXzAnQcQGVjg==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "giscus": "^1.4.0", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "@waline/client": "^2.15.8 || ^3.0.0-alpha.8", + "artalk": "^2.7.3", + "sass-loader": "^13.3.0", + "twikoo": "^1.5.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "@waline/client": { + "optional": true + }, + "artalk": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "twikoo": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-components": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-components/-/vuepress-plugin-components-2.0.0-rc.10.tgz", + "integrity": "sha512-loOO2yVBtsCLAQcUnywTPFH2AkjIwj5HmZ2R6j9RWlwoCsFt9AhFfXOd9nE5j44ziTVgWbwiaNZY2xe1Y8k9tA==", + "dev": true, + "dependencies": { + "@stackblitz/sdk": "^1.9.0", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "balloon-css": "^1.2.0", + "create-codepen": "1.0.1", + "qrcode": "^1.5.3", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-reading-time2": "2.0.0-rc.10", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "artplayer": "^5.0.0", + "dashjs-pure": "^1.0.0", + "hls.js": "^1.4.12", + "mpegts.js": "^1.7.3", + "plyr": "^3.7.8", + "sass-loader": "^13.3.0", + "vidstack": "^1.9.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "artplayer": { + "optional": true + }, + "dashjs-pure": { + "optional": true + }, + "hls.js": { + "optional": true + }, + "mpegts.js": { + "optional": true + }, + "plyr": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "vidstack": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-copy-code2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-copy-code2/-/vuepress-plugin-copy-code2-2.0.0-rc.10.tgz", + "integrity": "sha512-nORqCINsCCopQz2l5uEWJeSnOL/0o18YXNhQR5GrAj9quWlIV27gphX3CqXZk8Tf2vJrZHHakCbE1l6DIIz6kA==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "balloon-css": "^1.2.0", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-md-enhance": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-md-enhance/-/vuepress-plugin-md-enhance-2.0.0-rc.10.tgz", + "integrity": "sha512-bZJs7MWv8GdGdC3OxjEU1kAnmOp9odiq+jYKr85mS4TkqH7aVYRrhuJcUErRKCSO7shBhBFpm1zVwnIGkx41Jw==", + "dev": true, + "dependencies": { + "@mdit/plugin-alert": "0.7.6", + "@mdit/plugin-align": "0.7.6", + "@mdit/plugin-attrs": "0.7.6", + "@mdit/plugin-container": "0.7.6", + "@mdit/plugin-demo": "0.7.6", + "@mdit/plugin-figure": "0.7.6", + "@mdit/plugin-footnote": "0.7.6", + "@mdit/plugin-img-lazyload": "0.7.6", + "@mdit/plugin-img-mark": "0.7.6", + "@mdit/plugin-img-size": "0.7.6", + "@mdit/plugin-include": "0.7.6", + "@mdit/plugin-katex": "0.7.6", + "@mdit/plugin-mark": "0.7.6", + "@mdit/plugin-mathjax": "0.7.6", + "@mdit/plugin-stylize": "0.7.6", + "@mdit/plugin-sub": "0.7.6", + "@mdit/plugin-sup": "0.7.6", + "@mdit/plugin-tab": "0.7.6", + "@mdit/plugin-tasklist": "0.7.6", + "@mdit/plugin-tex": "0.7.6", + "@mdit/plugin-uml": "0.7.6", + "@types/markdown-it": "^13.0.7", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "balloon-css": "^1.2.0", + "js-yaml": "^4.1.0", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "@types/reveal.js": "^4.4.5", + "@vue/repl": "^3.0.0", + "chart.js": "^4.0.0", + "echarts": "^5.0.0", + "flowchart.ts": "^2.0.0 || ^3.0.0", + "katex": "^0.16.0", + "kotlin-playground": "^1.23.0", + "markmap-lib": "^0.15.5", + "markmap-toolbar": "^0.15.5", + "markmap-view": "^0.15.5", + "mathjax-full": "^3.2.2", + "mermaid": "^10.6.0", + "reveal.js": "^5.0.0", + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "@types/reveal.js": { + "optional": true + }, + "@vue/repl": { + "optional": true + }, + "chart.js": { + "optional": true + }, + "echarts": { + "optional": true + }, + "flowchart.ts": { + "optional": true + }, + "katex": { + "optional": true + }, + "kotlin-playground": { + "optional": true + }, + "markmap-lib": { + "optional": true + }, + "markmap-toolbar": { + "optional": true + }, + "markmap-view": { + "optional": true + }, + "mathjax-full": { + "optional": true + }, + "mermaid": { + "optional": true + }, + "reveal.js": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-md-enhance/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/vuepress-plugin-md-enhance/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/vuepress-plugin-photo-swipe": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-photo-swipe/-/vuepress-plugin-photo-swipe-2.0.0-rc.10.tgz", + "integrity": "sha512-KxNLpP8nubNGhTZultle+C3eqbuWpJo8jyZkOm1ZofMFtEQRIFLjH5GyJsUFi7TR7vnWtUntaxPzunlqWXe9nA==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "photoswipe": "^5.4.3", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-reading-time2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-reading-time2/-/vuepress-plugin-reading-time2-2.0.0-rc.10.tgz", + "integrity": "sha512-CAXkVq/JoLuY22ji+ve4HEd2qCyAf4YYOy6pHosWit+Bb6oXvucG0Vjov5bJfcjeYtZljNi8jsxrpicACl+dRQ==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "vue": "^3.4.1", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-rtl": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-rtl/-/vuepress-plugin-rtl-2.0.0-rc.10.tgz", + "integrity": "sha512-0Tvr++LDJCcQVPWpR4IHM7jlAjUEF2FauupdxjqftsQJuy6moBmuI1mEclfZNg5dJRbw1/oawQhQgk7FvA+UXQ==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vue": "^3.4.1", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-sass-palette": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-sass-palette/-/vuepress-plugin-sass-palette-2.0.0-rc.10.tgz", + "integrity": "sha512-f578pwcohaKMRl6hxs+lHaVBfbl4j57XAnVLnJZBPYC3z0XZ2O670hrK86Z2xVlPml/BpPhVQhFPaLJMu3noWg==", + "dev": true, + "dependencies": { + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "chokidar": "^3.5.3", + "sass": "^1.69.5", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-seo2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-seo2/-/vuepress-plugin-seo2-2.0.0-rc.10.tgz", + "integrity": "sha512-H8NL+OnSsCSb2oqqqHnkWxoCzjeFjM7ezSnLDviJhR7l/lEKOBYg/Zprhe/UjtOf8OLs3yk/MQpE05dP4Kbk+g==", + "dev": true, + "dependencies": { + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-plugin-sitemap2": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap2/-/vuepress-plugin-sitemap2-2.0.0-rc.10.tgz", + "integrity": "sha512-HW9ck76DKpSp40a8jHm+OPQ6+PfJERj+RobuhAgLCEhm7Dx9uz/5ie4gl45A1rJ4ZP7NjteVNFYRzCBwNOejVg==", + "dev": true, + "dependencies": { + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "sitemap": "^7.1.1", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-shared": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-shared/-/vuepress-shared-2.0.0-rc.10.tgz", + "integrity": "sha512-cBm3r0LkMGySwVdPLs69z4pWLKeLZNMm7H5nOx166Isv1y5A8vgvhU1z4ud9AJBeUz+SoL8+Q0IlN8PmBVAOjQ==", + "dev": true, + "dependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "cheerio": "1.0.0-rc.12", + "dayjs": "^1.11.10", + "execa": "^8.0.1", + "fflate": "^0.8.1", + "gray-matter": "^4.0.3", + "semver": "^7.5.4", + "striptags": "^3.2.0", + "vue": "^3.4.1", + "vue-router": "^4.2.5" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.0", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "vuepress": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-theme-hope": { + "version": "2.0.0-rc.10", + "resolved": "https://registry.npmjs.org/vuepress-theme-hope/-/vuepress-theme-hope-2.0.0-rc.10.tgz", + "integrity": "sha512-rco6FT3Fqj77VYCjLyfU80doK4jW7PfJGSLYEyTCwocwsJhpOROGP4glLbqEnC59VrMWgFE/WfB8pfBfQkEZJg==", + "dev": true, + "dependencies": { + "@vuepress/cli": "2.0.0-rc.0", + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/plugin-active-header-links": "2.0.0-rc.0", + "@vuepress/plugin-container": "2.0.0-rc.0", + "@vuepress/plugin-external-link-icon": "2.0.0-rc.0", + "@vuepress/plugin-git": "2.0.0-rc.0", + "@vuepress/plugin-nprogress": "2.0.0-rc.0", + "@vuepress/plugin-prismjs": "2.0.0-rc.0", + "@vuepress/plugin-theme-data": "2.0.0-rc.0", + "@vuepress/shared": "2.0.0-rc.0", + "@vuepress/utils": "2.0.0-rc.0", + "@vueuse/core": "^10.7.1", + "balloon-css": "^1.2.0", + "bcrypt-ts": "^5.0.0", + "cheerio": "1.0.0-rc.12", + "chokidar": "^3.5.3", + "gray-matter": "^4.0.3", + "vue": "^3.4.1", + "vue-router": "^4.2.5", + "vuepress-plugin-auto-catalog": "2.0.0-rc.10", + "vuepress-plugin-blog2": "2.0.0-rc.10", + "vuepress-plugin-comment2": "2.0.0-rc.10", + "vuepress-plugin-components": "2.0.0-rc.10", + "vuepress-plugin-copy-code2": "2.0.0-rc.10", + "vuepress-plugin-md-enhance": "2.0.0-rc.10", + "vuepress-plugin-photo-swipe": "2.0.0-rc.10", + "vuepress-plugin-reading-time2": "2.0.0-rc.10", + "vuepress-plugin-rtl": "2.0.0-rc.10", + "vuepress-plugin-sass-palette": "2.0.0-rc.10", + "vuepress-plugin-seo2": "2.0.0-rc.10", + "vuepress-plugin-sitemap2": "2.0.0-rc.10", + "vuepress-shared": "2.0.0-rc.10" + }, + "engines": { + "node": ">=18.16.0", + "npm": ">=8", + "pnpm": ">=7", + "yarn": ">=2" + }, + "peerDependencies": { + "@vuepress/plugin-docsearch": "2.0.0-rc.0", + "@vuepress/plugin-search": "2.0.0-rc.0", + "nodejs-jieba": "^0.1.2", + "sass-loader": "^13.3.0", + "vuepress": "2.0.0-rc.0", + "vuepress-plugin-copyright2": "2.0.0-rc.10", + "vuepress-plugin-feed2": "2.0.0-rc.10", + "vuepress-plugin-pwa2": "2.0.0-rc.10", + "vuepress-plugin-search-pro": "2.0.0-rc.10", + "vuepress-vite": "2.0.0-rc.0", + "vuepress-webpack": "2.0.0-rc.0" + }, + "peerDependenciesMeta": { + "@vuepress/plugin-docsearch": { + "optional": true + }, + "@vuepress/plugin-search": { + "optional": true + }, + "nodejs-jieba": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "vuepress": { + "optional": true + }, + "vuepress-plugin-copyright2": { + "optional": true + }, + "vuepress-plugin-feed2": { + "optional": true + }, + "vuepress-plugin-pwa2": { + "optional": true + }, + "vuepress-plugin-search-pro": { + "optional": true + }, + "vuepress-vite": { + "optional": true + }, + "vuepress-webpack": { + "optional": true + } + } + }, + "node_modules/vuepress-vite": { + "version": "2.0.0-rc.0", + "resolved": "https://registry.npmjs.org/vuepress-vite/-/vuepress-vite-2.0.0-rc.0.tgz", + "integrity": "sha512-+2XBejeiskPyr2raBeA2o4uDFDsjtadpUVmtio3qqFtQpOhidz/ORuiTLr2UfLtFn1ASIHP6Vy2YjQ0e/TeUVw==", + "dev": true, + "dependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.0", + "@vuepress/cli": "2.0.0-rc.0", + "@vuepress/core": "2.0.0-rc.0", + "@vuepress/theme-default": "2.0.0-rc.0", + "vue": "^3.3.8" + }, + "bin": { + "vuepress": "bin/vuepress.js", + "vuepress-vite": "bin/vuepress.js" + }, + "engines": { + "node": ">=18.16.0" + }, + "peerDependencies": { + "@vuepress/client": "2.0.0-rc.0", + "vue": "^3.3.4" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..cbbfc69 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "tgwebvalid", + "version": "1.0.0", + "description": "Description", + "license": "MIT", + "type": "module", + "scripts": { + "docs:build": "vuepress build src", + "docs:clean-dev": "vuepress dev src --clean-cache", + "docs:dev": "vuepress dev src", + "docs:update-package": "npx vp-update" + }, + "devDependencies": { + "@vuepress/client": "2.0.0-rc.0", + "@vuepress/plugin-docsearch": "^2.0.0-rc.0", + "vue": "^3.4.1", + "vuepress": "2.0.0-rc.0", + "vuepress-theme-hope": "2.0.0-rc.10" + } +} diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts new file mode 100644 index 0000000..0cc3c3c --- /dev/null +++ b/src/.vuepress/config.ts @@ -0,0 +1,24 @@ +import { defineUserConfig } from "vuepress"; +import theme from "./theme.js"; + +export default defineUserConfig({ + base: "/tgWebValid-docs/", + + locales: { + "/": { + lang: "uk-UA", + title: "Тайтл", + description: "Опис", + }, + "/en/": { + lang: "en-US", + title: "Англ. тайтл", + description: "Англ. опис", + }, + }, + + theme, + + // Enable it with pwa + // shouldPrefetch: false, +}); diff --git a/src/.vuepress/navbar/index.ts b/src/.vuepress/navbar/index.ts new file mode 100644 index 0000000..341541a --- /dev/null +++ b/src/.vuepress/navbar/index.ts @@ -0,0 +1 @@ +export * from "./uk.js"; diff --git a/src/.vuepress/navbar/uk.ts b/src/.vuepress/navbar/uk.ts new file mode 100644 index 0000000..37807d2 --- /dev/null +++ b/src/.vuepress/navbar/uk.ts @@ -0,0 +1,12 @@ +import { navbar } from "vuepress-theme-hope"; + +export const ukNavbar = navbar([ + "/", + { + text: "Документація", + icon: "book", + link: "/docs/README.md", + activeMatch: "^/docs/$" + }, + "/docs/example", +]); diff --git a/src/.vuepress/public/assets/icon/apple-icon-152.png b/src/.vuepress/public/assets/icon/apple-icon-152.png new file mode 100644 index 0000000000000000000000000000000000000000..434fcc3d5cdd2a03b4c4e41e915bf715f00127d7 GIT binary patch literal 3568 zcmZ`+2{aU5`yTr)F_ttTTei_yqLJ(jMo7rMWEWuugY2>ULg3;+Pw4D@x(C^rAB zGE!6UX=!UP#n5_a-qHjB-lnr0JJV6xLN5Adw*Y`JaR4Ct5dd&R>55(j0D>R@z`7Fv zphB5|*Z+C@ZB@zu{XIBL2k`f-ly+5RQ+k;E^{tTr0M*=CrK;uwumJ$9BL+H}<{^Y% zMZeWQ&j=1~s=Mh)qzWqpp9g=)6LSLt?|qumd#rD6rf(1DmHRX$iXRCzmIVK{r=cKCN_)?x^+1RbMNcgU~W^#tYp(gY%-y znlCsgAgm9J)w%o+&?akTNSwic(kR^jNgKF{{r*gO-%#?kglPC22g?e8hGh&|>O0TV z!H+t}zQr1u5sw6nDNogjaS>i*i(Cq%vESQRZ~4YW&of6_Bqe{m*h=C#)QNNi7M&#Q zW4n|`HEp|3LtfB{cE`TyQt2wz)lt&xj}~a^mS7_A+)lKECp@~R1yLbj`_pEKRNfK!;F@;T@qlT-A#PEV_(HKV(^Zo zS!t1Bu*?_5&cgL2*E*?$6QhYv58dZ<}jroT% zM=?sQ@*cHY*6D5HXjsblaF-&ctkNb;I#z=R$>m+8%-2OfWZMMR+-@c?#Y`1)J4qvi znP?}(g^nBdhna)?30&tILGj5rm5yM6N_c?T36mmr%O@+_!LmN%#IcF+CHDE3>PzO< z^S4bxXeD;NES4*npIa(j>_hB!M;P(C?mLM%WxUL>N#qp4qZS2=s*RtP?}Q?`F&suynb{5 zFUbCZu4m{iFHT?;=!aM(^%J!ZdLmW}*SxwtIGj=!rCMs?iFk$O2Vf#;>Li$NKUA&Q z*!#BeIP|DiaONnbRIcG;44avf-az<`lXh+KySg*Md}$zeI)1s7bHbXs5fnLW;<^*R@IABV$y<*qWH=+Jt&$Q~eLxDl6g-Ov zsi?rA6YRBEtEou?{nr2=#}z)zgf}{z_6-^qkjMeu}J)_-sy~eZUF@hk7t?KEOY!ywTQy=U0jN_ zY&6JabKp)U+>(wx7J9S%rbGDrq3#6TyFD#|4c~9tvux$Zbb=f48Xc8n*~BALX zo)Nl=f+FtZZ@#R<<2pSzm^d&pvu(yAmgPy59Ex9(?CP~|dN-nrT6MTNm16!f(w^Jd8LG4*SOL$x3hc0_4TQBS zL4W$NyR(^uE+THP)9*W!+kJMO| z)M%!YdKSdEjkErX{$s~5%_rn%q_)WK8h)~tLg1kpUSnaC2F?ApX&92C&5%n&iOH2L zl4#!PF*am!Zj#!A6KhbK@?f470X-!kF;}sqv zAvjI_ksDIty3Tr9=m7VJora`iH53bpSJSlkIy+07tF0}Z-asqu>u`uo~ z*S2Ra1Edf$MoUS8dQv%%_kx-?&#L9s&F|c%)X+lzg|yM)`>50lRxWX%eExE}ovCuA z_MkX-~bH7-6X%YQC?CG#Uyc$+=?=|KX zT7OcSvZIJi0ZbOS2rCo>v+lEAgndy|-o^?jzD`(Z=@ur4tc#h3v1H0W%^B&VJVA(~ z#d>P9+DT}0W2~U>IJ;cR0YOjl0D_CbkXP*maOl6YFJ|aiAWJ)*pA_CaQGi z7gC~qSd>3<`MTO2lQqvTCiGd(`NRxc??*+5^*oWaQC*v9P(rb)va{$dR)pbAk2dbx zU6q}x50MC9o<`lHd=1%?Ey+o}iCx~9AME^!(k8QugqG4+CNQJDUJ@^x(_}7u7s~gz}9ncz^pLNUY2Y=_nv^tu%S# z%IHxDC5G>5`MP@^w7=DV?*m_FsJj@~R{m+rHX%57_?9Q5@|%Jj6%qjjELd*YVA;?K zg9B?n9<}RQ?5Dmpi&8PO{InlAWP>XsiE6YSTTotK(iiFzH@#< z74Z%9Xo|0nGFd=Iy1Ro#>i)z@2|SFLJorjPo0$fVu+{zC*Xaf?=+yBL$ivK@Nq~QU z>nS?mpWi=40{kNqC`v)|9^;ux_wP=XR5Ady~_mKWcfH}n3ypWof=?cCn%?CtK|?e4vJWT*{1f8{&?008Rh+=nu7 z$3HlChA~2?z0NYwDOXJcO#tA-OO`|X(~S95M;)jE01$cu0EmhK0QMQAs3ia(P!<6A zWd{JLWCH-)zOR~$)ffwB93E=l2hjiZH?1Y<3<|Ta4$L0_IAQY-m_CQCi~s=amb&*f zABRl-&iC}?AH(3!YFXg2y?UTd;_-!0vWO|#K}pi+rJ%6E9*+~j0(?d|%v()e7zTG2 zA>l;(#^08}S*C`%l{LP9XGSa9sh;5LOLJ)wcy5vhye1AN8ED=UooDXsH1euB9DKX? z?2^ni@KT|Fu_}dL{VNjNrcT9%t+o@@@f0S;{{BNP>g<@@#98m4jL`Y|PI`)sB{IWf zzN%vF(vdV`qSG;hNRzBqso2Shdp}$0QL7a@VD6LpB@*g|9CYEkiQcXFAgXHiVT3Q< zYXiMqN%pPVgF2ci?;F6CC&53N=eK?K6J4yn<`S%XjcdH~SAg0!a2+vTJ-<;YSu@V_ zhceackX|FGdbLtfbE80#^iJ5A*J7FYmbN?(oi=~+mSSEi$(aW%Up3@@&X=6&*O19k& zQ8ORx?+h$C?H%-V+C+V1L1L@0D50bMoxQ-0(6X(qf9qP?!q+0=UwC;;2>lJAp^sgq z)?xU${mLYTe=T^_igRn&(5<~u|MGg=LXcvrG{9N+FKkTqU3w@zgus$PTpE$ImU14J z0pPDlEdOo|?Mu)&8h*-`{K6r_!XHM z_Vbnnm(*ku{)weo#`aO$IIJPqauk9YS!S_AJ)pl~<(} zKfG8vO20(;y+#Jz=dv-@mP~jcX&B1tIEhbJUr{Pfpuwi$GoY>$H3TMT*!xNW-n|3h zvdqvoEad>a&ekY4HN$X`V_m^uE}GEd&(cMC4due*3uDy7%vj=&D)B{smKH=-uP2>5 zcAQ~P-c!vqEjkbj{1W}SlY<@ShHZQr!1PB?Pa6?tHq*0kw6fwg>}p}Q>Y>Yy6XTO- zrIeL|kJHFx$!BZ_;y-hIM?WTN?>cqL390lW5OTvZkjHuqt z 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/chrome-512.png b/src/.vuepress/public/assets/icon/chrome-512.png new file mode 100644 index 0000000000000000000000000000000000000000..a146f00036ded70bfe9491b0df7c9cfd816efce0 GIT binary patch literal 13251 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 literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/guide-maskable.png b/src/.vuepress/public/assets/icon/guide-maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..75449b6098bce400671eb4eac78c4ef687f431b2 GIT binary patch literal 2270 zcmai0X*?8q7yi%I48ml&c1A^ZV=OVq5Lt?vu@%Z-Y*}iItt4YfrY_Q^x1>yryva_; zFe)|58nTsKj4cY2n!4gnAKwq}@1EZ|=lMO)`8{9Gmvb0L+#JP46-5C6;?7R?Bq4Hs z7fRSb!V}|hA;3dzU2OrV&K27TKnOV|$cf|%z*$WI=otX~6iW1Y0OGI!ERq4h-vU7H zbU`!GN;rT99(1$^TNiV?+Jp=l>+I@)oDr2nNUQpK;LC){th2qXN8;G>`|-ol$K=7v z7s*@0XQoRGtycOneus(rix=qqn9M38&1ftc%Y>LdBu-~@ne(5Sve!Mm7&Y=T;>{<@ z?8($3=p_t^aI^_tB^OpivlvCXd~rW(VQnnk``xK@`TLz8cz(CVb4c+T5WW9zc|@N6 z#HT=KTb6WO$Ax@H_z?8v`E7u!;-O2f7w+o*dlre~*MrAI`IXSaKj1Opx1d^+NCc%3 z?9xH#E&CuT$?n?pwpUPq{b^c%g3)d23~paKvu;LYmz|^bC zV1j&}&#z;F$UEzb!)6H%8}yLxZdPWpOY0r8ktk!FQb@XnxqnA=B=Pw)vhJykiUd49 z)GtL_ECA^~q9SlVisxy!{Y^E8(h!C4lfNQ3?~Bv3cJgu&Ti0H|dR4g!xzA4#mUBQ(oyNwR*O&by(P}LEImf&exjTEHLi+}C&%Bz)+sTwT2hilKX@%|eoZ)M zRRKd4G14n^^!-&-GE*1niUr(~X|UV-|(;H!^9rpB}J`;_pS>{d_Z zu1tBmVV^3Cm8KFSGvdEokQvR1~fZj!j`%+;(4Ac5<5?ZC7wjIz!$d^@U zIM8e&088$9<{auD*q0D7Do0Mmjc_&3gb=x{yl74Y7Fm)Av6Mr>4!EyEO_DPpxe6_y zQ3H)A_ayhIx#TmTH{++aMgGdwBJ0WSCGZQi?)%1Iu74O1)D>Yy;EogP4J^{aj+Q<4 z5Xs`VPK~WvI|C{-F~nKH?p%95dv{sF1R4d+@F_ES-HlSuC_ifhp`B#=*Lpj%Yo9rz zC$Hm0s+TMDH{e|h+2?BwiHjz6c4)HA&OC>Pq*;z5r-1sgM(>wioOh5Ws%rTLcS^3e zx=El!N*@w~LvGqJL~)6y>eN@pwovL1?8SLq*WfadUbZN8N?8DmpI=@S zMT0}U7`u+}EcwBkcg4B>HJMqesl4Pn-d7Gz-fN?X^9-fn<~fZRv@Y6ap6K=$2uNpi#*Pf4g^m z{yUvHuZoYz4z`B~#4=iyXH(^wnImq@5A!e67i|B=%sGI&?T(nQAu#0=68(}T|H*Bge#ev+*1;K4iqEO6K%LH>w6Orsg;EJHxNMf@iV1JtnGTp zV?g^#XE^=!kYVw*h}R$V(SKH?S2i+Si6TU}8ubj<#_2k_0iRao@yL&z8oLca_Yy;6%S!sH68&tTKq2e| zY7M45wC0yq4e6Wf3gaLCyx#?wulGZH#$+Lc=L^JrL3{~q*ksmPQ#$UE9hi^ua8()5 z)In6ChptKcmR=!&jruS!=OqgxSQ7`){O#IEtdfK8-DnaTGeTZxeK+z#Kwe~WAwvae zpuM!f&e518MaE41tvH*_1VOE^p2%;lxHhfMb!&GGd0E7*ui+OPtZrA2{t7(v*`ctP zy>f*K+$ZQWIrj$~>{2paK^2@v2wAO2VI);M1+bQ#ST6#|18;m-rwtVuDfI`b zyoiK@?9KoB&wsk}F=u?Ga-U);507Zy$~lxZpeTrK_xQJKN>`Iyv7u}gN!4j?1PY%3 zjaY}Hv6O(=V0=(aun+(ai^J+0VfAsw9#~Vnkp&)Wri;bmvDo1VG3NgmqE1o5L(cqv U1Iw&dRcHXt4sP}pcI32w0BQ-(ivR!s literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/icon/ms-icon-144.png b/src/.vuepress/public/assets/icon/ms-icon-144.png new file mode 100644 index 0000000000000000000000000000000000000000..2464124422891d245517885bd71c2b49a7d29164 GIT binary patch literal 3657 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 Nz;ukXEAQGy{~Is6@Z10Z literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/assets/image/advanced.svg b/src/.vuepress/public/assets/image/advanced.svg new file mode 100644 index 0000000..c27ede5 --- /dev/null +++ b/src/.vuepress/public/assets/image/advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/blog.svg b/src/.vuepress/public/assets/image/blog.svg new file mode 100644 index 0000000..00fc40d --- /dev/null +++ b/src/.vuepress/public/assets/image/blog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/box.svg b/src/.vuepress/public/assets/image/box.svg new file mode 100644 index 0000000..9e6408e --- /dev/null +++ b/src/.vuepress/public/assets/image/box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/features.svg b/src/.vuepress/public/assets/image/features.svg new file mode 100644 index 0000000..6d62739 --- /dev/null +++ b/src/.vuepress/public/assets/image/features.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/github-dark.svg b/src/.vuepress/public/assets/image/github-dark.svg new file mode 100644 index 0000000..37fa923 --- /dev/null +++ b/src/.vuepress/public/assets/image/github-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/github-light.svg b/src/.vuepress/public/assets/image/github-light.svg new file mode 100644 index 0000000..d5e6491 --- /dev/null +++ b/src/.vuepress/public/assets/image/github-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/layout.svg b/src/.vuepress/public/assets/image/layout.svg new file mode 100644 index 0000000..da754b5 --- /dev/null +++ b/src/.vuepress/public/assets/image/layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/assets/image/markdown.svg b/src/.vuepress/public/assets/image/markdown.svg new file mode 100644 index 0000000..72056c9 --- /dev/null +++ b/src/.vuepress/public/assets/image/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/public/favicon.ico b/src/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b411f79ddd958612bceaae08e4fb10ad15340db2 GIT binary patch literal 67646 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 XM033m#ZyCteO>KizdX}A^ZWk+*}K?S literal 0 HcmV?d00001 diff --git a/src/.vuepress/public/logo.svg b/src/.vuepress/public/logo.svg new file mode 100644 index 0000000..364d184 --- /dev/null +++ b/src/.vuepress/public/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/.vuepress/sidebar/index.ts b/src/.vuepress/sidebar/index.ts new file mode 100644 index 0000000..341541a --- /dev/null +++ b/src/.vuepress/sidebar/index.ts @@ -0,0 +1 @@ +export * from "./uk.js"; diff --git a/src/.vuepress/sidebar/uk.ts b/src/.vuepress/sidebar/uk.ts new file mode 100644 index 0000000..32ab553 --- /dev/null +++ b/src/.vuepress/sidebar/uk.ts @@ -0,0 +1,13 @@ +import { sidebar } from "vuepress-theme-hope"; + +export const ukSidebar = sidebar({ + "/": [ + { + text: "Документація", + icon: "laptop-code", + prefix: "docs/", + children: "structure", + }, + ], + "/docs/": "structure", +}); diff --git a/src/.vuepress/styles/config.scss b/src/.vuepress/styles/config.scss new file mode 100644 index 0000000..f91061d --- /dev/null +++ b/src/.vuepress/styles/config.scss @@ -0,0 +1,3 @@ +// you can change config here +$colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50, + #7f8c8d !default; diff --git a/src/.vuepress/styles/index.scss b/src/.vuepress/styles/index.scss new file mode 100644 index 0000000..f6af387 --- /dev/null +++ b/src/.vuepress/styles/index.scss @@ -0,0 +1 @@ +// place your custom styles here diff --git a/src/.vuepress/styles/palette.scss b/src/.vuepress/styles/palette.scss new file mode 100644 index 0000000..356a428 --- /dev/null +++ b/src/.vuepress/styles/palette.scss @@ -0,0 +1,2 @@ +// you can change colors here +$theme-color: #096dd9; diff --git a/src/.vuepress/theme.ts b/src/.vuepress/theme.ts new file mode 100644 index 0000000..9ced769 --- /dev/null +++ b/src/.vuepress/theme.ts @@ -0,0 +1,172 @@ +import { hopeTheme } from "vuepress-theme-hope"; +import { ukNavbar } from "./navbar/index.js"; +import { ukSidebar } from "./sidebar/index.js"; + +export default hopeTheme({ + hostname: "https://vuepress-theme-hope-docs-demo.netlify.app", + + author: { + name: "Mr. Anonymous", + url: "https://mister-hope.com" + }, + + iconAssets: "fontawesome-with-brands", + + logo: "https://theme-hope-assets.vuejs.press/logo.svg", + + repo: "CrazyTapok-bit/tgWebValid-docs", + + docsBranch: "master", + + docsDir: "src", + + navTitle: false, + + locales: { + "/": { + navbar: ukNavbar, + sidebar: ukSidebar, + displayFooter: true, + paginationLocales: { + prev: "Назад", + next: "Далі" + } + }, + }, + + plugins: { + // You should generate and use your own comment service + // comment: { + // provider: "Giscus", + // repo: "vuepress-theme-hope/giscus-discussions", + // repoId: "R_kgDOG_Pt2A", + // category: "Announcements", + // categoryId: "DIC_kwDOG_Pt2M4COD69", + // }, + + sitemap: true, + + seo: true, + + // All features are enabled for demo, only preserve features you need here + mdEnhance: { + attrs: true, + codetabs: true, + component: true, + demo: true, + figure: true, + imgLazyload: true, + imgSize: true, + include: true, + mark: true, + stylize: [ + { + matcher: "Recommended", + replacer: ({ tag }) => { + if (tag === "em") + return { + tag: "Badge", + attrs: { type: "tip" }, + content: "Recommended", + }; + }, + }, + ], + sub: true, + sup: true, + tabs: true, + vPre: true, + + // install chart.js before enabling it + // chart: true, + + // insert component easily + + // install echarts before enabling it + // echarts: true, + + // install flowchart.ts before enabling it + // flowchart: true, + + // gfm requires mathjax-full to provide tex support + // gfm: true, + + // install katex before enabling it + // katex: true, + + // install mathjax-full before enabling it + // mathjax: true, + + // install mermaid before enabling it + // mermaid: true, + + // playground: { + // presets: ["ts", "vue"], + // }, + + // install reveal.js before enabling it + // revealJs: { + // plugins: ["highlight", "math", "search", "notes", "zoom"], + // }, + + // install @vue/repl before enabling it + // vuePlayground: true, + } + // uncomment these if you want a pwa + // pwa: { + // favicon: "/favicon.ico", + // cacheHTML: true, + // cachePic: true, + // appendBase: true, + // apple: { + // icon: "/assets/icon/apple-icon-152.png", + // statusBarColor: "black", + // }, + // msTile: { + // image: "/assets/icon/ms-icon-144.png", + // color: "#ffffff", + // }, + // manifest: { + // icons: [ + // { + // src: "/assets/icon/chrome-mask-512.png", + // sizes: "512x512", + // purpose: "maskable", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-mask-192.png", + // sizes: "192x192", + // purpose: "maskable", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-512.png", + // sizes: "512x512", + // type: "image/png", + // }, + // { + // src: "/assets/icon/chrome-192.png", + // sizes: "192x192", + // type: "image/png", + // }, + // ], + // shortcuts: [ + // { + // name: "Demo", + // short_name: "Demo", + // url: "/demo/", + // icons: [ + // { + // src: "/assets/icon/guide-maskable.png", + // sizes: "192x192", + // purpose: "maskable", + // type: "image/png", + // }, + // ], + // }, + // ], + // }, + // }, + }, +}); diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..13af92e --- /dev/null +++ b/src/README.md @@ -0,0 +1,268 @@ +--- +home: true +icon: signs-post +title: Головна +heroImage: /logo.svg +bgImage: https://theme-hope-assets.vuejs.press/bg/6-light.svg +bgImageDark: https://theme-hope-assets.vuejs.press/bg/6-dark.svg +bgImageStyle: + background-attachment: fixed +heroText: TgWebValid +tagline: Бібліотека для перевірки користувачів веб-програми Telegram і віджет входу в Telegram для PHP +actions: + - text: Як почати + icon: signs-post + link: ./docs + type: primary + + - text: Приклад + link: ./docs/example + +highlights: + - header: Легко встановити + image: /assets/image/box.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/3-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/3-dark.svg + highlights: + - title: Запустіть composer require tg/tgwebvalid щоб встановити + + - header: Add things you want in markdown + description: We extended the standard commonMark specification and added tons of new features for you. + image: /assets/image/markdown.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/2-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/2-dark.svg + bgImageStyle: + background-repeat: repeat + background-size: initial + features: + - title: Links Check + icon: clipboard-check + details: Check markdown links + link: https://theme-hope.vuejs.press/guide/markdown/others.html#link-check + + - title: Hint box + icon: box-archive + details: Decorate Markdown content with styles + link: https://theme-hope.vuejs.press/guide/markdown/hint.html + + - title: GFM alerts + icon: bell + details: GFM alert box + link: https://theme-hope.vuejs.press/guide/markdown/alert.html + + - title: Tabs + icon: table-columns + details: Group similar content with tabs and switch them together + link: https://theme-hope.vuejs.press/guide/markdown/tabs.html + + - title: Code Tabs + icon: code + details: Group similar codes with tabs + link: https://theme-hope.vuejs.press/guide/markdown/code-tabs.html + + - title: Custom Align + icon: align-center + details: Let you decide to align paragraphs in the way you like + link: https://theme-hope.vuejs.press/guide/markdown/align.html + + - title: Attrs support + icon: code + details: Allow you to add attributes for Markdown content + link: https://theme-hope.vuejs.press/guide/markdown/attrs.html + + - title: Superscript and subscript support + icon: superscript + details: Your Markdown now support superscript and subscript + link: https://theme-hope.vuejs.press/guide/markdown/sup-sub.html + + - title: Footnote support + icon: quote-left + details: Your Markdown now support footnotes + link: https://theme-hope.vuejs.press/guide/markdown/footnote.html + + - title: Mark Support + icon: highlighter + details: Mark words and sentences in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/mark.html + + - title: Tasklist Support + icon: square-check + details: Use tasklist in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/tasklist.html + + - title: image syntax + icon: image + details: improve syntax to specify size and color scheme + link: https://theme-hope.vuejs.press/guide/markdown/image.html + + - title: Component Support + icon: puzzle-piece + details: Easily insert components in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/component.html + + - title: Chart Support + icon: chart-simple + details: Display charts in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/chartjs.html + + - title: Flowchart Support + icon: route + details: Create your flowchart in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/flowchart.html + + - title: Mermaid Support + icon: chart-pie + details: Add mermaid diagram in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/mermaid.html + + - title: Tex Support + icon: square-root-variable + details: Markdown now have Tex Support so you can write your formula + link: https://theme-hope.vuejs.press/guide/markdown/tex.html + + - title: Include snippet Support + icon: fab fa-markdown + details: split your docs with different parts and import them in Markdown + link: https://theme-hope.vuejs.press/guide/markdown/include.html + + - title: Playground Support + icon: code + details: You can add playground in Markdown files + link: https://theme-hope.vuejs.press/guide/markdown/playground.html + + - title: Vue playground Support + icon: fab fa-vuejs + details: Show living vue component in playground + link: https://theme-hope.vuejs.press/guide/markdown/vue-playground.html + + - title: Code Demo Support + icon: laptop-code + details: You can insert code demo easily + link: https://theme-hope.vuejs.press/guide/markdown/demo.html + + - title: Presentation Support + icon: person-chalkboard + details: Insert presentation in Markdown files via Reveal.js + link: https://theme-hope.vuejs.press/guide/markdown/revealjs/ + + - header: Improved layouts + description: An awesome responsive layout with full a11y support. + image: /assets/image/layout.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/5-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/5-dark.svg + highlights: + - title: Layout + icon: object-group + details: Improved navbar, sidebar, page nav and new breadcrumb, footer and toc. We also bring you a brand new homepage. + link: https://theme-hope.vuejs.press/guide/layout/ + + - title: Dark Mode + icon: circle-half-stroke + details: Switch between light and dark modes freely + link: https://theme-hope.vuejs.press/guide/interface/darkmode.html + + - title: Customizable Theme Color + icon: palette + details: Customize theme color + link: https://theme-hope.vuejs.press/guide/interface/theme-color.html + + - title: Slide Page + icon: person-chalkboard + details: Adding slide pages to display things you like + link: https://theme-hope.vuejs.press/guide/layout/slides + + - title: More + icon: ellipsis + details: RTL layout, print support, fullscreen button, etc. + link: https://theme-hope.vuejs.press/guide/interface/others.html + + - header: New features + image: /assets/image/features.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/1-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/1-dark.svg + features: + - title: Pageviews and Comments + icon: comment-dots + details: Start pageview statistics and comment support with Waline + link: https://theme-hope.vuejs.press/guide/feature/comment.html + + - title: Article Information + icon: circle-info + details: Add author, writing date, reading time, word count and other information to your article + link: https://theme-hope.vuejs.press/guide/feature/page-info.html + + - title: Article Encryption + icon: lock + details: Encrypt you articles based on page links, so that only the one you want could see them + link: https://theme-hope.vuejs.press/guide/feature/encrypt.html + + - title: Search + icon: search + details: Support docsearch and client search + link: https://theme-hope.vuejs.press/guide/feature/search.html + + - title: Copy Code Blocks + icon: copy + details: Copy codes with one click in code blocks + link: https://theme-hope.vuejs.press/guide/feature/copy-code.html + + - title: Image Preview + icon: image + details: Support viewing, zooming, sharing your page images like a gallery + link: https://theme-hope.vuejs.press/guide/feature/photo-swipe.html + + - header: Blogging + description: Create personal blog with theme + image: /assets/image/blog.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/5-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/5-dark.svg + highlights: + - title: Blog features + icon: blog + details: Listing your articles with their dates, tags and categories + link: https://theme-hope.vuejs.press/guide/blog/intro.html + + - title: Blog homepage + icon: blog + details: New blog homepage + link: https://theme-hope.vuejs.press/guide/blog/home.html + + - title: Blogger info + icon: circle-info + details: Customize avatar, name, slogan, introduction and social links + link: https://theme-hope.vuejs.press/guide/blog/blogger.html + + - title: Timeline + icon: clock + details: Read through blog posts in a timeline + link: https://theme-hope.vuejs.press/guide/blog/timeline.html + + - header: Advanced + description: Advanced features to improve site SEO and user experience + image: /assets/image/advanced.svg + bgImage: https://theme-hope-assets.vuejs.press/bg/4-light.svg + bgImageDark: https://theme-hope-assets.vuejs.press/bg/4-dark.svg + highlights: + - title: SEO Enhancement + icon: dumbbell + details: Optimize pages for search engines + link: https://theme-hope.vuejs.press/guide/advanced/seo.html + + - title: Sitemap + icon: sitemap + details: Generate a Sitemap for your site + link: https://theme-hope.vuejs.press/guide/advanced/sitemap.html + + - title: Feed + icon: rss + details: Generate feed to allow users to subscribe it + link: https://theme-hope.vuejs.press/guide/advanced/feed.html + + - title: PWA + icon: mobile-screen + details: Make your site more like an APP + link: https://theme-hope.vuejs.press/guide/advanced/pwa.html + +copyright: false +footer: Theme by VuePress Theme Hope | MIT Licensed, Copyright © 2019-present Mr.Hope +--- \ No newline at end of file diff --git a/src/docs/README.md b/src/docs/README.md new file mode 100644 index 0000000..04e86d1 --- /dev/null +++ b/src/docs/README.md @@ -0,0 +1,36 @@ +--- +title: Документація +index: false +icon: book +--- + +[![Testing Status](https://github.com/CrazyTapok-bit/tgWebValid/workflows/PHP%20CI/badge.svg)](https://github.com/CrazyTapok-bit/tgWebValid/actions) +[![Minimum PHP Version](https://img.shields.io/packagist/dependency-v/tg/tgwebvalid/php)](https://packagist.org/packages/tg/tgwebvalid) +[![Latest version](https://img.shields.io/packagist/v/tg/tgWebValid)](https://packagist.org/packages/tg/tgwebvalid) +[![Total Downloads](https://img.shields.io/packagist/dt/tg/tgwebvalid)](https://packagist.org/packages/tg/tgwebvalid) +[![Total Stars](https://img.shields.io/packagist/stars/tg/tgwebvalid)](https://packagist.org/packages/tg/tgwebvalid) +[![License](https://img.shields.io/packagist/l/tg/tgwebvalid)](https://packagist.org/packages/tg/tgwebvalid) + +[![StandWithUkraine](https://raw.githubusercontent.com/CrazyTapok-bit/tgWebValid/4.x/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) +[![StandWithUkraine](https://raw.githubusercontent.com/CrazyTapok-bit/tgWebValid/4.x/badges/RussianWarship.svg)](https://stand-with-ukraine.pp.ua) + +[![StandWithUkraine](https://raw.githubusercontent.com/CrazyTapok-bit/tgWebValid/4.x/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua) + +## Про TgWebValid + +Наша бібліотека легка, швидка :rocket:, сучасна та має `100%` автокомпліт для отримання даних користувача. При цьому ми зробили її автономною, тому її використання можливе в будь-яких фреймворках або без них. + +І найголовніше, наша бібліотека призначена для перевірки користувачів [Telegram Mini App](https://core.telegram.org/bots/webapps) та [Telegram Login Widget](https://core.telegram.org/widgets/login) на PHP + +Автентифікація відбувається шляхом шифрування отриманих необроблених даних користувача та порівняння їх із хешем, який надає Telegram. + +:::info Рекомендація +Надавайте доступ до конфіденційних даних користувачів **лише після успішної перевірки** +::: + +**Почніть перевіряти користувачів швидко та безпечно.** + +:::tip Зверніть увагу +Середній час розгортання бібліотеки TgWebValid у вашому проекті складає **всього ~ 1хв**. +::: + diff --git a/src/docs/entity/README.md b/src/docs/entity/README.md new file mode 100644 index 0000000..b51ac51 --- /dev/null +++ b/src/docs/entity/README.md @@ -0,0 +1,9 @@ +--- +title: Сутності +icon: database +index: false +dir: + order: 3 +--- + + \ No newline at end of file diff --git a/src/docs/entity/init-data/README.md b/src/docs/entity/init-data/README.md new file mode 100644 index 0000000..2aeb808 --- /dev/null +++ b/src/docs/entity/init-data/README.md @@ -0,0 +1,86 @@ +--- +title: InitData +icon: object-group +dir: + order: 1 +--- + +Цей об’єкт містить дані, які передаються в міні-програму під час її відкриття. Отримати доступ до цієї сутності можна виключно після успішної автентифікації користувача за допомогою валідатора [міні додаток](../../validator/web-app.md). + +## Доступні властовості + +### `queryId` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Унікальний ідентифікатор сеансу Web App + +### `user` + +- **Тип:** [`TgWebValid\Entities\InitData\User`](./user.md) +- **За замовчуванням:** `null` + +_Опціонально._ Об'єкт, що містить дані про поточного користувача. + +### `receiver` + +- **Тип:** [`TgWebValid\Entities\InitData\Receiver`](./receiver.md) +- **За замовчуванням:** `null` + +_Опціонально._ Об’єкт, що містить дані про чат-партнера поточного користувача в чаті, де бот був запущений через меню вкладень. Повертається лише для приватних чатів і лише для веб-програм, запущених через [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu). + +### `chat` + +- **Тип:** [`TgWebValid\Entities\InitData\Chat`](./chat.md) +- **За замовчуванням:** `null` + +_Опціонально._ Об’єкт, що містить дані про чат, у якому бот був запущений через меню вкладень. Повертається для супергруп, каналів і групових чатів – лише для веб-програм, запущених через [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu). + +### `chatType` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Тип чату, з якого відкрито веб-програму. Може бути `sender` для приватного чату з користувачем, який відкриває посилання, `private`, `group`, `supergroup` або `channel`. Повертається лише для веб-програм, запущених за прямими посиланнями. + +### `chatInstance` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Глобальний ідентифікатор, унікально відповідний чату, з якого було відкрито веб-додаток. Повертається лише для веб-програм, запущених за прямим посиланням. + +### `startParam` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Значення параметра [`startattach`](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu), передане через посилання. Повертається лише для веб-програм, коли їх запускають із [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu) за посиланням. + +### `canSendAfter` + +- **Тип:** `int` +- **За замовчуванням:** `null` + +_Опціонально._ Час у секундах, після якого можна надіслати повідомлення за допомогою методу [answerWebAppQuery](https://core.telegram.org/bots/api#answerwebappquery). + +### `authDate` + +- **Тип:** [`CarbonInterface`](https://carbon.nesbot.com/docs/) + +Інтерфейс роботи з датою для отримання часу відкриття форми в форматі `Unix`, і не тільки. + +### `hash` + +- **Тип:** `string` + +Хеш усіх переданих параметрів, за допомогою якого валідотор може перевірити їх дійсність. + +## Методи + +### `toArray` + +Повертає сутність, включно з дочірніми (якщо такі є), у вигляді масива. + +[Створено на основі офіційної документації](https://core.telegram.org/bots/webapps#webappinitdata) \ No newline at end of file diff --git a/src/docs/entity/init-data/chat.md b/src/docs/entity/init-data/chat.md new file mode 100644 index 0000000..482bd57 --- /dev/null +++ b/src/docs/entity/init-data/chat.md @@ -0,0 +1,49 @@ +--- +title: Chat +icon: message +order: 3 +--- + +Цей об'єкт представляє чат. + +## Доступні властовості + +### `id` + +- **Тип:** `int` + +Унікальний ідентифікатор для цього чату. Це число може мати 32-52 значущих біти. Тому 64-розрядне ціле число зі знаком або тип з плаваючою точністю подвійної точності безпечні для зберігання цього ідентифікатора. + +### `type` + +- **Тип:** `string` + +Тип чату, може бути `group`, `supergroup` або `channel` + +### `title` + +- **Тип:** `string` + +Назва чату + +### `username` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +*Опціонально.* Нік користувача чату + +### `photoUrl` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +*Опціонально.* URL-адреса фотографії чату. Фотографія може бути у форматах `.jpeg` або `.svg`. Повертається лише для веб-програм, запущених із [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu). + +## Методи + +### `toArray` + +Повертає сутність, включно з дочірніми (якщо такі є), у вигляді масива. + +[Створено на основі офіційної документації](https://core.telegram.org/bots/webapps#webappchat) \ No newline at end of file diff --git a/src/docs/entity/init-data/receiver.md b/src/docs/entity/init-data/receiver.md new file mode 100644 index 0000000..c1bc07c --- /dev/null +++ b/src/docs/entity/init-data/receiver.md @@ -0,0 +1,61 @@ +--- +title: Receiver +icon: paper-plane +order: 2 +--- + +Цей об’єкт містить дані користувача Mini App. + +## Доступні властовості + +### `id` + +- **Тип:** `int` + +Унікальний ідентифікатор для цього чату. Це число може мати 32-52 значущих біти. Тому 64-розрядне ціле число зі знаком або тип з плаваючою точністю подвійної точності безпечні для зберігання цього ідентифікатора. + +### `isBot` + +- **Тип:** `bool` +- **За замовчуванням:** `null` + +_Опціонально._ `true`, якщо цей користувач бот. + +### `firstName` + +- **Тип:** `string` + +Ім'я користувача або бота. + +### `lastName` + +- **Тип:** `string` +- **За замовчуванням:** `null` +- _Опціонально._ Прізвище користувача або бота. + +### `username` + +- **Тип:** `string` +- **За замовчуванням:** `null` +- _Опціонально._ Нік користувача або бота. + +### `isPremium` + +- **Тип:** `bool` +- **За замовчуванням:** `null` +- _Опціонально._ `true`, якщо цей користувач є користувачем Telegram Premium + +### `photoUrl` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ URL-адреса фотографії чату. Фотографія може бути у форматах `.jpeg` або `.svg`. Повертається лише для веб-програм, запущених із [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu). + +## Методи + +### `toArray` + +Повертає сутність, включно з дочірніми (якщо такі є), у вигляді масива. + +[Створено на основі офіційної документації](https://core.telegram.org/bots/webapps#webappuser) \ No newline at end of file diff --git a/src/docs/entity/init-data/user.md b/src/docs/entity/init-data/user.md new file mode 100644 index 0000000..c400f19 --- /dev/null +++ b/src/docs/entity/init-data/user.md @@ -0,0 +1,85 @@ +--- +title: User +icon: user +order: 1 +--- + +Цей об’єкт містить дані користувача Mini App. + +## Доступні властовості + +### `id` + +- **Тип:** `int` + +Унікальний ідентифікатор для цього чату. Це число може мати 32-52 значущих біти. Тому 64-розрядне ціле число зі знаком або тип з плаваючою точністю подвійної точності безпечні для зберігання цього ідентифікатора. + +### `isBot` + +- **Тип:** `bool` +- **За замовчуванням:** `null` + +_Опціонально._ `true`, якщо цей користувач бот. + +### `firstName` + +- **Тип:** `string` + +Ім'я користувача або бота. + +### `lastName` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Прізвище користувача або бота. + +### `username` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Нік користувача або бота. + +### `languageCode` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Мовний тег IETF мови користувача. + +### `isPremium` + +- **Тип:** `bool` +- **За замовчуванням:** `null` + +_Опціонально._ `true`, якщо цей користувач є користувачем Telegram Premium + +### `allowsWriteToPm` + +- **Тип:** `bool` +- **За замовчуванням:** `null` + +_Опціонально._ `true`, якщо цей користувач дозволив боту надсилати йому повідомлення. + +### `addedToAttachmentMenu` + +- **Тип:** `bool` +- **За замовчуванням:** `null` + +_Опціонально._ `true`, якщо цей користувач додав бота в меню вкладень. + +### `photoUrl` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ URL-адреса фотографії чату. Фотографія може бути у форматах `.jpeg` або `.svg`. Повертається лише для веб-програм, запущених із [меню вкладень](https://core.telegram.org/bots/webapps#adding-bots-to-the-attachment-menu). + +## Методи + +### `toArray` + +Повертає сутність, включно з дочірніми (якщо такі є), у вигляді масива. + +[Створено на основі офіційної документації](https://core.telegram.org/bots/webapps#webappuser) \ No newline at end of file diff --git a/src/docs/entity/login-widget.md b/src/docs/entity/login-widget.md new file mode 100644 index 0000000..a27cc2a --- /dev/null +++ b/src/docs/entity/login-widget.md @@ -0,0 +1,62 @@ +--- +title: LoginWidget +icon: object-group +order: 2 +--- + +Цей об’єкт містить дані, які повертаються після успішної автентифікації за допомогою [віджета входу](../validator/login-widget.md). + +## Властовості + +### `id` + +- **Тип:** `int` + +Унікальний ідентифікатор користувача. Це число може мати 32-52 значущих біти. Тому 64-розрядне ціле число зі знаком або тип з плаваючою точністю подвійної точності безпечні для зберігання цього ідентифікатора. + +### `firstName` + +- **Тип:** `string` + +Ім'я користувача + +### `lastName` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Прізвище користувача + +### `username` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ Нік користувача + +### `photoUrl` + +- **Тип:** `string` +- **За замовчуванням:** `null` + +_Опціонально._ URL фотографії профілю користувача. Фотографія може бути у форматах `.jpeg` або `.svg`. + +### `authDate` + +- **Тип:** [`CarbonInterface`](https://carbon.nesbot.com/docs/) + +Інтерфейс роботи з датою для отримання часу відкриття форми в форматі `Unix`, і не тільки. + +### `hash` + +- **Тип:** `string` + +Хеш усіх переданих параметрів, за допомогою якого валідотор може перевірити їх дійсність. + +## Методи + +### `toArray` + +Повертає сутність, включно з дочірніми (якщо такі є), у вигляді масива. + +[Створено на основі офіційної документації](https://core.telegram.org/widgets/login#receiving-authorization-data) \ No newline at end of file diff --git a/src/docs/example.md b/src/docs/example.md new file mode 100644 index 0000000..66d7834 --- /dev/null +++ b/src/docs/example.md @@ -0,0 +1,62 @@ +--- +title: Повний приклад +icon: bolt +order: 5 +--- + +Ми намагаємось відобразити максимально повний приклад яким ви, скоріш за все, будете користуватись. + +```php +addBot(new BotConfig( + name: 'secondary', + token: 'TELEGRAM_BOT_TOKEN_2' + )); + + /** + * Використаю бот за замовчуванням, + * та викличу бажаний тип перевірки + */ + $user = $tgWebValid->bot()->validateLoginWidget( + user: [/** Дані користувача */] + ); + + /** Якщо перевірка успішна, виведу сутність LoginWidget з даними про юзера */ + var_dump($user); + + /** + * Або, вказую з яким ботом хочу працювати, + * та викликаю бажаний тип перевірки + */ + $initData = $tgWebValid->bot(name: 'secondary')->validateInitData( + initData: 'query_id=...' + ); + + /** Якщо перевірка успішна, виведу сутність InitData з усіма даними */ + var_dump($initData->toArray); + +} catch (ValidationException $e) { + // Отримаю виняток валідації якщо перевірку провалено +} catch (BotException $e) { + // Помилившись з назвою бота буду перехоплювати цей виняток +} catch (Exception $e) { + // Оброблю інші помилки, якщо такі будуть +} +``` \ No newline at end of file diff --git a/src/docs/exception/README.md b/src/docs/exception/README.md new file mode 100644 index 0000000..09c1dba --- /dev/null +++ b/src/docs/exception/README.md @@ -0,0 +1,9 @@ +--- +title: Винятки +icon: bomb +index: false +dir: + order: 4 +--- + + \ No newline at end of file diff --git a/src/docs/exception/bot.md b/src/docs/exception/bot.md new file mode 100644 index 0000000..7a384b6 --- /dev/null +++ b/src/docs/exception/bot.md @@ -0,0 +1,8 @@ +--- +title: BotException +icon: circle-chevron-right +order: 1 +--- + +Якщо ви отримуєте цей виняток, це може свідчити про те що назва бота, який ви намагаєтесь [застосувати](../get-started/usage.md), невірна, або такого бота не існує у списку доданих. + diff --git a/src/docs/exception/validation.md b/src/docs/exception/validation.md new file mode 100644 index 0000000..9f2e4d2 --- /dev/null +++ b/src/docs/exception/validation.md @@ -0,0 +1,9 @@ +--- +title: ValidationException +icon: circle-chevron-right +order: 2 +--- + +Виняток, може свідчити про невдалу перевірку користувача одним із [доступних валідаторів](../validator/). А отже, є загроза злому та/або обходу системи. + +Якщо ви впевнені що дані користувача вірні, але все рівно продовжуєте отримувати цей виняток, будь ласка, перевірке правильність токена вказаного в налаштуваннях. \ No newline at end of file diff --git a/src/docs/get-started/README.md b/src/docs/get-started/README.md new file mode 100644 index 0000000..b5ff560 --- /dev/null +++ b/src/docs/get-started/README.md @@ -0,0 +1,10 @@ +--- +title: Перші кроки +icon: lightbulb +index: false +dir: + order: 1 + collapsible: false +--- + + diff --git a/src/docs/get-started/config.md b/src/docs/get-started/config.md new file mode 100644 index 0000000..e488528 --- /dev/null +++ b/src/docs/get-started/config.md @@ -0,0 +1,43 @@ +--- +title: Конфігурація +icon: gears +order: 2 +--- + +Бібліотека може працювати з коробки без особливого налаштування, єдиним обов’язковим параметром є токен Telegram API + +## Приклад + +```php +addBot(new BotConfig( + name: 'secondary', + token: 'TELEGRAM_BOT_TOKEN_2' +)); +``` + +## Параметри + +### `name` +- Тип: `string` +- Обов'язково: Так + +Довільне ім'я бота. Саме його ви будете вказувати для виклику перевірок від його імені. + +### `token` +- token: `string` +- Обов'язково: Так + +Токен Telegram бота від імені якого треба здійснювати перевірку. \ No newline at end of file diff --git a/src/docs/get-started/usage.md b/src/docs/get-started/usage.md new file mode 100644 index 0000000..8d8564b --- /dev/null +++ b/src/docs/get-started/usage.md @@ -0,0 +1,37 @@ +--- +title: Використання +icon: play +order: 4 +--- + +Перш за все вкажіть назву бота, він імені якого треба перевірити користувача. Або залиште параметр порожнім, щоб отримати бота за умовчанням. + +```php +bot( + name: 'secondary' +); +``` + +## Параметри + +### `name` +- Тип: `string` +- Обов'язково: Ні + +Вказавши назву, ви отримаєте доступ до мультибота доданого на попередньому кроці. + +:::warning +Якщо ви вкажете назву бота, але не додасте його, то з метою збереження цілісності ми будемо вимушені викинути виключення [BotException](../exception/bot.md) +::: + +## Валідатори +Далі потрібно визначитися з типом аутентифікації, який потрібно зробити. + +Зі списком доступних валідаторів можна ознайовитись на [цій сторінці](../validator/) \ No newline at end of file diff --git a/src/docs/validator/README.md b/src/docs/validator/README.md new file mode 100644 index 0000000..6f13a91 --- /dev/null +++ b/src/docs/validator/README.md @@ -0,0 +1,9 @@ +--- +title: Валідатори +icon: flag-checkered +index: false +dir: + order: 2 +--- + + \ No newline at end of file diff --git a/src/docs/validator/login-widget.md b/src/docs/validator/login-widget.md new file mode 100644 index 0000000..29fda9a --- /dev/null +++ b/src/docs/validator/login-widget.md @@ -0,0 +1,47 @@ +--- +title: Віджет входу +icon: right-to-bracket +order: 2 +--- + +Ми перевіряємо автентифікацію та цілісність отриманих даних, порівнявши отриманий хеш-параметр із шістнадцятковим представленням підпису `HMAC-SHA-256` рядка перевірки даних із хешем `SHA256` маркера бота, який використовується як секретний ключ. Деталі [тут](https://core.telegram.org/widgets/login#checking-authorization) + +## Приклад + +```php +validateLoginWidget( + user: [ + 'auth_date' => 1679130118, + 'first_name' => 'Сергій', + // інші поля + ], + throw: true +); +``` + +:bulb: Після успішної перевірки, метод поверне сутність [LoginWidget](../entity/login-widget.md) яка містить усі наявні дані користуача, які можуть використовуватися на вашому сервері. + +## Параметри + +### `user` +- Тип: `array` +- Обов'язково: Так + +Масив з необробленими даними користувача, які повертає віджет авторизації. + +[Додаткова інформація](https://core.telegram.org/widgets/login#receiving-authorization-data) + +### `throw` +- Тип: `bool` +- Обов'язково: Ні +- За замовчуванням: `null`. Застосовуються базові налаштування + +Якщо встановлено `true`, бібліотека буде викидати виключення у разі провалу перевірки. + +:::warning +Обов'язково використовуйте `try/catch`, якщо плануєте працювати з винятками :wink: + +Якщо винятки увімкнено, то після провалу перевірки ви отримаєте виключення [ValidationException](../exception/validation.md). Інакше, буде повернуто `false`. +::: \ No newline at end of file diff --git a/src/docs/validator/web-app.md b/src/docs/validator/web-app.md new file mode 100644 index 0000000..1b84921 --- /dev/null +++ b/src/docs/validator/web-app.md @@ -0,0 +1,43 @@ +--- +title: Міні додаток +icon: tablet-screen-button +order: 1 +--- + +Ми перевіряємо цілісність отриманих даних, порівнявши отриманий хеш-параметр із шістнадцятковим представленням підпису `HMAC-SHA-256` рядка перевірки даних із секретним ключем, який є підписом `HMAC-SHA-256` маркер бота з постійним рядком, `WebAppData` який використовується як ключ. Деталі [тут](https://core.telegram.org/bots/webapps#validating-data-received-via-the-mini-app) + +## Приклад + +```php +validateInitData( + initData: 'query_id=...', + throw: true +); +``` + +:bulb: Після успішної перевірки, метод поверне сутність [InitData](../entity/init-data/) яка містить усі наявні дані які можуть використовуватися на вашому сервері. + +## Параметри + +### `initData` +- Тип: `string` +- Обов'язково: Так + +Рядок з необробленими даними користувача, переданими в міні-програму. + +[Додаткова інформація](https://core.telegram.org/bots/webapps#initializing-mini-apps) + +### `throw` +- Тип: `bool` +- Обов'язково: Ні +- За замовчуванням: `null`. Застосовуються базові налаштування + +Якщо встановлено `true`, бібліотека буде викидати виключення у разі провалу перевірки. + +:::warning +Обов'язково використовуйте `try/catch`, якщо плануєте працювати з винятками :wink: + +Якщо винятки увімкнено, то після провалу перевірки ви отримаєте виключення [ValidationException](../exception/validation.md). Інакше, буде повернуто `false`. +::: \ No newline at end of file