From 06cbe609523dc1510749957198ccf7ab64f665aa Mon Sep 17 00:00:00 2001 From: mario4tier Date: Tue, 13 Feb 2024 22:11:10 -0500 Subject: [PATCH] Change website to vuepress hope theme --- .github/actions/diffs/action.yml | 60 +- .github/workflows/deploy-docs.yml | 72 + .github/workflows/docs.yml | 49 - docs/.gitignore | 5 + docs/ci/README.md | 17 + docs/ci/package.json.ci | 20 + docs/ci/pnpm-lock.yaml.ci | 2856 +++++++++++++++++ docs/community.md | 11 - docs/example/rpc_firewall.md | 19 - docs/example/web3_rust.md | 7 - docs/index.md | 96 - .../overrides/partials/disable_copyright.html | 0 docs/package.json | 20 + docs/pnpm-lock.yaml | 2856 +++++++++++++++++ docs/ref/api.md | 0 docs/ref/api_rust.md | 0 docs/ref/api_typescript.md | 0 docs/ref/scripts.md | 0 docs/setup/help.md | 29 - docs/setup/services.md | 0 docs/src/.vuepress/config.ts | 21 + docs/src/.vuepress/navbar/en.ts | 9 + docs/src/.vuepress/navbar/index.ts | 2 + docs/{ => src/.vuepress/public/assets}/CNAME | 0 .../.vuepress/public/assets}/favicon.png | Bin .../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 + .../.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 + .../.vuepress/public/assets/image/layout.svg | 1 + .../public/assets/image/markdown.svg | 1 + .../assets/images/FTP_Daemon_012023.png | Bin .../assets/images/HomeStackArrowCapy.png | Bin .../assets/images/RPC_Daemon_012023.png | Bin .../public}/assets/images/design_terms.png | Bin .../assets/images/example_rpc_firewall.png | Bin .../public}/assets/images/example_web3.png | Bin .../public/assets/images/free_icon.svg | 1 + .../public}/assets/images/home_high_level.png | Bin .../public}/assets/images/home_top.png | Bin .../public}/assets/images/home_top_capy.png | Bin .../assets/images/multi_channel_est.png | Bin .../public}/assets/images/multi_channels.png | Bin .../public}/assets/images/p2p_broadcast.png | Bin .../public/assets/images/propose-change.png | Bin 0 -> 10764 bytes .../public}/assets/images/ref_broadcast.png | Bin .../public}/assets/images/ref_firewall.png | Bin .../public}/assets/images/ref_ha.png | Bin .../public}/assets/images/ref_uni.png | Bin .../assets/images/setup_help_services.png | Bin .../assets/images/total_vs_partial_order.PNG | Bin .../images/total_vs_partial_order_small.PNG | Bin docs/src/.vuepress/public/favicon.ico | Bin 0 -> 67646 bytes .../{assets => src/.vuepress/public}/logo.png | Bin docs/src/.vuepress/public/logo.svg | 1 + docs/src/.vuepress/sidebar/en.ts | 94 + docs/src/.vuepress/sidebar/index.ts | 2 + docs/src/.vuepress/styles/config.scss | 3 + docs/src/.vuepress/styles/index.scss | 82 + docs/src/.vuepress/styles/palette.scss | 2 + docs/src/.vuepress/theme.ts | 192 ++ docs/src/README.md | 94 + docs/src/community/README.md | 25 + docs/src/community/editors.md | 48 + docs/{ref/readme.md => src/docs/README.md} | 25 +- docs/src/docs/api_rust.md | 5 + docs/src/docs/api_typescript.md | 5 + docs/{ref => src/docs}/design.md | 28 +- docs/{ref => src/docs}/future_work.md | 9 +- docs/src/docs/scripts.md | 5 + docs/{examples.md => src/examples/README.md} | 27 +- docs/src/examples/rpc_firewall.md | 28 + docs/src/examples/web3_rust.md | 11 + docs/{ => src}/faq.md | 17 +- .../rust.md => src/how-to/full_setup.md} | 5 +- docs/src/how-to/install.md | 57 + docs/src/how-to/npm_only.md | 5 + docs/src/how-to/runtime_only.md | 5 + docs/src/intro.md | 21 + docs/src/ref | 1 + mkdocs.yml | 124 - 90 files changed, 6686 insertions(+), 393 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml delete mode 100644 .github/workflows/docs.yml create mode 100644 docs/.gitignore create mode 100644 docs/ci/README.md create mode 100644 docs/ci/package.json.ci create mode 100644 docs/ci/pnpm-lock.yaml.ci delete mode 100644 docs/community.md delete mode 100644 docs/example/rpc_firewall.md delete mode 100644 docs/example/web3_rust.md delete mode 100644 docs/index.md delete mode 100644 docs/overrides/partials/disable_copyright.html create mode 100644 docs/package.json create mode 100644 docs/pnpm-lock.yaml delete mode 100644 docs/ref/api.md delete mode 100644 docs/ref/api_rust.md delete mode 100644 docs/ref/api_typescript.md delete mode 100644 docs/ref/scripts.md delete mode 100644 docs/setup/help.md delete mode 100644 docs/setup/services.md create mode 100644 docs/src/.vuepress/config.ts create mode 100644 docs/src/.vuepress/navbar/en.ts create mode 100644 docs/src/.vuepress/navbar/index.ts rename docs/{ => src/.vuepress/public/assets}/CNAME (100%) rename docs/{assets/images => src/.vuepress/public/assets}/favicon.png (100%) create mode 100644 docs/src/.vuepress/public/assets/icon/apple-icon-152.png create mode 100644 docs/src/.vuepress/public/assets/icon/chrome-192.png create mode 100644 docs/src/.vuepress/public/assets/icon/chrome-512.png create mode 100644 docs/src/.vuepress/public/assets/icon/chrome-mask-192.png create mode 100644 docs/src/.vuepress/public/assets/icon/chrome-mask-512.png create mode 100644 docs/src/.vuepress/public/assets/icon/guide-maskable.png create mode 100644 docs/src/.vuepress/public/assets/icon/ms-icon-144.png create mode 100644 docs/src/.vuepress/public/assets/image/advanced.svg create mode 100644 docs/src/.vuepress/public/assets/image/blog.svg create mode 100644 docs/src/.vuepress/public/assets/image/box.svg create mode 100644 docs/src/.vuepress/public/assets/image/features.svg create mode 100644 docs/src/.vuepress/public/assets/image/github-dark.svg create mode 100644 docs/src/.vuepress/public/assets/image/github-light.svg create mode 100644 docs/src/.vuepress/public/assets/image/layout.svg create mode 100644 docs/src/.vuepress/public/assets/image/markdown.svg rename docs/{ => src/.vuepress/public}/assets/images/FTP_Daemon_012023.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/HomeStackArrowCapy.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/RPC_Daemon_012023.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/design_terms.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/example_rpc_firewall.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/example_web3.png (100%) create mode 100644 docs/src/.vuepress/public/assets/images/free_icon.svg rename docs/{ => src/.vuepress/public}/assets/images/home_high_level.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/home_top.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/home_top_capy.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/multi_channel_est.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/multi_channels.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/p2p_broadcast.png (100%) create mode 100755 docs/src/.vuepress/public/assets/images/propose-change.png rename docs/{ => src/.vuepress/public}/assets/images/ref_broadcast.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/ref_firewall.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/ref_ha.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/ref_uni.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/setup_help_services.png (100%) rename docs/{ => src/.vuepress/public}/assets/images/total_vs_partial_order.PNG (100%) rename docs/{ => src/.vuepress/public}/assets/images/total_vs_partial_order_small.PNG (100%) create mode 100644 docs/src/.vuepress/public/favicon.ico rename docs/{assets => src/.vuepress/public}/logo.png (100%) create mode 100644 docs/src/.vuepress/public/logo.svg create mode 100644 docs/src/.vuepress/sidebar/en.ts create mode 100644 docs/src/.vuepress/sidebar/index.ts create mode 100644 docs/src/.vuepress/styles/config.scss create mode 100644 docs/src/.vuepress/styles/index.scss create mode 100644 docs/src/.vuepress/styles/palette.scss create mode 100644 docs/src/.vuepress/theme.ts create mode 100644 docs/src/README.md create mode 100644 docs/src/community/README.md create mode 100644 docs/src/community/editors.md rename docs/{ref/readme.md => src/docs/README.md} (73%) create mode 100644 docs/src/docs/api_rust.md create mode 100644 docs/src/docs/api_typescript.md rename docs/{ref => src/docs}/design.md (90%) rename docs/{ref => src/docs}/future_work.md (95%) create mode 100644 docs/src/docs/scripts.md rename docs/{examples.md => src/examples/README.md} (62%) create mode 100644 docs/src/examples/rpc_firewall.md create mode 100644 docs/src/examples/web3_rust.md rename docs/{ => src}/faq.md (62%) rename docs/{setup/rust.md => src/how-to/full_setup.md} (98%) create mode 100644 docs/src/how-to/install.md create mode 100644 docs/src/how-to/npm_only.md create mode 100644 docs/src/how-to/runtime_only.md create mode 100644 docs/src/intro.md create mode 120000 docs/src/ref delete mode 100644 mkdocs.yml diff --git a/.github/actions/diffs/action.yml b/.github/actions/diffs/action.yml index 875d8fd..5fff0b9 100644 --- a/.github/actions/diffs/action.yml +++ b/.github/actions/diffs/action.yml @@ -2,33 +2,49 @@ name: Detect Changes description: Defines variables indicating the parts of the code that changed outputs: isDoc: - description: True when changes happened to some documentation + description: True when changes related to documentation value: "${{ steps.diff.outputs.isDoc }}" isRust: - description: True when changes happened to the Rust code + description: True when changes related to Rust value: "${{ steps.diff.outputs.isRust }}" isMove: - description: True when changes happened to the Move code + description: True when changes related to Move value: "${{ steps.diff.outputs.isMove }}" - + isScript: + description: True when changes related suibase scripts + value: "${{ steps.diff.outputs.isScript }}" + isDocHelperAPI: + description: True when changes to Helper API (docs) + value: "${{ steps.diff.outputs.isDoc }}" + runs: using: composite steps: - - uses: actions/checkout@v3 - - name: Detect Changes - uses: dorny/paths-filter@v2.10.2 - id: diff - with: - filters: | - isRust: - - 'crates/**' - - '.github/workflows/rust.yml' - isDoc: - - 'docs/**' - - 'mkdocs.yml' - - '*.md' - - '.github/workflows/docs.yml' - isMove: - - 'move/sources/**' - - 'Cargo.toml' - - 'Cargo.lock' + - uses: actions/checkout@v3 + - name: Detect Changes + uses: dorny/paths-filter@v2.11.1 + id: diff + with: + filters: | + isRust: + - 'rust/**' + - '.github/workflows/rust.yml' + isDoc: + - 'docs/**' + - 'README.md' + - '.github/workflows/deploy-docs.yml' + isMove: + - 'move/sources/**' + - 'Move.toml' + isScript: + - 'scripts/**' + - 'install' + - 'uninstall' + - 'update' + - 'repair' + - 'pip-install' + - '.github/workflows/scripts-tests.yml' + isDocHelperAPI: + - 'rust/helper/lib.rs' + - 'rust/helper/error.rs' + - '.github/workflows/trig-ext-repos.yml' diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..4c2a4cd --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,72 @@ +name: Deploy Vuepress + +on: + push: + branches: [main] + + workflow_dispatch: + +permissions: + contents: write + +jobs: + diff: + runs-on: [ubuntu-latest] + outputs: + isDoc: ${{ steps.diff.outputs.isDoc }} + steps: + - uses: actions/checkout@v3 + - name: Detect Changes + uses: "./.github/actions/diffs" + id: diff + + deploy-gh-pages: + needs: diff + if: ${{ (needs.diff.outputs.isDoc == 'true') || (github.event_name == 'workflow_dispatch') }} + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + run_install: true + + - name: Copy pnpm dependency files + run: | + cp -f $GITHUB_WORKSPACE/docs/ci/pnpm-lock.yaml.ci $GITHUB_WORKSPACE/docs/pnpm-lock.yaml + cp -f $GITHUB_WORKSPACE/docs/ci/package.json.ci $GITHUB_WORKSPACE/docs/package.json + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + cache-dependency-path: "docs/pnpm-lock.yaml" + + - name: Build Docs + env: + NODE_OPTIONS: --max_old_space_size=8192 + run: |- + cd docs + pnpm run docs:build + + > src/.vuepress/dist/.nojekyll + + - name: Deploy Docs + uses: JamesIves/github-pages-deploy-action@v4 + with: + # This is the branch where the docs are deployed to + branch: gh-pages + folder: docs/src/.vuepress/dist \ No newline at end of file diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 9f86305..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Documentation - -on: - push: - branches: [ main ] - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - -permissions: - contents: write - -jobs: - - diff: - runs-on: [ubuntu-latest] - outputs: - isDoc: ${{ steps.diff.outputs.isDoc }} - steps: - - uses: actions/checkout@v3 - - name: Detect Changes - uses: './.github/actions/diffs' - id: diff - - spelling: - name: Lint documentation - needs: diff - if: needs.diff.outputs.isDoc == 'true' - runs-on: [ubuntu-latest] - steps: - - uses: actions/checkout@v3 - - name: Spell Check Docs - uses: crate-ci/typos@master - with: - files: ./doc ./*.md - - deploy: - runs-on: ubuntu-latest - if: github.event.repository.fork == false - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: 3.x - - run: pip install git+https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git - - run: pip install mkdocs-git-revision-date-localized-plugin - - run: pip install mkdocs-minify-plugin - - run: mkdocs gh-deploy --force -env: - GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..411fb0d --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ + +node_modules/ +src/.vuepress/.cache/ +src/.vuepress/.temp/ +src/.vuepress/dist/ diff --git a/docs/ci/README.md b/docs/ci/README.md new file mode 100644 index 0000000..e3fbb95 --- /dev/null +++ b/docs/ci/README.md @@ -0,0 +1,17 @@ +DO NOT MODIFY the files in this directory +Do not update these files. + +**What are they for?** + +They are used by github action for CI deployment. + +Only the maintainer of the website update these. + +This is done such that minor difference in +installation in someones setup does not clash +with the intent from the website maintainers. + +**How to update?** +From root of the docs: + cp package.json ci/package.json.ci + cp pnpm-lock.yaml ci/pnpm-lock.yaml.ci diff --git a/docs/ci/package.json.ci b/docs/ci/package.json.ci new file mode 100644 index 0000000..793a98e --- /dev/null +++ b/docs/ci/package.json.ci @@ -0,0 +1,20 @@ +{ + "name": "dtp", + "version": "0.0.1", + "description": "Decentralized Transport Protocol", + "license": "Apache 2.0", + "type": "module", + "scripts": { + "start": "vuepress dev src", + "docs:build": "vuepress-vite build src", + "docs:clean-dev": "vuepress-vite dev src --clean-cache", + "docs:dev": "vuepress-vite dev src", + "docs:update-package": "pnpm dlx vp-update" + }, + "devDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.7", + "vue": "^3.4.19", + "vuepress": "2.0.0-rc.7", + "vuepress-theme-hope": "2.0.0-rc.23" + } +} diff --git a/docs/ci/pnpm-lock.yaml.ci b/docs/ci/pnpm-lock.yaml.ci new file mode 100644 index 0000000..ac28def --- /dev/null +++ b/docs/ci/pnpm-lock.yaml.ci @@ -0,0 +1,2856 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@vuepress/bundler-vite': + specifier: 2.0.0-rc.7 + version: 2.0.0-rc.7 + vue: + specifier: ^3.4.19 + version: 3.4.19 + vuepress: + specifier: 2.0.0-rc.7 + version: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-theme-hope: + specifier: 2.0.0-rc.23 + version: 2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7) + +packages: + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@lit-labs/ssr-dom-shim@1.2.0: + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + dev: true + + /@lit/reactive-element@2.0.4: + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + dev: true + + /@mdit-vue/plugin-component@2.0.0: + resolution: {integrity: sha512-cTRxlocav/+mfgDcp0P2z/gWuWBez+iNuN4D+b74LpX4AR6UAx2ZvWtCrUZ8VXrO4eCt1/G0YC/Af7mpIb3aoQ==} + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-frontmatter@2.0.0: + resolution: {integrity: sha512-/LrT6E60QI4XV4mqx3J87hqYXlR7ZyMvndmftR2RGz7cRAwa/xL+kyFLlgrMxkBIKitOShKa3LS/9Ov9b0fU+g==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + gray-matter: 4.0.3 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-headers@2.0.0: + resolution: {integrity: sha512-ITMMPCnLEYHHgj3XEUL2l75jsNn8guxNqr26YrMSi1f5zcgq4XVy1LIvfwvJ1puqM6Cc5v4BHk3oAyorAi7l1A==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-sfc@2.0.0: + resolution: {integrity: sha512-OXrMXOyk0iwdIou2jRoIHIbjskwghkO14C9/OjgVHXSSX+iM/WQ4l4yi1aWmNlbQNjtP8IXcVAyJB9K0DFYmLg==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-title@2.0.0: + resolution: {integrity: sha512-eqBoETPVkMXNLvwFshz/A2+Cz81VB5HEkXDm0tt6RBW/rTvnoWmGJ1Z+mvcjR5ck5W4nYdIyT68oHxX2JI2M4g==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-toc@2.0.0: + resolution: {integrity: sha512-PKQ8sZna3D5chTnt2lxL+ddpyXd++6Nyc0l8VXCeDgStlySQwiP9jaLeeC88oqY4BtRu4cAmILmxDrvuX0Rrdg==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/shared@2.0.0: + resolution: {integrity: sha512-PdxpQpbyTazeo2JT87qms6RPZIzyJd+gwuB+1jSwLDI7+0u5g79y2XgTAbZromSVgY2f3UU5HWdwaLbV9w4uOw==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/types@2.0.0: + resolution: {integrity: sha512-1BeEB+DbtmDMUAfvbNUj5Hso8cSl2sBVK2iTyOMAqhfDVLdh+/9+D0JmQHaCeUk/vuJoMhOwbweZvh55wHxm4w==} + dev: true + + /@mdit/plugin-alert@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-mxA/lhOyDDR6/qSAegGG/XZRjUbr1wjwdULudbpkA/CCQi6piW9D0Z8crDQGYz4KPQM9Bgx4Ac81QFSzHOV66Q==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-align@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-OJPYzSdmT0UZj/QTvnKYE4GelAL0OD8bNIPxpidXbFd3IqYv/8+xMjT6XeR+R3oZEvtbYSc2e1MmO5fo3DopJA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-attrs@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-ewmx5i+b3M4CRJNDpDNBA0YTHa1snn+adDsDDpDtPPSzCH1NhtWXdzwI0TrcCQUnueeSEEWX/wY4ESo+NRkBNQ==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-container@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uWK3t0CWssintcmT5PTJVhAwbstcD+SrtijQKs6BhLRtGGgHJ9mOf0ybGjlJhn4077yFFTHmaCIT3K+n5ZVjPg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-demo@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-yFRXnp3Lj0g4H9ImzHKQwwgtSykrL/BDNEQzql9fdA9FbSygfu0CIxfm+A8lsVos8cAvdsgxy3gILySxpfR89g==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-figure@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-/o4RoKjnkdWc+K7m6mR7BAu2J79yYE38s8HUc8iKk9v+e9j1E+6LeXcpx1LoPnHzUhT4EO2QmUsv+kAaPFfZYw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-footnote@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-AaX1rfkJwq9vLX+H/a+XQ3ZxahOXrnMLr5dVZfNdazjqdDEJ7Cc/A7UFtLfOM19F2w3EgvcHR1gbINxIVDn/eg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-lazyload@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-Rrlf2FzOxxyszbv3DpkIwEgmYKmtwHdxIO+Whkn0a9QckxnEKkaGl5KARCnM7LqX2fhEyFLgnfkr3onVOJG54g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-4P6z2QOfLHLMSXUP4mB/2Rnd6KeHmJBkUXJWJhybcXoIG5S5FDTFHJxOycSP4eGzfdOYAWSlkx6XwXEUGGZz5w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-size@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-r+LbAizP/hw5SisY44VbHEnR7XUKpcHM2k2fwu5wb1+V1crxeigG4sa8rzrJEddU+k6uCl27yL5FTGbHjAl82Q==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-include@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-e8Z8q5VkJ6UX04tTgELraupB/MdHio7hkdYT71wBJ6UQuhSmFv/xMOxFfTcGKH5yzsbEM45BtAFHzSXIi3dMCw==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: true + + /@mdit/plugin-katex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-u7CX3Xv5nuc2bu2sHrk1nil83/9ETKTBMmy0icbW8zlqBC0ykLo1xTCEBXmdhXtnJtPi9f/wUZVs6iMZrJzbNg==} + engines: {node: '>= 18'} + peerDependencies: + katex: ^0.16.9 + markdown-it: ^14.0.0 + peerDependenciesMeta: + katex: + optional: true + markdown-it: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/katex': 0.16.7 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-1hImu8FskIZ9dumWD2VIyB5USyVGwGY2IuaPxYO25tFvMZkhu4rYBjkSK8x+vXExwp94OLzFUlGgVl94S+nw9w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-mathjax@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-y016KQHa3PoXDUIcQseISMAz5q2mZJ/qocEs2EABT4PjquXPEh/4rw7Ql7KX9gf/SQIUyzj8hYs4bHyRZc6x4w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + mathjax-full: ^3.2.2 + peerDependenciesMeta: + markdown-it: + optional: true + mathjax-full: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: true + + /@mdit/plugin-stylize@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oNFI3Z7UTxP8CKxS3CIuawLmsyrc0n9jIw9mPzUcPNp+LtYmLktfZc3FIRlqpUUq34YwHTH3yihayBRdSkVV6A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-sub@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oqCcmJVJykESgNJ4fFmDKKxRRQddwkXWIT4PjF83XSeXHxTOz8gMfke/V1mE7BAfKKCLP4io8HbrYfvIiOTZ4A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-sup@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-5/uE2lONNjCgGDXC8jZ265tzefjUNQNakmK4PSCI4D5jD80xFrxc6MKh70VLCOL8Xk6COK/K9f0SAU2lwa97Tg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tab@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-SNa1S14Buuy564egiUTkU9HTTNFrEURJZLqA1+jr/2xYCdICPym0FWcB0cLtBl3lrQZkFtbxhzC6ws5JBt/ERQ==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tasklist@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-vfOTZdXIL/jk/ConUqCODI5WuqgB9qiBGc+wIa7UMhe73KcpwFeGFJVQZm9AvjhXDDYqznJxSMVRP/TN7TxVVw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uh4kOhwBVEESz6dMmHk4Hn/AVfVtUhMA1UKpwMc1EL9qelodJ0YzSYfNXp6d/PS+E1l53yp8nMZK90DUO+3vpA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-uml@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-6TOVxLhmdzV7bzjlJCRP5uCFq62Xwk2ZAeYUK3RLx9lgM3s2Mww5ENhdysnQMd7VQlUHsPmp4XIMBZZjPddg3g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.10.0: + resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.10.0: + resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.10.0: + resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.10.0: + resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.10.0: + resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.10.0: + resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.10.0: + resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.10.0: + resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.10.0: + resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.10.0: + resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.10.0: + resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.10.0: + resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.10.0: + resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sindresorhus/merge-streams@2.2.0: + resolution: {integrity: sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==} + engines: {node: '>=18'} + dev: true + + /@stackblitz/sdk@1.9.0: + resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.11.17 + dev: true + + /@types/hash-sum@1.0.2: + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + dev: true + + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + dependencies: + '@types/node': 20.11.17 + dev: true + + /@types/katex@0.16.7: + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + dev: true + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: true + + /@types/markdown-it-emoji@2.0.4: + resolution: {integrity: sha512-H6ulk/ZmbDxOayPwI/leJzrmoW1YKX1Z+MVSCHXuYhvqckV4I/c+hPTf6UiqJyn2avWugfj30XroheEb6/Ekqg==} + dependencies: + '@types/markdown-it': 13.0.7 + dev: true + + /@types/markdown-it@13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: true + + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: true + + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 17.0.45 + dev: true + + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + dev: true + + /@vitejs/plugin-vue@5.0.4(vite@5.0.12)(vue@3.4.19): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.0.12 + vue: 3.4.19 + dev: true + + /@vue/compiler-core@3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} + dependencies: + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/compiler-sfc@3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + estree-walker: 2.0.2 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr@3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + dev: true + + /@vue/reactivity@3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + dependencies: + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-core@3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + dependencies: + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-dom@3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + dependencies: + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer@3.4.19(vue@3.4.19): + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + peerDependencies: + vue: 3.4.19 + dependencies: + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19 + dev: true + + /@vue/shared@3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} + dev: true + + /@vuepress/bundler-vite@2.0.0-rc.7: + resolution: {integrity: sha512-2jNnU3sgHJuUCPfE0DvGRsAxo/A/Locguvnv4Q6QwJYdB1fuAqE6x5p8RDzq8Lv/GsyeexDWiV/PFER5EtVP3w==} + dependencies: + '@vitejs/plugin-vue': 5.0.4(vite@5.0.12)(vue@3.4.19) + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + autoprefixer: 10.4.17(postcss@8.4.35) + connect-history-api-fallback: 2.0.0 + postcss: 8.4.35 + postcss-load-config: 5.0.3(postcss@8.4.35) + rollup: 4.10.0 + vite: 5.0.12 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + transitivePeerDependencies: + - '@types/node' + - '@vue/composition-api' + - jiti + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: true + + /@vuepress/cli@2.0.0-rc.7: + resolution: {integrity: sha512-SD9Z8vRF1tEKYE4X0qzARr3tHyqfKJJ1MpySL44w1uYSf7nmpJD5ejNsUZxEetj5Vrv8u1jX5IO/3GkPXj5OWA==} + hasBin: true + dependencies: + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + cac: 6.7.14 + chokidar: 3.6.0 + envinfo: 7.11.1 + esbuild: 0.19.12 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /@vuepress/client@2.0.0-rc.7: + resolution: {integrity: sha512-T8jf9h8dfP1ln/7uOIiTAJrdyKRTyq1x+RHXuc7GoRxTfOw+bIYgGvh63Z7m1e3K/yh1nO9aM1WcXbDN1Swp4w==} + dependencies: + '@vue/devtools-api': 6.5.1 + '@vuepress/shared': 2.0.0-rc.7 + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/core@2.0.0-rc.7: + resolution: {integrity: sha512-SPd2C9MIwHLe4mEWJfbcTHT5caS/vW+oeP79wAW0otSGgn2uY3Mmu5qcYPzl+17o8EYv7vDvPiO+uitp/Cek+A==} + dependencies: + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/markdown': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + vue: 3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /@vuepress/helper@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-98sWHoXquQw7UYcmP2fJN4ALV815kXxccSne7MN1OqvpkgeLyEKzlHDf/HCtTYznWT3eSZ6FIvDiq6BaH8PQjQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vue/shared': 3.4.19 + cheerio: 1.0.0-rc.12 + fflate: 0.8.2 + gray-matter: 4.0.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/markdown@2.0.0-rc.7: + resolution: {integrity: sha512-mczvo7MZxxXXj5htDXK22r0a7JjTP5sTlcywtVOTJurzCKp8SNSbr3HdmsAnr9S838Hn9+dkvhs57rqgPG3UHA==} + dependencies: + '@mdit-vue/plugin-component': 2.0.0 + '@mdit-vue/plugin-frontmatter': 2.0.0 + '@mdit-vue/plugin-headers': 2.0.0 + '@mdit-vue/plugin-sfc': 2.0.0 + '@mdit-vue/plugin-title': 2.0.0 + '@mdit-vue/plugin-toc': 2.0.0 + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + '@types/markdown-it-emoji': 2.0.4 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + markdown-it: 14.0.0 + markdown-it-anchor: 8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0) + markdown-it-emoji: 3.0.0 + mdurl: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vuepress/plugin-active-header-links@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-t9pgjeu5mZJgtJ1u8+xZxd5uGNtSraRavx4o9juVGy/DjHXJHYbS4qnfAhE8GmVUThzQUfvPFZRsuNqiZn2lLA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-back-to-top@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-LTdAeJje6zOBPdWST1qIyzjP35kjAUJAbMkzH7tddejIEfRkfVf6l9nZ8ksMSgzNVVSkO+4unBHqBLa2pLRsUw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-blog@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-LZ0oX9QBxTHHtiUk7ONZHTwDaWoCejXjGgJXGXZDvCfQetCzLWoRYOao7bUxHUrmtD10JyaW+5fCAgHynXgBNQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + chokidar: 3.6.0 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-catalog@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-qlWDUeIsYKcxLa0A//344DarCdLdD3pxfcR5YvJm0CwGCBgA0LnG4gbfMGXyvvRDea/aOnsWK7ePXoDPWvCOPw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-copy-code@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-6FELMaKsaQ/hjPom8VjTC5N9QKdtCLrHLeSz2D2z16+9rnbkAfootEH1T08GN3/PyP2ZZA8OqCPvaNAKiCKGiQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-copyright@2.0.0-rc.13(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-EGKZ6o7Oj3HeSG4VMAIwLBn/O2LSk5uI90LzbLAfsl9eE0nBCanOlL3SnB5AiDTW8zeDZVwJk6BTbd6ymoajXw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-external-link-icon@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-ycvrDK+/75bmvbBPhUSxoOm2OiO+yC36iDs/Vs1OIlVuLDWz3GHuMxkP4uXrla0tQbkxKqyPA/O5Ihhlxz6KAA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-git@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-DYriGdqDscbbt1y4nHrjS7ye+wdiY1fBJU+RvimId26Y1Q/I3DKsQSvRqtTg6tcQ4vt7/NJh1OiiuSaoNIQrnA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + execa: 8.0.1 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + dev: true + + /@vuepress/plugin-nprogress@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-Tuf9AsT4OwCwNFV4jf6vYefPrzDOdMobsUs94kvglDCkEUgepClmW+1KfK3RCoNC4GCrsX95Fz7LvfbeaxtKsQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-photo-swipe@2.0.0-rc.13(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-OAOtrQIOaS0Bd1iBc7SqbOEkNsQsJKDT8FHY2hhDPatrSQBaWO1ilgTU0LYbBQ/Ewfkkafy6wsjtLuM8xkh4pA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + photoswipe: 5.4.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-prismjs@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-DiTdHgH3JFbCn5toSSsMsWvb+PYc4IHjt39o+3GU9j12GtFwHke7hDmXUWwegzYa7bWR0CfikDAto/8WIguRbA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + prismjs: 1.29.0 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + dev: true + + /@vuepress/plugin-reading-time@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-HVD5JZcKE06hWs8/DemKVWh+Z5dUh3Ztw0OmFxpObN3NkO5jQvLnlmKj5b14dbyk2nsMOfFDzkvMgezBXKiHFw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-rtl@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-keyD4LLnFL3awjVdpentqUGWX0iB93uk5GSL7L4lppn20vnS8StrjTvGxYiViAYu+vB9drVG/3DiPkOcp5dy9Q==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-seo@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-aOiuZ7y0B99GROuhqTXQQsB0+sWX2l3geoZMzrJlbsykBCGcSN8RBHmdcIouzid83jBkOkBt6AxLRQKpQyWgwA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-sitemap@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-XrFBpQvfeJqQuL5ofCVf/hui5IRJPP6tEA2sBJTjtJH4y0xRgnE23RALE7mpsqD2Mo7TnAgrDORRgZL0Zzy94g==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + sitemap: 7.1.1 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-theme-data@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-0hhb83MLG275BDF6OE4gNhz/tZBks6OyjPqkaTbdRHCEhuZD3UwFp+t3b7lUbAkftWSBSidhE0unkaqJw5zJuw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/shared@2.0.0-rc.7: + resolution: {integrity: sha512-zNsYzAW5tuENb4vML0pK/61W3EscyOcn5JVPC+c6AwvsYWyAigZaMSu9ycGAptjDwzdYSi3gd33N9Q9T7pG77Q==} + dependencies: + '@mdit-vue/types': 2.0.0 + dev: true + + /@vuepress/utils@2.0.0-rc.7: + resolution: {integrity: sha512-47c7T72JwOWH1EgG7f/KwWNpIknd9IC5JmrizGI5IVUM4G16Vyj5oPQuXqLobV47m8JOxPW4dLpsglZGVaKQeg==} + dependencies: + '@types/debug': 4.1.12 + '@types/fs-extra': 11.0.4 + '@types/hash-sum': 1.0.2 + '@vuepress/shared': 2.0.0-rc.7 + debug: 4.3.4 + fs-extra: 11.2.0 + globby: 14.0.1 + hash-sum: 2.0.0 + ora: 8.0.1 + picocolors: 1.0.0 + upath: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@vueuse/core@10.7.2(vue@3.4.19): + resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.7.2 + '@vueuse/shared': 10.7.2(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata@10.7.2: + resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} + dev: true + + /@vueuse/shared@10.7.2(vue@3.4.19): + resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} + dependencies: + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /autoprefixer@10.4.17(postcss@8.4.35): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.3 + caniuse-lite: 1.0.30001587 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /balloon-css@1.2.0: + resolution: {integrity: sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==} + dev: true + + /bcrypt-ts@5.0.1: + resolution: {integrity: sha512-+Q6wjkT+PO0Da56BIyaYyueMeqAV/zOXqfFIssRgCbQLGwU+YkBJfBpP2Q9Q8hGbpDyDNCrG36npSdE+S9HWUA==} + engines: {node: '>=18'} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001587 + electron-to-chromium: 1.4.668 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001587: + resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + 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.1.0 + dev: true + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /create-codepen@1.0.1: + resolution: {integrity: sha512-XzSWwGCFNeOnNGp3KdCDGaKq4Cp1SvjzpPGQqO0tj1HT3BhksLdl/xQ2ZEY4+0MQ3m1I/K1Fvpm4GGMthtamyA==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /electron-to-chromium@1.4.668: + resolution: {integrity: sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==} + dev: true + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /giscus@1.4.0: + resolution: {integrity: sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==} + dependencies: + lit: 3.1.2 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.2.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.0.0 + dev: true + + /lit-element@4.0.4: + resolution: {integrity: sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.1.2 + dev: true + + /lit-html@3.1.2: + resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: true + + /lit@3.1.2: + resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.0.4 + lit-html: 3.1.2 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /markdown-it-anchor@8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0): + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /markdown-it-emoji@3.0.0: + resolution: {integrity: sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==} + dev: true + + /markdown-it@14.0.0: + resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.0.0 + dev: true + + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: true + + /photoswipe@5.4.3: + resolution: {integrity: sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==} + engines: {node: '>= 0.12.0'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: true + + /postcss-load-config@5.0.3(postcss@8.4.35): + resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.35 + yaml: 2.3.4 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: true + + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + dev: true + + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rollup@4.10.0: + resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.10.0 + '@rollup/rollup-android-arm64': 4.10.0 + '@rollup/rollup-darwin-arm64': 4.10.0 + '@rollup/rollup-darwin-x64': 4.10.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 + '@rollup/rollup-linux-arm64-gnu': 4.10.0 + '@rollup/rollup-linux-arm64-musl': 4.10.0 + '@rollup/rollup-linux-riscv64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-musl': 4.10.0 + '@rollup/rollup-win32-arm64-msvc': 4.10.0 + '@rollup/rollup-win32-ia32-msvc': 4.10.0 + '@rollup/rollup-win32-x64-msvc': 4.10.0 + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sass@1.70.0: + resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.0.2 + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: true + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.3.0 + dev: true + + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /uc.micro@2.0.0: + resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==} + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.3 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /vite@5.0.12: + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vue-demi@0.14.7(vue@3.4.19): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19 + dev: true + + /vue-router@4.2.5(vue@3.4.19): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.19 + dev: true + + /vue@3.4.19: + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19(vue@3.4.19) + '@vue/shared': 3.4.19 + dev: true + + /vuepress-plugin-comment2@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-HyF+RFrvQljAdbHLAdRdx5VMq1268l0U0yQAg6ikI44hb/eB04D5+KRfWhqpQNUayHv28V3PsDQ8KqcrfD8cSA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@waline/client': ^2.15.8 || ^3.0.0-alpha.11 + artalk: ^2.7.3 + sass-loader: ^14.0.0 + twikoo: ^1.5.0 + vuepress: 2.0.0-rc.7 + peerDependenciesMeta: + '@waline/client': + optional: true + artalk: + optional: true + sass-loader: + optional: true + twikoo: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + giscus: 1.4.0 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-plugin-components@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-A0bh2a5aLXSg2YfZLicLRc4kbNwGNljBTV9xv1JhLzBqbvd/TRXX5NQFKz4Fgq9Ju/aYOXDEHkinMXFNvZvjBw==} + 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: ^14.0.0 + vidstack: ^1.9.0 + vuepress: 2.0.0-rc.7 + 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 + dependencies: + '@stackblitz/sdk': 1.9.0 + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + create-codepen: 1.0.1 + qrcode: 1.5.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-plugin-md-enhance@2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-oyQjb2pGjAVSzIRmf24ALKfEE/fVTR5/9N/9Y2IaIJnB1xB+uvsa9NlRRORro1+niNmcbG9ETMHzkC0J9CVrlg==} + 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.8.0 + reveal.js: ^5.0.0 + sandpack-vue3: ^3.0.0 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + 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 + sandpack-vue3: + optional: true + sass-loader: + optional: true + dependencies: + '@mdit/plugin-alert': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-align': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-attrs': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-demo': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-figure': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-footnote': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-lazyload': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-size': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-include': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-katex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mathjax': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-stylize': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sub': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sup': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tab': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tasklist': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-uml': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + js-yaml: 4.1.0 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - markdown-it + - typescript + dev: true + + /vuepress-plugin-sass-palette@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-tszb4KpJegfNMrmp1DZn95qAIRAJJAfuuCAhAHuwQ+yZI1GrZd3m8b5hOQejHLE1Bimwb3Kj/lYPVMnb/2c6gA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + peerDependenciesMeta: + sass-loader: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + chokidar: 3.6.0 + sass: 1.70.0 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-shared@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-1es+bJ13E4UNkIr5kuPMX8h77aGZEuHLknH4u8B0qh+kP/CuuRXhUVQ6AHCuyDArL9mUc7CFwo+ro7zqDpsA1Q==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + cheerio: 1.0.0-rc.12 + dayjs: 1.11.10 + execa: 8.0.1 + fflate: 0.8.2 + gray-matter: 4.0.3 + semver: 7.6.0 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-theme-hope@2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-4ONVCNpQ0IiJsFwoGIQO7kV2OWJNr+LuDv7TsM+fa/b1b+bu/oeOGObnBMXc91YofB8Pqno0W+wYHEhLwheY0A==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@vuepress/plugin-docsearch': 2.0.0-rc.12 + '@vuepress/plugin-feed': 2.0.0-rc.12 + '@vuepress/plugin-redirect': 2.0.0-rc.12 + '@vuepress/plugin-search': 2.0.0-rc.12 + nodejs-jieba: ^0.1.2 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + vuepress-plugin-pwa2: 2.0.0-rc.23 + vuepress-plugin-search-pro: 2.0.0-rc.23 + peerDependenciesMeta: + '@vuepress/plugin-docsearch': + optional: true + '@vuepress/plugin-feed': + optional: true + '@vuepress/plugin-redirect': + optional: true + '@vuepress/plugin-search': + optional: true + nodejs-jieba: + optional: true + sass-loader: + optional: true + vuepress-plugin-pwa2: + optional: true + vuepress-plugin-search-pro: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-active-header-links': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-back-to-top': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-blog': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-catalog': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-copy-code': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-copyright': 2.0.0-rc.13(vuepress@2.0.0-rc.7) + '@vuepress/plugin-external-link-icon': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-git': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-nprogress': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-photo-swipe': 2.0.0-rc.13(vuepress@2.0.0-rc.7) + '@vuepress/plugin-prismjs': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-reading-time': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-rtl': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-seo': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-sitemap': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-theme-data': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + bcrypt-ts: 5.0.1 + cheerio: 1.0.0-rc.12 + chokidar: 3.6.0 + gray-matter: 4.0.3 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-comment2: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-plugin-components: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-plugin-md-enhance: 2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@types/reveal.js' + - '@vue/composition-api' + - '@vue/repl' + - '@waline/client' + - artalk + - artplayer + - chart.js + - dashjs-pure + - echarts + - flowchart.ts + - hls.js + - katex + - kotlin-playground + - markdown-it + - markmap-lib + - markmap-toolbar + - markmap-view + - mathjax-full + - mermaid + - mpegts.js + - plyr + - reveal.js + - sandpack-vue3 + - twikoo + - typescript + - vidstack + dev: true + + /vuepress@2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19): + resolution: {integrity: sha512-j0Fb0XtrGnlLxKflarjPa4V/NMzj0lc0RIFNgcQBFZnQHSr5IuSVES7Kt7mDNBlLRpAadQxB6IFC1v2wDEcD/w==} + engines: {node: '>=18.16.0'} + hasBin: true + peerDependencies: + '@vuepress/bundler-vite': 2.0.0-rc.7 + '@vuepress/bundler-webpack': 2.0.0-rc.7 + vue: ^3.4.0 + peerDependenciesMeta: + '@vuepress/bundler-vite': + optional: true + '@vuepress/bundler-webpack': + optional: true + dependencies: + '@vuepress/bundler-vite': 2.0.0-rc.7 + '@vuepress/cli': 2.0.0-rc.7 + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/markdown': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + vue: 3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true diff --git a/docs/community.md b/docs/community.md deleted file mode 100644 index c845e5a..0000000 --- a/docs/community.md +++ /dev/null @@ -1,11 +0,0 @@ -# DTP Community - -Discord Invite: - -**Mario Fortier** - Lead Developer
- -* LinkedIn:
-* Discord username : Mhax#6164
-* Github username : - -(Join, contribute and have your name added here...) \ No newline at end of file diff --git a/docs/example/rpc_firewall.md b/docs/example/rpc_firewall.md deleted file mode 100644 index bbcc2fe..0000000 --- a/docs/example/rpc_firewall.md +++ /dev/null @@ -1,19 +0,0 @@ -# JSON-RPC Firewall - -In this example, a Web3 application access a Web2 server providing a JSON-RPC API to its customer. - -One of the goal is to protect the Web2 server from DDoS attack, in particular, hide its IP address. - -
![](../assets/images/example_rpc_firewall.png)
- -A DTP "Services Daemon" runs as a TCP/IP proxy on the same machine as the web2 server. - -Since the sender has to pay for all the data byte transmission costs through the Sui network, an attack is costly and mostly futile. - -The server IP address is visible only to the Sui nodes (not to the Web3 users on the other side of the Sui network). This mitigates direct traditional IP attacks. The server is not completely hidden, but the owner can control its Sui node partners (in similar way that one choose to, say, trust a reputable company such as Cloudflare). - -On the drawing, everything in green and blue is provided by DTP and the Sui infrastructure respectively. The application developer provides only what is shown in yellow. - -In this example the Web3 app contact the hidden web2 IP server using the `#!Rust `:8923 address and DTP takes care of the safe data transfer. - -!!! tip "Work-In-Progress... there is more to it... such as mitigation with dynamic `#!Rust ` to more than one origin IP mapping" \ No newline at end of file diff --git a/docs/example/web3_rust.md b/docs/example/web3_rust.md deleted file mode 100644 index fc63d6e..0000000 --- a/docs/example/web3_rust.md +++ /dev/null @@ -1,7 +0,0 @@ -# Web3 Client / Rust Server - -Connect any frontend to both a centralized and decentralized backend. - -
![](../assets/images/example_web3.png)
- -!!! tip "Incomplete Documentation - Work-In-Progress" \ No newline at end of file diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 1d9f1aa..0000000 --- a/docs/index.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -hide: - - navigation - - toc ---- -
- ![](assets/images/home_top_capy.png) -
-

For when you want some web2 on the web3 playground

-
- -- :material-circle-opacity:{ .lg .middle } __Create hybrid dApps__ - - --- - - Decentralized connection control, metering and crypto-economics
-            + -
Your existing off-chain service and data. - -- :shield:{ .lg .middle } __Security & DDoS Protection__ - - --- - - * Scalable firewall built-in the Sui network! - * Stop DDoS attacks even before it reaches your servers. - * Keep your Web2 servers IP hidden (visible only to Sui node operators). - - [:octicons-arrow-right-24: See firewall example...](example/rpc_firewall.md) - -- :simple-letsencrypt:{ .lg .middle } __Privacy & Authenticity__ - - --- - - * On-chain secret exchanges. DTP always encrypt end-to-end. - * Secured key/certificate installation on web3 apps from centralized servers. - * Authenticity with signed data transfer. - -- :free:{ .lg .middle } __Open-Source__ - - --- - - * Only code from developers for developers. No gimmick. - * No Token, middlemen, commission or dev fee. - * Only requires the smart contracts execution costs (the gas for the Sui Move calls). - - [:octicons-arrow-right-24: Check the FAQ...](faq.md) - -- :fontawesome-solid-network-wired:{ .lg .middle } __High Availability__ - - --- - - * Automatic failover and/or load balancing among your backend servers. - - * Maybe your service would benefit from the censorship resistance of the Sui network? - - * Develop Serf-like coordination with a group of other loosely coupled web2 servers. - - -- :material-bank-check:{ .lg .middle } __Safe and Fair Hybrid Escrow__ - - --- - - * Add fair Tokenomics to Web2: Pay per request, per byte, per RPC call etc... - - * DTP has built-in "Response Fee Escrow" to prevent query requesters to perform financial attacks against a company/server. - -
- -
-![Image title](assets/images/home_high_level.png) -
- ---- - - - -![Image title](assets/images/total_vs_partial_order_small.PNG){ align=left } - - Why Sui and not blockchain 'x' ?
-SUI has good finality latency stability (low jitter) and network scalability (maintains per connectin throughput regardless of total load).
- -Sui architecture provides two type of transactions: - -* Simple Transaction with sub-second finality for data plane transfer (See "partial ordering" illustration). This allows fast async/parallel transmission. - -* Narwhal/Bullshark consensus with 2-3 seconds finality used for slower control plane synchronization, like escrow services, reconfiguration, connection creation,etc... - -With its dual-type of transactions with the proper set of qualities, Sui makes practical the implementation of common data + control plane design found in IP networks ( [Cloudflare explains it well](https://www.cloudflare.com/learning/network-layer/what-is-the-control-plane/) ). - -See [How Sui Differs from Other Blockchains?](https://docs.sui.io/learn/sui-compared) - -Why not simply use the good old, faster and free internet? - -Join the [Discord community](https://discord.gg/Erb6SwsVbH) and let's talk about it! - - diff --git a/docs/overrides/partials/disable_copyright.html b/docs/overrides/partials/disable_copyright.html deleted file mode 100644 index e69de29..0000000 diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..793a98e --- /dev/null +++ b/docs/package.json @@ -0,0 +1,20 @@ +{ + "name": "dtp", + "version": "0.0.1", + "description": "Decentralized Transport Protocol", + "license": "Apache 2.0", + "type": "module", + "scripts": { + "start": "vuepress dev src", + "docs:build": "vuepress-vite build src", + "docs:clean-dev": "vuepress-vite dev src --clean-cache", + "docs:dev": "vuepress-vite dev src", + "docs:update-package": "pnpm dlx vp-update" + }, + "devDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.7", + "vue": "^3.4.19", + "vuepress": "2.0.0-rc.7", + "vuepress-theme-hope": "2.0.0-rc.23" + } +} diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml new file mode 100644 index 0000000..ac28def --- /dev/null +++ b/docs/pnpm-lock.yaml @@ -0,0 +1,2856 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@vuepress/bundler-vite': + specifier: 2.0.0-rc.7 + version: 2.0.0-rc.7 + vue: + specifier: ^3.4.19 + version: 3.4.19 + vuepress: + specifier: 2.0.0-rc.7 + version: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-theme-hope: + specifier: 2.0.0-rc.23 + version: 2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7) + +packages: + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@lit-labs/ssr-dom-shim@1.2.0: + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + dev: true + + /@lit/reactive-element@2.0.4: + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + dev: true + + /@mdit-vue/plugin-component@2.0.0: + resolution: {integrity: sha512-cTRxlocav/+mfgDcp0P2z/gWuWBez+iNuN4D+b74LpX4AR6UAx2ZvWtCrUZ8VXrO4eCt1/G0YC/Af7mpIb3aoQ==} + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-frontmatter@2.0.0: + resolution: {integrity: sha512-/LrT6E60QI4XV4mqx3J87hqYXlR7ZyMvndmftR2RGz7cRAwa/xL+kyFLlgrMxkBIKitOShKa3LS/9Ov9b0fU+g==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + gray-matter: 4.0.3 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-headers@2.0.0: + resolution: {integrity: sha512-ITMMPCnLEYHHgj3XEUL2l75jsNn8guxNqr26YrMSi1f5zcgq4XVy1LIvfwvJ1puqM6Cc5v4BHk3oAyorAi7l1A==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-sfc@2.0.0: + resolution: {integrity: sha512-OXrMXOyk0iwdIou2jRoIHIbjskwghkO14C9/OjgVHXSSX+iM/WQ4l4yi1aWmNlbQNjtP8IXcVAyJB9K0DFYmLg==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-title@2.0.0: + resolution: {integrity: sha512-eqBoETPVkMXNLvwFshz/A2+Cz81VB5HEkXDm0tt6RBW/rTvnoWmGJ1Z+mvcjR5ck5W4nYdIyT68oHxX2JI2M4g==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/plugin-toc@2.0.0: + resolution: {integrity: sha512-PKQ8sZna3D5chTnt2lxL+ddpyXd++6Nyc0l8VXCeDgStlySQwiP9jaLeeC88oqY4BtRu4cAmILmxDrvuX0Rrdg==} + dependencies: + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/shared@2.0.0: + resolution: {integrity: sha512-PdxpQpbyTazeo2JT87qms6RPZIzyJd+gwuB+1jSwLDI7+0u5g79y2XgTAbZromSVgY2f3UU5HWdwaLbV9w4uOw==} + dependencies: + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit-vue/types@2.0.0: + resolution: {integrity: sha512-1BeEB+DbtmDMUAfvbNUj5Hso8cSl2sBVK2iTyOMAqhfDVLdh+/9+D0JmQHaCeUk/vuJoMhOwbweZvh55wHxm4w==} + dev: true + + /@mdit/plugin-alert@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-mxA/lhOyDDR6/qSAegGG/XZRjUbr1wjwdULudbpkA/CCQi6piW9D0Z8crDQGYz4KPQM9Bgx4Ac81QFSzHOV66Q==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-align@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-OJPYzSdmT0UZj/QTvnKYE4GelAL0OD8bNIPxpidXbFd3IqYv/8+xMjT6XeR+R3oZEvtbYSc2e1MmO5fo3DopJA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-attrs@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-ewmx5i+b3M4CRJNDpDNBA0YTHa1snn+adDsDDpDtPPSzCH1NhtWXdzwI0TrcCQUnueeSEEWX/wY4ESo+NRkBNQ==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-container@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uWK3t0CWssintcmT5PTJVhAwbstcD+SrtijQKs6BhLRtGGgHJ9mOf0ybGjlJhn4077yFFTHmaCIT3K+n5ZVjPg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-demo@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-yFRXnp3Lj0g4H9ImzHKQwwgtSykrL/BDNEQzql9fdA9FbSygfu0CIxfm+A8lsVos8cAvdsgxy3gILySxpfR89g==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-figure@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-/o4RoKjnkdWc+K7m6mR7BAu2J79yYE38s8HUc8iKk9v+e9j1E+6LeXcpx1LoPnHzUhT4EO2QmUsv+kAaPFfZYw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-footnote@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-AaX1rfkJwq9vLX+H/a+XQ3ZxahOXrnMLr5dVZfNdazjqdDEJ7Cc/A7UFtLfOM19F2w3EgvcHR1gbINxIVDn/eg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-lazyload@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-Rrlf2FzOxxyszbv3DpkIwEgmYKmtwHdxIO+Whkn0a9QckxnEKkaGl5KARCnM7LqX2fhEyFLgnfkr3onVOJG54g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-4P6z2QOfLHLMSXUP4mB/2Rnd6KeHmJBkUXJWJhybcXoIG5S5FDTFHJxOycSP4eGzfdOYAWSlkx6XwXEUGGZz5w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-img-size@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-r+LbAizP/hw5SisY44VbHEnR7XUKpcHM2k2fwu5wb1+V1crxeigG4sa8rzrJEddU+k6uCl27yL5FTGbHjAl82Q==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-include@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-e8Z8q5VkJ6UX04tTgELraupB/MdHio7hkdYT71wBJ6UQuhSmFv/xMOxFfTcGKH5yzsbEM45BtAFHzSXIi3dMCw==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: true + + /@mdit/plugin-katex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-u7CX3Xv5nuc2bu2sHrk1nil83/9ETKTBMmy0icbW8zlqBC0ykLo1xTCEBXmdhXtnJtPi9f/wUZVs6iMZrJzbNg==} + engines: {node: '>= 18'} + peerDependencies: + katex: ^0.16.9 + markdown-it: ^14.0.0 + peerDependenciesMeta: + katex: + optional: true + markdown-it: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/katex': 0.16.7 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-1hImu8FskIZ9dumWD2VIyB5USyVGwGY2IuaPxYO25tFvMZkhu4rYBjkSK8x+vXExwp94OLzFUlGgVl94S+nw9w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-mathjax@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-y016KQHa3PoXDUIcQseISMAz5q2mZJ/qocEs2EABT4PjquXPEh/4rw7Ql7KX9gf/SQIUyzj8hYs4bHyRZc6x4w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + mathjax-full: ^3.2.2 + peerDependenciesMeta: + markdown-it: + optional: true + mathjax-full: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: true + + /@mdit/plugin-stylize@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oNFI3Z7UTxP8CKxS3CIuawLmsyrc0n9jIw9mPzUcPNp+LtYmLktfZc3FIRlqpUUq34YwHTH3yihayBRdSkVV6A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-sub@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oqCcmJVJykESgNJ4fFmDKKxRRQddwkXWIT4PjF83XSeXHxTOz8gMfke/V1mE7BAfKKCLP4io8HbrYfvIiOTZ4A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-sup@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-5/uE2lONNjCgGDXC8jZ265tzefjUNQNakmK4PSCI4D5jD80xFrxc6MKh70VLCOL8Xk6COK/K9f0SAU2lwa97Tg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tab@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-SNa1S14Buuy564egiUTkU9HTTNFrEURJZLqA1+jr/2xYCdICPym0FWcB0cLtBl3lrQZkFtbxhzC6ws5JBt/ERQ==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tasklist@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-vfOTZdXIL/jk/ConUqCODI5WuqgB9qiBGc+wIa7UMhe73KcpwFeGFJVQZm9AvjhXDDYqznJxSMVRP/TN7TxVVw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-tex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uh4kOhwBVEESz6dMmHk4Hn/AVfVtUhMA1UKpwMc1EL9qelodJ0YzSYfNXp6d/PS+E1l53yp8nMZK90DUO+3vpA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@mdit/plugin-uml@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-6TOVxLhmdzV7bzjlJCRP5uCFq62Xwk2ZAeYUK3RLx9lgM3s2Mww5ENhdysnQMd7VQlUHsPmp4XIMBZZjPddg3g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.10.0: + resolution: {integrity: sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.10.0: + resolution: {integrity: sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.10.0: + resolution: {integrity: sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.10.0: + resolution: {integrity: sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.10.0: + resolution: {integrity: sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.10.0: + resolution: {integrity: sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.10.0: + resolution: {integrity: sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.10.0: + resolution: {integrity: sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.10.0: + resolution: {integrity: sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.10.0: + resolution: {integrity: sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.10.0: + resolution: {integrity: sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.10.0: + resolution: {integrity: sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.10.0: + resolution: {integrity: sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sindresorhus/merge-streams@2.2.0: + resolution: {integrity: sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==} + engines: {node: '>=18'} + dev: true + + /@stackblitz/sdk@1.9.0: + resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.11.17 + dev: true + + /@types/hash-sum@1.0.2: + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + dev: true + + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + dependencies: + '@types/node': 20.11.17 + dev: true + + /@types/katex@0.16.7: + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + dev: true + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: true + + /@types/markdown-it-emoji@2.0.4: + resolution: {integrity: sha512-H6ulk/ZmbDxOayPwI/leJzrmoW1YKX1Z+MVSCHXuYhvqckV4I/c+hPTf6UiqJyn2avWugfj30XroheEb6/Ekqg==} + dependencies: + '@types/markdown-it': 13.0.7 + dev: true + + /@types/markdown-it@13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: true + + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: true + + /@types/node@20.11.17: + resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 17.0.45 + dev: true + + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + dev: true + + /@vitejs/plugin-vue@5.0.4(vite@5.0.12)(vue@3.4.19): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.0.12 + vue: 3.4.19 + dev: true + + /@vue/compiler-core@3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} + dependencies: + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/compiler-sfc@3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + estree-walker: 2.0.2 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr@3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/devtools-api@6.5.1: + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + dev: true + + /@vue/reactivity@3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + dependencies: + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-core@3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + dependencies: + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-dom@3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + dependencies: + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer@3.4.19(vue@3.4.19): + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + peerDependencies: + vue: 3.4.19 + dependencies: + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19 + dev: true + + /@vue/shared@3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} + dev: true + + /@vuepress/bundler-vite@2.0.0-rc.7: + resolution: {integrity: sha512-2jNnU3sgHJuUCPfE0DvGRsAxo/A/Locguvnv4Q6QwJYdB1fuAqE6x5p8RDzq8Lv/GsyeexDWiV/PFER5EtVP3w==} + dependencies: + '@vitejs/plugin-vue': 5.0.4(vite@5.0.12)(vue@3.4.19) + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + autoprefixer: 10.4.17(postcss@8.4.35) + connect-history-api-fallback: 2.0.0 + postcss: 8.4.35 + postcss-load-config: 5.0.3(postcss@8.4.35) + rollup: 4.10.0 + vite: 5.0.12 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + transitivePeerDependencies: + - '@types/node' + - '@vue/composition-api' + - jiti + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: true + + /@vuepress/cli@2.0.0-rc.7: + resolution: {integrity: sha512-SD9Z8vRF1tEKYE4X0qzARr3tHyqfKJJ1MpySL44w1uYSf7nmpJD5ejNsUZxEetj5Vrv8u1jX5IO/3GkPXj5OWA==} + hasBin: true + dependencies: + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + cac: 6.7.14 + chokidar: 3.6.0 + envinfo: 7.11.1 + esbuild: 0.19.12 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /@vuepress/client@2.0.0-rc.7: + resolution: {integrity: sha512-T8jf9h8dfP1ln/7uOIiTAJrdyKRTyq1x+RHXuc7GoRxTfOw+bIYgGvh63Z7m1e3K/yh1nO9aM1WcXbDN1Swp4w==} + dependencies: + '@vue/devtools-api': 6.5.1 + '@vuepress/shared': 2.0.0-rc.7 + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/core@2.0.0-rc.7: + resolution: {integrity: sha512-SPd2C9MIwHLe4mEWJfbcTHT5caS/vW+oeP79wAW0otSGgn2uY3Mmu5qcYPzl+17o8EYv7vDvPiO+uitp/Cek+A==} + dependencies: + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/markdown': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + vue: 3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /@vuepress/helper@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-98sWHoXquQw7UYcmP2fJN4ALV815kXxccSne7MN1OqvpkgeLyEKzlHDf/HCtTYznWT3eSZ6FIvDiq6BaH8PQjQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vue/shared': 3.4.19 + cheerio: 1.0.0-rc.12 + fflate: 0.8.2 + gray-matter: 4.0.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/markdown@2.0.0-rc.7: + resolution: {integrity: sha512-mczvo7MZxxXXj5htDXK22r0a7JjTP5sTlcywtVOTJurzCKp8SNSbr3HdmsAnr9S838Hn9+dkvhs57rqgPG3UHA==} + dependencies: + '@mdit-vue/plugin-component': 2.0.0 + '@mdit-vue/plugin-frontmatter': 2.0.0 + '@mdit-vue/plugin-headers': 2.0.0 + '@mdit-vue/plugin-sfc': 2.0.0 + '@mdit-vue/plugin-title': 2.0.0 + '@mdit-vue/plugin-toc': 2.0.0 + '@mdit-vue/shared': 2.0.0 + '@mdit-vue/types': 2.0.0 + '@types/markdown-it': 13.0.7 + '@types/markdown-it-emoji': 2.0.4 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + markdown-it: 14.0.0 + markdown-it-anchor: 8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0) + markdown-it-emoji: 3.0.0 + mdurl: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vuepress/plugin-active-header-links@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-t9pgjeu5mZJgtJ1u8+xZxd5uGNtSraRavx4o9juVGy/DjHXJHYbS4qnfAhE8GmVUThzQUfvPFZRsuNqiZn2lLA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-back-to-top@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-LTdAeJje6zOBPdWST1qIyzjP35kjAUJAbMkzH7tddejIEfRkfVf6l9nZ8ksMSgzNVVSkO+4unBHqBLa2pLRsUw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-blog@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-LZ0oX9QBxTHHtiUk7ONZHTwDaWoCejXjGgJXGXZDvCfQetCzLWoRYOao7bUxHUrmtD10JyaW+5fCAgHynXgBNQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + chokidar: 3.6.0 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-catalog@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-qlWDUeIsYKcxLa0A//344DarCdLdD3pxfcR5YvJm0CwGCBgA0LnG4gbfMGXyvvRDea/aOnsWK7ePXoDPWvCOPw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-copy-code@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-6FELMaKsaQ/hjPom8VjTC5N9QKdtCLrHLeSz2D2z16+9rnbkAfootEH1T08GN3/PyP2ZZA8OqCPvaNAKiCKGiQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-copyright@2.0.0-rc.13(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-EGKZ6o7Oj3HeSG4VMAIwLBn/O2LSk5uI90LzbLAfsl9eE0nBCanOlL3SnB5AiDTW8zeDZVwJk6BTbd6ymoajXw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-external-link-icon@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-ycvrDK+/75bmvbBPhUSxoOm2OiO+yC36iDs/Vs1OIlVuLDWz3GHuMxkP4uXrla0tQbkxKqyPA/O5Ihhlxz6KAA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-git@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-DYriGdqDscbbt1y4nHrjS7ye+wdiY1fBJU+RvimId26Y1Q/I3DKsQSvRqtTg6tcQ4vt7/NJh1OiiuSaoNIQrnA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + execa: 8.0.1 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + dev: true + + /@vuepress/plugin-nprogress@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-Tuf9AsT4OwCwNFV4jf6vYefPrzDOdMobsUs94kvglDCkEUgepClmW+1KfK3RCoNC4GCrsX95Fz7LvfbeaxtKsQ==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-photo-swipe@2.0.0-rc.13(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-OAOtrQIOaS0Bd1iBc7SqbOEkNsQsJKDT8FHY2hhDPatrSQBaWO1ilgTU0LYbBQ/Ewfkkafy6wsjtLuM8xkh4pA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + photoswipe: 5.4.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /@vuepress/plugin-prismjs@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-DiTdHgH3JFbCn5toSSsMsWvb+PYc4IHjt39o+3GU9j12GtFwHke7hDmXUWwegzYa7bWR0CfikDAto/8WIguRbA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + prismjs: 1.29.0 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + dev: true + + /@vuepress/plugin-reading-time@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-HVD5JZcKE06hWs8/DemKVWh+Z5dUh3Ztw0OmFxpObN3NkO5jQvLnlmKj5b14dbyk2nsMOfFDzkvMgezBXKiHFw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-rtl@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-keyD4LLnFL3awjVdpentqUGWX0iB93uk5GSL7L4lppn20vnS8StrjTvGxYiViAYu+vB9drVG/3DiPkOcp5dy9Q==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-seo@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-aOiuZ7y0B99GROuhqTXQQsB0+sWX2l3geoZMzrJlbsykBCGcSN8RBHmdcIouzid83jBkOkBt6AxLRQKpQyWgwA==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-sitemap@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-XrFBpQvfeJqQuL5ofCVf/hui5IRJPP6tEA2sBJTjtJH4y0xRgnE23RALE7mpsqD2Mo7TnAgrDORRgZL0Zzy94g==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + sitemap: 7.1.1 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/plugin-theme-data@2.0.0-rc.12(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-0hhb83MLG275BDF6OE4gNhz/tZBks6OyjPqkaTbdRHCEhuZD3UwFp+t3b7lUbAkftWSBSidhE0unkaqJw5zJuw==} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - typescript + dev: true + + /@vuepress/shared@2.0.0-rc.7: + resolution: {integrity: sha512-zNsYzAW5tuENb4vML0pK/61W3EscyOcn5JVPC+c6AwvsYWyAigZaMSu9ycGAptjDwzdYSi3gd33N9Q9T7pG77Q==} + dependencies: + '@mdit-vue/types': 2.0.0 + dev: true + + /@vuepress/utils@2.0.0-rc.7: + resolution: {integrity: sha512-47c7T72JwOWH1EgG7f/KwWNpIknd9IC5JmrizGI5IVUM4G16Vyj5oPQuXqLobV47m8JOxPW4dLpsglZGVaKQeg==} + dependencies: + '@types/debug': 4.1.12 + '@types/fs-extra': 11.0.4 + '@types/hash-sum': 1.0.2 + '@vuepress/shared': 2.0.0-rc.7 + debug: 4.3.4 + fs-extra: 11.2.0 + globby: 14.0.1 + hash-sum: 2.0.0 + ora: 8.0.1 + picocolors: 1.0.0 + upath: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@vueuse/core@10.7.2(vue@3.4.19): + resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.7.2 + '@vueuse/shared': 10.7.2(vue@3.4.19) + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata@10.7.2: + resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==} + dev: true + + /@vueuse/shared@10.7.2(vue@3.4.19): + resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} + dependencies: + vue-demi: 0.14.7(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /autoprefixer@10.4.17(postcss@8.4.35): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.3 + caniuse-lite: 1.0.30001587 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /balloon-css@1.2.0: + resolution: {integrity: sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==} + dev: true + + /bcrypt-ts@5.0.1: + resolution: {integrity: sha512-+Q6wjkT+PO0Da56BIyaYyueMeqAV/zOXqfFIssRgCbQLGwU+YkBJfBpP2Q9Q8hGbpDyDNCrG36npSdE+S9HWUA==} + engines: {node: '>=18'} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001587 + electron-to-chromium: 1.4.668 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001587: + resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + 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.1.0 + dev: true + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /create-codepen@1.0.1: + resolution: {integrity: sha512-XzSWwGCFNeOnNGp3KdCDGaKq4Cp1SvjzpPGQqO0tj1HT3BhksLdl/xQ2ZEY4+0MQ3m1I/K1Fvpm4GGMthtamyA==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /electron-to-chromium@1.4.668: + resolution: {integrity: sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==} + dev: true + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.2.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /giscus@1.4.0: + resolution: {integrity: sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==} + dependencies: + lit: 3.1.2 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.2.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.0.0 + dev: true + + /lit-element@4.0.4: + resolution: {integrity: sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.1.2 + dev: true + + /lit-html@3.1.2: + resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: true + + /lit@3.1.2: + resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.0.4 + lit-html: 3.1.2 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /markdown-it-anchor@8.6.7(@types/markdown-it@13.0.7)(markdown-it@14.0.0): + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: true + + /markdown-it-emoji@3.0.0: + resolution: {integrity: sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==} + dev: true + + /markdown-it@14.0.0: + resolution: {integrity: sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.0.0 + dev: true + + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: true + + /photoswipe@5.4.3: + resolution: {integrity: sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==} + engines: {node: '>= 0.12.0'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: true + + /postcss-load-config@5.0.3(postcss@8.4.35): + resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.35 + yaml: 2.3.4 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: true + + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + dev: true + + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rollup@4.10.0: + resolution: {integrity: sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.10.0 + '@rollup/rollup-android-arm64': 4.10.0 + '@rollup/rollup-darwin-arm64': 4.10.0 + '@rollup/rollup-darwin-x64': 4.10.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.10.0 + '@rollup/rollup-linux-arm64-gnu': 4.10.0 + '@rollup/rollup-linux-arm64-musl': 4.10.0 + '@rollup/rollup-linux-riscv64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-gnu': 4.10.0 + '@rollup/rollup-linux-x64-musl': 4.10.0 + '@rollup/rollup-win32-arm64-msvc': 4.10.0 + '@rollup/rollup-win32-ia32-msvc': 4.10.0 + '@rollup/rollup-win32-x64-msvc': 4.10.0 + fsevents: 2.3.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sass@1.70.0: + resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.0.2 + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: true + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.3.0 + dev: true + + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /uc.micro@2.0.0: + resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==} + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.3 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /vite@5.0.12: + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vue-demi@0.14.7(vue@3.4.19): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19 + dev: true + + /vue-router@4.2.5(vue@3.4.19): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.19 + dev: true + + /vue@3.4.19: + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19(vue@3.4.19) + '@vue/shared': 3.4.19 + dev: true + + /vuepress-plugin-comment2@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-HyF+RFrvQljAdbHLAdRdx5VMq1268l0U0yQAg6ikI44hb/eB04D5+KRfWhqpQNUayHv28V3PsDQ8KqcrfD8cSA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@waline/client': ^2.15.8 || ^3.0.0-alpha.11 + artalk: ^2.7.3 + sass-loader: ^14.0.0 + twikoo: ^1.5.0 + vuepress: 2.0.0-rc.7 + peerDependenciesMeta: + '@waline/client': + optional: true + artalk: + optional: true + sass-loader: + optional: true + twikoo: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + giscus: 1.4.0 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-plugin-components@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-A0bh2a5aLXSg2YfZLicLRc4kbNwGNljBTV9xv1JhLzBqbvd/TRXX5NQFKz4Fgq9Ju/aYOXDEHkinMXFNvZvjBw==} + 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: ^14.0.0 + vidstack: ^1.9.0 + vuepress: 2.0.0-rc.7 + 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 + dependencies: + '@stackblitz/sdk': 1.9.0 + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + create-codepen: 1.0.1 + qrcode: 1.5.3 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-plugin-md-enhance@2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-oyQjb2pGjAVSzIRmf24ALKfEE/fVTR5/9N/9Y2IaIJnB1xB+uvsa9NlRRORro1+niNmcbG9ETMHzkC0J9CVrlg==} + 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.8.0 + reveal.js: ^5.0.0 + sandpack-vue3: ^3.0.0 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + 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 + sandpack-vue3: + optional: true + sass-loader: + optional: true + dependencies: + '@mdit/plugin-alert': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-align': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-attrs': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-demo': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-figure': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-footnote': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-lazyload': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-size': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-include': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-katex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mathjax': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-stylize': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sub': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sup': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tab': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tasklist': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-uml': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + js-yaml: 4.1.0 + vue: 3.4.19 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - markdown-it + - typescript + dev: true + + /vuepress-plugin-sass-palette@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-tszb4KpJegfNMrmp1DZn95qAIRAJJAfuuCAhAHuwQ+yZI1GrZd3m8b5hOQejHLE1Bimwb3Kj/lYPVMnb/2c6gA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + peerDependenciesMeta: + sass-loader: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + chokidar: 3.6.0 + sass: 1.70.0 + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-shared@2.0.0-rc.23(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-1es+bJ13E4UNkIr5kuPMX8h77aGZEuHLknH4u8B0qh+kP/CuuRXhUVQ6AHCuyDArL9mUc7CFwo+ro7zqDpsA1Q==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + vuepress: 2.0.0-rc.7 + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + cheerio: 1.0.0-rc.12 + dayjs: 1.11.10 + execa: 8.0.1 + fflate: 0.8.2 + gray-matter: 4.0.3 + semver: 7.6.0 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: true + + /vuepress-theme-hope@2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7): + resolution: {integrity: sha512-4ONVCNpQ0IiJsFwoGIQO7kV2OWJNr+LuDv7TsM+fa/b1b+bu/oeOGObnBMXc91YofB8Pqno0W+wYHEhLwheY0A==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@vuepress/plugin-docsearch': 2.0.0-rc.12 + '@vuepress/plugin-feed': 2.0.0-rc.12 + '@vuepress/plugin-redirect': 2.0.0-rc.12 + '@vuepress/plugin-search': 2.0.0-rc.12 + nodejs-jieba: ^0.1.2 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.7 + vuepress-plugin-pwa2: 2.0.0-rc.23 + vuepress-plugin-search-pro: 2.0.0-rc.23 + peerDependenciesMeta: + '@vuepress/plugin-docsearch': + optional: true + '@vuepress/plugin-feed': + optional: true + '@vuepress/plugin-redirect': + optional: true + '@vuepress/plugin-search': + optional: true + nodejs-jieba: + optional: true + sass-loader: + optional: true + vuepress-plugin-pwa2: + optional: true + vuepress-plugin-search-pro: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-active-header-links': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-back-to-top': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-blog': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-catalog': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-copy-code': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-copyright': 2.0.0-rc.13(vuepress@2.0.0-rc.7) + '@vuepress/plugin-external-link-icon': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-git': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-nprogress': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-photo-swipe': 2.0.0-rc.13(vuepress@2.0.0-rc.7) + '@vuepress/plugin-prismjs': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-reading-time': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-rtl': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-seo': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-sitemap': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vuepress/plugin-theme-data': 2.0.0-rc.12(vuepress@2.0.0-rc.7) + '@vueuse/core': 10.7.2(vue@3.4.19) + balloon-css: 1.2.0 + bcrypt-ts: 5.0.1 + cheerio: 1.0.0-rc.12 + chokidar: 3.6.0 + gray-matter: 4.0.3 + vue: 3.4.19 + vue-router: 4.2.5(vue@3.4.19) + vuepress: 2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19) + vuepress-plugin-comment2: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-plugin-components: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-plugin-md-enhance: 2.0.0-rc.23(markdown-it@14.0.0)(vuepress@2.0.0-rc.7) + vuepress-plugin-sass-palette: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + vuepress-shared: 2.0.0-rc.23(vuepress@2.0.0-rc.7) + transitivePeerDependencies: + - '@types/reveal.js' + - '@vue/composition-api' + - '@vue/repl' + - '@waline/client' + - artalk + - artplayer + - chart.js + - dashjs-pure + - echarts + - flowchart.ts + - hls.js + - katex + - kotlin-playground + - markdown-it + - markmap-lib + - markmap-toolbar + - markmap-view + - mathjax-full + - mermaid + - mpegts.js + - plyr + - reveal.js + - sandpack-vue3 + - twikoo + - typescript + - vidstack + dev: true + + /vuepress@2.0.0-rc.7(@vuepress/bundler-vite@2.0.0-rc.7)(vue@3.4.19): + resolution: {integrity: sha512-j0Fb0XtrGnlLxKflarjPa4V/NMzj0lc0RIFNgcQBFZnQHSr5IuSVES7Kt7mDNBlLRpAadQxB6IFC1v2wDEcD/w==} + engines: {node: '>=18.16.0'} + hasBin: true + peerDependencies: + '@vuepress/bundler-vite': 2.0.0-rc.7 + '@vuepress/bundler-webpack': 2.0.0-rc.7 + vue: ^3.4.0 + peerDependenciesMeta: + '@vuepress/bundler-vite': + optional: true + '@vuepress/bundler-webpack': + optional: true + dependencies: + '@vuepress/bundler-vite': 2.0.0-rc.7 + '@vuepress/cli': 2.0.0-rc.7 + '@vuepress/client': 2.0.0-rc.7 + '@vuepress/core': 2.0.0-rc.7 + '@vuepress/markdown': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + vue: 3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true diff --git a/docs/ref/api.md b/docs/ref/api.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/ref/api_rust.md b/docs/ref/api_rust.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/ref/api_typescript.md b/docs/ref/api_typescript.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/ref/scripts.md b/docs/ref/scripts.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/setup/help.md b/docs/setup/help.md deleted file mode 100644 index d7e2967..0000000 --- a/docs/setup/help.md +++ /dev/null @@ -1,29 +0,0 @@ -## Choice 1 of 3: Simplified DTP Services Deployment - - Choose this setup if you only need one of the following feature: - - * (Optional) Make your server API accessible on the Sui network (e.g. REST, JSON-RPC etc...) - - * (Optional) Make a local directory content accessible on the Sui network (be a "file server") - - * (Optional) Allow other user on the network to discover and ping your server. - -
![](../assets/images/setup_help_services.png)
- -!!! tip "Work-in-progress. Simplified deployment not yet available. For now, these functionalities are parts of the more complex Rust development setup" - - -## Choice 2 of 3: DTP Rust Development Setup - -Choose this setup if you need any of these: - - * Create a Sui Move package (with or without DTP) - - * Create your own Rust application using DTP and/or Sui Rust SDK. - -Includes the Sui framework itself, the DTP Service Daemon and all the DTP scripts to facilitate local and devnet testing. -[:octicons-arrow-right-24: Go to Rust Setup ...](setup/../rust.md) - -## Choice 3 of 3: DTP Typescript SDK (NPM Package) - -!!! tip "Typescript development not yet started. Schedule may depend on community/foundation demand" diff --git a/docs/setup/services.md b/docs/setup/services.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/src/.vuepress/config.ts b/docs/src/.vuepress/config.ts new file mode 100644 index 0000000..6c6fcda --- /dev/null +++ b/docs/src/.vuepress/config.ts @@ -0,0 +1,21 @@ +import { defineUserConfig } from "vuepress"; +import theme from "./theme.js"; +import { viteBundler } from "@vuepress/bundler-vite"; + +export default defineUserConfig({ + base: "/", + + bundler: viteBundler({ + viteOptions: {}, + vuePluginOptions: {}, + }), + + lang: "en-US", + title: "Decentralized Transport Protocol", + description: "Adds Web3 features to existing Web2 data transfer apps", + + theme, + + // Enable it with pwa + // shouldPrefetch: false, +}); diff --git a/docs/src/.vuepress/navbar/en.ts b/docs/src/.vuepress/navbar/en.ts new file mode 100644 index 0000000..8f397ca --- /dev/null +++ b/docs/src/.vuepress/navbar/en.ts @@ -0,0 +1,9 @@ +import { navbar } from "vuepress-theme-hope"; + +export const enNavbar = navbar([ + { icon: "home", text: "", link: "/" }, + { text: "Getting Started", link: "/intro.md" }, + { text: "Use Cases", link: "/examples/" }, + { text: "Docs", link: "/docs/" }, + { text: "Community", link: "/community/" }, +]); diff --git a/docs/src/.vuepress/navbar/index.ts b/docs/src/.vuepress/navbar/index.ts new file mode 100644 index 0000000..60eab3b --- /dev/null +++ b/docs/src/.vuepress/navbar/index.ts @@ -0,0 +1,2 @@ +export * from "./en.js"; +//export * from "./zh.js"; diff --git a/docs/CNAME b/docs/src/.vuepress/public/assets/CNAME similarity index 100% rename from docs/CNAME rename to docs/src/.vuepress/public/assets/CNAME diff --git a/docs/assets/images/favicon.png b/docs/src/.vuepress/public/assets/favicon.png similarity index 100% rename from docs/assets/images/favicon.png rename to docs/src/.vuepress/public/assets/favicon.png diff --git a/docs/src/.vuepress/public/assets/icon/apple-icon-152.png b/docs/src/.vuepress/public/assets/icon/apple-icon-152.png new file mode 100644 index 0000000000000000000000000000000000000000..434fcc3d5cdd2a03b4c4e41e915bf715f00127d7 GIT binary patch literal 3568 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/src/.vuepress/public/assets/icon/chrome-512.png b/docs/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/docs/src/.vuepress/public/assets/icon/guide-maskable.png b/docs/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/docs/src/.vuepress/public/assets/icon/ms-icon-144.png b/docs/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/docs/src/.vuepress/public/assets/image/advanced.svg b/docs/src/.vuepress/public/assets/image/advanced.svg new file mode 100644 index 0000000..c27ede5 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/advanced.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/blog.svg b/docs/src/.vuepress/public/assets/image/blog.svg new file mode 100644 index 0000000..00fc40d --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/blog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/box.svg b/docs/src/.vuepress/public/assets/image/box.svg new file mode 100644 index 0000000..9e6408e --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/box.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/features.svg b/docs/src/.vuepress/public/assets/image/features.svg new file mode 100644 index 0000000..6d62739 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/features.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/github-dark.svg b/docs/src/.vuepress/public/assets/image/github-dark.svg new file mode 100644 index 0000000..37fa923 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/github-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/github-light.svg b/docs/src/.vuepress/public/assets/image/github-light.svg new file mode 100644 index 0000000..d5e6491 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/github-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/layout.svg b/docs/src/.vuepress/public/assets/image/layout.svg new file mode 100644 index 0000000..da754b5 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/src/.vuepress/public/assets/image/markdown.svg b/docs/src/.vuepress/public/assets/image/markdown.svg new file mode 100644 index 0000000..72056c9 --- /dev/null +++ b/docs/src/.vuepress/public/assets/image/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/images/FTP_Daemon_012023.png b/docs/src/.vuepress/public/assets/images/FTP_Daemon_012023.png similarity index 100% rename from docs/assets/images/FTP_Daemon_012023.png rename to docs/src/.vuepress/public/assets/images/FTP_Daemon_012023.png diff --git a/docs/assets/images/HomeStackArrowCapy.png b/docs/src/.vuepress/public/assets/images/HomeStackArrowCapy.png similarity index 100% rename from docs/assets/images/HomeStackArrowCapy.png rename to docs/src/.vuepress/public/assets/images/HomeStackArrowCapy.png diff --git a/docs/assets/images/RPC_Daemon_012023.png b/docs/src/.vuepress/public/assets/images/RPC_Daemon_012023.png similarity index 100% rename from docs/assets/images/RPC_Daemon_012023.png rename to docs/src/.vuepress/public/assets/images/RPC_Daemon_012023.png diff --git a/docs/assets/images/design_terms.png b/docs/src/.vuepress/public/assets/images/design_terms.png similarity index 100% rename from docs/assets/images/design_terms.png rename to docs/src/.vuepress/public/assets/images/design_terms.png diff --git a/docs/assets/images/example_rpc_firewall.png b/docs/src/.vuepress/public/assets/images/example_rpc_firewall.png similarity index 100% rename from docs/assets/images/example_rpc_firewall.png rename to docs/src/.vuepress/public/assets/images/example_rpc_firewall.png diff --git a/docs/assets/images/example_web3.png b/docs/src/.vuepress/public/assets/images/example_web3.png similarity index 100% rename from docs/assets/images/example_web3.png rename to docs/src/.vuepress/public/assets/images/example_web3.png diff --git a/docs/src/.vuepress/public/assets/images/free_icon.svg b/docs/src/.vuepress/public/assets/images/free_icon.svg new file mode 100644 index 0000000..2dc2d6a --- /dev/null +++ b/docs/src/.vuepress/public/assets/images/free_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/images/home_high_level.png b/docs/src/.vuepress/public/assets/images/home_high_level.png similarity index 100% rename from docs/assets/images/home_high_level.png rename to docs/src/.vuepress/public/assets/images/home_high_level.png diff --git a/docs/assets/images/home_top.png b/docs/src/.vuepress/public/assets/images/home_top.png similarity index 100% rename from docs/assets/images/home_top.png rename to docs/src/.vuepress/public/assets/images/home_top.png diff --git a/docs/assets/images/home_top_capy.png b/docs/src/.vuepress/public/assets/images/home_top_capy.png similarity index 100% rename from docs/assets/images/home_top_capy.png rename to docs/src/.vuepress/public/assets/images/home_top_capy.png diff --git a/docs/assets/images/multi_channel_est.png b/docs/src/.vuepress/public/assets/images/multi_channel_est.png similarity index 100% rename from docs/assets/images/multi_channel_est.png rename to docs/src/.vuepress/public/assets/images/multi_channel_est.png diff --git a/docs/assets/images/multi_channels.png b/docs/src/.vuepress/public/assets/images/multi_channels.png similarity index 100% rename from docs/assets/images/multi_channels.png rename to docs/src/.vuepress/public/assets/images/multi_channels.png diff --git a/docs/assets/images/p2p_broadcast.png b/docs/src/.vuepress/public/assets/images/p2p_broadcast.png similarity index 100% rename from docs/assets/images/p2p_broadcast.png rename to docs/src/.vuepress/public/assets/images/p2p_broadcast.png diff --git a/docs/src/.vuepress/public/assets/images/propose-change.png b/docs/src/.vuepress/public/assets/images/propose-change.png new file mode 100755 index 0000000000000000000000000000000000000000..6f2e44d5c84bb030b66d65a1dab9ec162cd09380 GIT binary patch literal 10764 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 S^^1d}4nQqK&GHA2!~Yjt+(LK& literal 0 HcmV?d00001 diff --git a/docs/assets/images/ref_broadcast.png b/docs/src/.vuepress/public/assets/images/ref_broadcast.png similarity index 100% rename from docs/assets/images/ref_broadcast.png rename to docs/src/.vuepress/public/assets/images/ref_broadcast.png diff --git a/docs/assets/images/ref_firewall.png b/docs/src/.vuepress/public/assets/images/ref_firewall.png similarity index 100% rename from docs/assets/images/ref_firewall.png rename to docs/src/.vuepress/public/assets/images/ref_firewall.png diff --git a/docs/assets/images/ref_ha.png b/docs/src/.vuepress/public/assets/images/ref_ha.png similarity index 100% rename from docs/assets/images/ref_ha.png rename to docs/src/.vuepress/public/assets/images/ref_ha.png diff --git a/docs/assets/images/ref_uni.png b/docs/src/.vuepress/public/assets/images/ref_uni.png similarity index 100% rename from docs/assets/images/ref_uni.png rename to docs/src/.vuepress/public/assets/images/ref_uni.png diff --git a/docs/assets/images/setup_help_services.png b/docs/src/.vuepress/public/assets/images/setup_help_services.png similarity index 100% rename from docs/assets/images/setup_help_services.png rename to docs/src/.vuepress/public/assets/images/setup_help_services.png diff --git a/docs/assets/images/total_vs_partial_order.PNG b/docs/src/.vuepress/public/assets/images/total_vs_partial_order.PNG similarity index 100% rename from docs/assets/images/total_vs_partial_order.PNG rename to docs/src/.vuepress/public/assets/images/total_vs_partial_order.PNG diff --git a/docs/assets/images/total_vs_partial_order_small.PNG b/docs/src/.vuepress/public/assets/images/total_vs_partial_order_small.PNG similarity index 100% rename from docs/assets/images/total_vs_partial_order_small.PNG rename to docs/src/.vuepress/public/assets/images/total_vs_partial_order_small.PNG diff --git a/docs/src/.vuepress/public/favicon.ico b/docs/src/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b411f79ddd958612bceaae08e4fb10ad15340db2 GIT binary patch literal 67646 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 \ No newline at end of file diff --git a/docs/src/.vuepress/sidebar/en.ts b/docs/src/.vuepress/sidebar/en.ts new file mode 100644 index 0000000..7223e5a --- /dev/null +++ b/docs/src/.vuepress/sidebar/en.ts @@ -0,0 +1,94 @@ +import { sidebar } from "vuepress-theme-hope"; + +export const enSidebar = sidebar({ + "/": [ + "", + { + text: "Getting Started", + link: "intro.md", + children: [ + { + text: "What is DTP?", + link: "intro.md", + }, + { + text: "Installation", + link: "how-to/install.md", + }, + { + text: "FAQ", + link: "faq.md", + }, + ], + }, + { + text: "Use Cases", + link: "examples/README.md", + children: [ + { + text: "Examples/Ideas", + link: "examples/README.md", + }, + { + text: "RPC Firewall", + link: "examples/rpc_firewall.md", + }, + { + text: "Rust Backend", + link: "examples/web3_rust.md", + }, + ], + }, + { + text: "Docs", + link: "docs/README.md", + children: [ + { + text: "Basic Concepts", + link: "docs/README.md", + }, + { + text: "API", + collapsible: true, + prefix: "docs/", + children: [ + { + text: "Rust", + link: "api_rust.md", + }, + { + text: "Typescript", + link: "api_typescript.md", + }, + { + text: "'dtp' Command Line", + link: "scripts.md", + }, + ], + }, + { + text: "Design", + link: "docs/design.md", + }, + { + text: "Future Work", + link: "docs/future_work.md", + }, + ], + }, + { + text: "Community", + link: "community/", + children: [ + { + text: "Forums / Contacts", + link: "community/", + }, + { + text: "Become an Editor", + link: "community/editors.md", + }, + ], + }, + ], +}); diff --git a/docs/src/.vuepress/sidebar/index.ts b/docs/src/.vuepress/sidebar/index.ts new file mode 100644 index 0000000..60eab3b --- /dev/null +++ b/docs/src/.vuepress/sidebar/index.ts @@ -0,0 +1,2 @@ +export * from "./en.js"; +//export * from "./zh.js"; diff --git a/docs/src/.vuepress/styles/config.scss b/docs/src/.vuepress/styles/config.scss new file mode 100644 index 0000000..f91061d --- /dev/null +++ b/docs/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/docs/src/.vuepress/styles/index.scss b/docs/src/.vuepress/styles/index.scss new file mode 100644 index 0000000..c8ed608 --- /dev/null +++ b/docs/src/.vuepress/styles/index.scss @@ -0,0 +1,82 @@ +// place your custom styles here +button.sidebar-heading { + font-size: 1em; + //padding-inline-start: 1rem; +} + +#main-title { + -webkit-text-fill-color: #6fbcf0; +} + +a:has(polygon) { + color: #6fbcf0; +} + +.hint-container.details { + padding-top: 1rem; + margin-block-start: 0em; + padding-bottom: 0.5rem; +} + +.hint-container.details summary { + padding-top: 0.5rem; + padding-bottom: 0rem; +} + +.hint-container.note summary { + padding-top: 0.5rem; + padding-bottom: 0rem; +} + +.hint-container-title { + margin-top: 0; + margin-bottom: 0; +} + +.hint-container p { + margin-top: 0.2rem; + margin-bottom: 0.2rem; +} + +.footer a { + color: #6fbcf0; + font-weight: unset; +} + +.footer-wrapper .footer { + font-size: 12px; +} + +.footer-wrapper .copyright { + font-size: 12px; +} + +.footer-wrapper { + padding-top: unset; + padding-bottom: unset; +} + +//#main-content.page { +// padding-inline-start: calc(var(--sidebar-space) + 0.5rem); +//} + +// Style for code group +.code-info-title { + color: #999999; + transform: translateY(70%); + display: flex; + justify-content: center; + font-size: 13.6px; +} + +.code-group__ul { + display: flex; +} + +.code-group__nav { + padding-right: 10px; +} + +.flex-grow { + flex-grow: 1; +} diff --git a/docs/src/.vuepress/styles/palette.scss b/docs/src/.vuepress/styles/palette.scss new file mode 100644 index 0000000..356a428 --- /dev/null +++ b/docs/src/.vuepress/styles/palette.scss @@ -0,0 +1,2 @@ +// you can change colors here +$theme-color: #096dd9; diff --git a/docs/src/.vuepress/theme.ts b/docs/src/.vuepress/theme.ts new file mode 100644 index 0000000..36bf17a --- /dev/null +++ b/docs/src/.vuepress/theme.ts @@ -0,0 +1,192 @@ +import { hopeTheme } from "vuepress-theme-hope"; +import { enNavbar /*, zhNavbar*/ } from "./navbar/index.js"; +import { enSidebar /*, zhSidebar*/ } from "./sidebar/index.js"; + +export default hopeTheme({ + hostname: "https://dtp.dev", + + author: { + name: "dtp.dev", + url: "https://dtp.dev", + }, + + iconAssets: "fontawesome-with-brands", + + logo: "/logo.png", + + repo: "chainmovers/dtp", + + contributors: false, + editLink: false, + pageInfo: false, + breadcrumb: false, + toc: false, + + docsDir: "docs/src", + + hotReload: true, + + locales: { + "/": { + // navbar + navbar: enNavbar, + + // sidebar + sidebar: enSidebar, + + footer: + 'DTP on Github         DTP on Discord', + + copyright: "Apache 2.0 Open-Source License", + + displayFooter: true, + + metaLocales: { + editLink: "Edit this page on GitHub", + }, + }, + }, + + plugins: { + git: true, + + // Put docsearch here later... + + // Needed!? + components: { + components: ["Badge", "VPCard"], + }, + + // All features are enabled for demo, only preserve features you need here + mdEnhance: { + align: true, + attrs: true, + // chart: true, Needed? + codetabs: true, + component: true, + // demo: true, + figure: false, + // flowchart: true, Needed? + imgLazyload: true, + imgSize: true, + include: true, + // katex: true, Needed? + mark: true, + // mermaid: true, Needed? + stylize: [ + { + matcher: "Recommended", + replacer: ({ tag }) => { + if (tag === "em") + return { + tag: "Badge", + attrs: { type: "tip" }, + content: "Recommended", + }; + }, + }, + ], + sub: true, + sup: true, + tabs: true, + vPre: true, + + vuePlayground: false, + + // 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, + + // install sandpack-vue3 before enabling it + // sandpack: true, + }, + + // install vuepress-plugin-pwa2 and 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/docs/src/README.md b/docs/src/README.md new file mode 100644 index 0000000..772ad25 --- /dev/null +++ b/docs/src/README.md @@ -0,0 +1,94 @@ +--- +home: true +icon: home +title: Home +heroImage: assets/images/home_top_capy.png +heroText: "" +tagline: "" +#actions: +# - text: Install +# link: /how-to/install.md +# type: primary + +# - text: Learn More +# link: /intro.md + + #- text: Docs + # link: /guide/ + +features: + - title: Create hybrid dApps + icon: star-half-stroke + details: "Decentralized connection control, metering and crypto-economics
+            + +
Your existing off-chain services and data." + link: / + + - title: Security and DDoS Protection + icon: shield-halved + details: "
    +
  • Scalable firewall built-in the Sui network!
  • +
  • Stop DDoS attacks even before it reaches your servers.
  • +
  • Keep IP addresses hidden (visible only to Sui node operators).
+ See firewall example..." + + link: /examples/rpc_firewall.md + + - title: Privacy & Authenticity + icon: user-lock + details: "
    +
  • On-chain secret exchanges with end-to-end encryption.
  • +
  • Secured key/certificate installation from centralized servers.
  • +
  • Authenticity with signed data transfer.
" + link: / + + - title: Open-Source + icon: /assets/images/free_icon.svg + details: "
    +
  • Only code from developers for developers.
  • +
  • No Token, middlemen, commission or dev fee.
  • +
  • Only requires smart contracts execution costs (gas fee for Sui transactions).
+ Check the faq..." + + link: /faq.md + + + - title: High Availability + icon: network-wired + details: "
    +
  • Automatic failover and/or load balancing among your backend servers.
  • + +
  • Maybe your service would benefit from censorship resistance of the Sui network?
  • + +
  • Add serf-like coordination/governance among loosely coupled web2 servers.
" + link: / + + - title: Service Level Agreements + icon: building-columns + details: "
  • Add fair Tokenomics to Web2: Pay per request, per byte, per RPC call etc...
  • + +
  • Escrow for fair payments depending of success/failure of a query...
" + link: / + + +--- + + + + Why Sui and not blockchain 'x' ?
+SUI has good finality latency stability (low jitter) and network scalability (maintains per connection throughput regardless of total load).
+ +Sui architecture provides two type of transactions: + + * Simple Transaction with sub-second finality for data plane transfer (See 'partial ordering' illustration). This allows fast async/parallel transmission. + + * Narwhal/Bullshark consensus with 2-3 seconds finality used for slower control plane synchronization, like escrow services, reconfiguration, connection creation,etc... + + +With its flexible dual-type of transactions, Sui makes practical the implementation of common data + control plane design found in IP networks ( [Cloudflare explains it well](https://www.cloudflare.com/learning/network-layer/what-is-the-control-plane/) ). + +See [How Sui Differs from Other Blockchains?](https://docs.sui.io/learn/sui-compared) + +Why not simply use the good old, faster and free internet? + +Join the [Discord community](https://discord.gg/Erb6SwsVbH) and let's talk about it! diff --git a/docs/src/community/README.md b/docs/src/community/README.md new file mode 100644 index 0000000..ddf9866 --- /dev/null +++ b/docs/src/community/README.md @@ -0,0 +1,25 @@ +--- +title: Community +headerDepth: 0 +editLink: true +--- + +For DTP and any SDK/tool projects welcome to join: + + * [ChainMovers Discord](https://discord.gg/Erb6SwsVbH) + +For Sui specific discussions: + + * [Sui Official Discord](https://discord.gg/sui) + + * [Sui Official Forum](https://forums.sui.io/) + +## Contributors + +**Mario Fortier** - Lead Developer
+ +* LinkedIn:
+* Discord username : Mhax#6164
+* Github username : + +(Join, contribute and have your name added here...) \ No newline at end of file diff --git a/docs/src/community/editors.md b/docs/src/community/editors.md new file mode 100644 index 0000000..cccffbc --- /dev/null +++ b/docs/src/community/editors.md @@ -0,0 +1,48 @@ +--- +title: "How to propose fix/change to the website?" +order: 2 +headerDepth: 0 +contributors: true +editLink: true +--- + +Anyone with a Github account can participate. + +The website is built from markdown files (.md) and served directly from [github](https://github.com/chainmovers/dtp/tree/main/docs). + +## Editing on Github (recommended for easy/quick changes) + +Open the editor with the "Edit this pages on Github" link at the bottom. + +When ready to propose your changes just select "Create a **new branch**" and give it a name:
+Propose Changes
+ +Your proposed changes will be merged after review. + +## Editing the website on your machine (advanced contributors) +If you prefer to preview exactly your change, then you need to run vuepress on your machine and modify the markdown files with an editor (e.g. VSCode). + +Prerequisites: + * NodeJS (>= 16.4) ( [https://nodejs.dev/en/learn/how-to-install-nodejs/](https://nodejs.dev/en/learn/how-to-install-nodejs/) ) + * pnpm ( [https://pnpm.io/installation](https://pnpm.io/installation) ) + * DTP and Suibase ( [https://dtp.dev/how-to/install](https://dtp.dev/how-to/install) ) + +For the one-time vuepress installation do: +```shell +$ cd ~/suibase/workdirs/common/extensions/dtp/docs +$ pnpm install +``` + +To start vuepress (the server) do: +```shell +$ cd ~/suibase/workdirs/common/extensions/dtp/docs +$ pnpm start +... +Open your browser at http://localhost:8080 +``` + +The browser updates as you change files under docs/src + +See [https://theme-hope.vuejs.press/guide/](https://theme-hope.vuejs.press/guide/) for advanced markdown features. + +Submit your changes as a pull request, just ask as needed (not as hard as it seems once you do it once). \ No newline at end of file diff --git a/docs/ref/readme.md b/docs/src/docs/README.md similarity index 73% rename from docs/ref/readme.md rename to docs/src/docs/README.md index 7a73fee..011dd4d 100644 --- a/docs/ref/readme.md +++ b/docs/src/docs/README.md @@ -1,11 +1,21 @@ -## Basic Concept -Exchange of data through the SUI network can be done between any Web2 or Web3 application that includes the DTP and Sui SDKs. +--- +title: Basic Concept +contributors: true +editLink: true +headerDepth: 0 +--- -An application will first want to create its own "unique contact point" on the network by creating a "Host Sui Object" using the DTP API. +Exchange of data through the SUI network can be done between any Web2 application that includes the DTP and Sui SDKs. -An application can "ping" or "connect" to other Host object created by other apps. Each Host are uniquely identified by a "Sui Object ID". +Alternatively, the end-users may install the DTP services daemon to handle common cases (e.g making one side of the connection be a JSON-RPC server). -The typical `#!Rust :` becomes a `#!Rust :` +An end-user will first want to establish its own "unique contact point" on the network by creating a "Host Sui Object" using the DTP API. + +Note: Most operation done through the DTP API can also be done on the command line with the "dtp" script. + +An application can "ping" or "connect" to other Host object created by other apps. Each Host are uniquely identified by a ``````. + +The typical ```:``` becomes a ```:``` ## On-Chain Firewall @@ -15,7 +25,7 @@ Other application will be able to observe what other Host allow/block even befor The DTP API allows fine grain control of allowance/blocking of particular requester, connection count or bandwidth limit. Configuration are kept and applied 24/7 on-chain. -## Connection Type and Escrow +## Service Level Agreements (SLA) DTP provides traditional byte streaming (TCP-Like) connections between Host, but also the simplification of higher level connection, in particular RPC calls. @@ -23,7 +33,8 @@ When configuring a service for your Host, you must choose a "Service Level Agree An example is to require the requester to pay for the cost of the response that your server will have to provide. -!!! info "This is a good example where adding Web3 qualities to an existing Web2 service creates API monetization without requiring huge security/edge infrastructure investments" +::: tip This is a good example where adding Web3 qualities to an existing Web2 service creates API monetization without requiring huge security/edge infrastructure investments +::: DTP defines a set of "Typical" service level agreement to help minimize market confusion. diff --git a/docs/src/docs/api_rust.md b/docs/src/docs/api_rust.md new file mode 100644 index 0000000..976162e --- /dev/null +++ b/docs/src/docs/api_rust.md @@ -0,0 +1,5 @@ +--- +editLink: true +--- +::: warning Not yet written +::: \ No newline at end of file diff --git a/docs/src/docs/api_typescript.md b/docs/src/docs/api_typescript.md new file mode 100644 index 0000000..976162e --- /dev/null +++ b/docs/src/docs/api_typescript.md @@ -0,0 +1,5 @@ +--- +editLink: true +--- +::: warning Not yet written +::: \ No newline at end of file diff --git a/docs/ref/design.md b/docs/src/docs/design.md similarity index 90% rename from docs/ref/design.md rename to docs/src/docs/design.md index be4898b..2eabbb5 100644 --- a/docs/ref/design.md +++ b/docs/src/docs/design.md @@ -1,3 +1,10 @@ +--- +title: Design +contributors: true +editLink: true +headerDepth: 0 +--- + ## Target Audience Developers should first read the API they intend to use. @@ -19,7 +26,7 @@ Slower transactions (Sui consensus) are used for most "control plane" synchroniz ## DTP Glossary -
![](../assets/images/design_terms.png)
+![](/assets/images/design_terms.png?url) **Client**: An application that initiate a connection. @@ -39,7 +46,7 @@ Slower transactions (Sui consensus) are used for most "control plane" synchroniz ## Firewall -
![](../assets/images/ref_firewall.png)
+![](/assets/images/ref_firewall.png?url) (1) Gas cost of processing incoming traffic is paid by the sender. That includes connection creation cost and running the firewall at the Pipe Object. Most abuse can therefore be neutralized without requiring any processing/cost from the Server. @@ -60,7 +67,7 @@ Therefore, to support high bandwidth, it might be needed to perform multiple tra Most of the complexity is handled off-chain by DTP when dividing and re-assembling the transactions into a data stream: -
![](../assets/images/multi_channels.png)
+![](/assets/images/multi_channels.png?url) **Will this be practical?** There is a lot of cost/performance unknowns with both Sui network and DTP that will probably persist through 2023. DTP architecture supports media streaming, but it remains to be seen how practical it will be. @@ -73,14 +80,14 @@ Regardless of practicality, support for multi-channel will be at least useful fo Some estimations (See on [Google Sheet](https://docs.google.com/spreadsheets/d/1zBrB1ifhPpnLlsDr6nBN\_N55Kkw9hX06a7EVUpogyn4/edit?usp=sharing)): -
![](../assets/images/multi_channel_est.png) -(Note: Numbers are best guess as of 11/21/22. Will be revised from time to time) -
+![](/assets/images/multi_channel_est.png?url) +*
(Note: Numbers are best guess as of 11/21/22. Will be revised from time to time)
*
## High-Availability and Load Balancing -
![](../assets/images/ref_ha.png)

Forwarding decision made by Pipe object when multiple end-points (servers)

+![](/assets/images/ref_ha.png?url) +*
Forwarding decision made by Pipe object when multiple end-points (servers)
* Off-chain servers can share the incoming load or be each other's fallback for high-availability. @@ -95,13 +102,16 @@ DTP will hide the high complexity of many race conditions (assignment to a serve ## Uni-directional Transfer Similar to bi-directionals, but with a single Pipe object for data plane to minimize cost/complexity. Control plane still bi-directional (e.g. for encryption handshake). -
![](../assets/images/ref_uni.png)

Uni-Directional Data Transfer

+![](/assets/images/ref_uni.png?url)*
Uni-Directional Data Transfer
* + + ## Public Broadcasting Similar to unidirectional, but without encryption and using Broadcast objects instead of a Pipe&Transport control. -
![](../assets/images/ref_broadcast.png)

Broadcasting Specific Objects

+![](/assets/images/ref_broadcast.png?url)*
Broadcasting Specific Objects
* + Broadcasters may require some different crypto-economic capability. Examples: diff --git a/docs/ref/future_work.md b/docs/src/docs/future_work.md similarity index 95% rename from docs/ref/future_work.md rename to docs/src/docs/future_work.md index 4537657..4747d0c 100644 --- a/docs/ref/future_work.md +++ b/docs/src/docs/future_work.md @@ -1,7 +1,10 @@ +--- +editLink: true +--- # Future Work -## **Broadcasting Challenges** +## Broadcasting Challenges Data broadcasting will put pressure on fullnodes WebSocket event streaming services. @@ -11,7 +14,7 @@ The architecture should scale to match the audience size. Consequently, one possible **long term** solution is for DTP/Sui to provide only the crypto-economic services and then leave the burden of broadcasting to a public peer-to-peer network. -
![](../assets/images/p2p_broadcast.png)
+![](/assets/images/p2p_broadcast.png?url) Each peer is running a DTP app for direct connection to the Sui network (for control plane). The complexity of the data plane transiting through a peer-to-peer network should be hidden to the end-users (Peers). @@ -36,7 +39,7 @@ DTP layer supports both; a confirmation of the data being available on the L1 ne Example of use would be to integrate in the dApps the verification that the data was persisted off-chain by the destination. There is no verification that the destination is honest, but this would be used in context where it would be in the destination best interest to act honestly. -## **Encrypted Broadcasting** +## Encrypted Broadcasting For now, broadcast are assumed to be always public and non-encrypted. diff --git a/docs/src/docs/scripts.md b/docs/src/docs/scripts.md new file mode 100644 index 0000000..976162e --- /dev/null +++ b/docs/src/docs/scripts.md @@ -0,0 +1,5 @@ +--- +editLink: true +--- +::: warning Not yet written +::: \ No newline at end of file diff --git a/docs/examples.md b/docs/src/examples/README.md similarity index 62% rename from docs/examples.md rename to docs/src/examples/README.md index 187a9f5..69f8557 100644 --- a/docs/examples.md +++ b/docs/src/examples/README.md @@ -1,27 +1,36 @@ -# Applications Example +--- +title: "Use Cases" +contributors: true +editLink: true +headerDepth: 0 +--- DTP provides networking building blocks that can be applied in many ways. You will find on this page a few inspiring ideas. -DTP features are made available in roughly 3 layers (in increasing level of difficulty): +When ready Go to choose your installation setup .... -- DTP Services Daemon Similar to NGINX/Cloudflare/HAProxy. These are for proxy/forward/firewall services. You will simply be *configuring* how your data flows between your apps and hosts. +## Which layer do you need to work with? +DTP features are available in roughly 3 layers (by increasing level of difficulty): -- DTP Protocols Think "TCP". The DTP/Sui SDKs allows developers to create connections between web2 and web3 apps. You will need to write Rust and/or Typescript apps. +- DTP Services Daemon Similar to NGINX, Cloudflare, HAProxy... These are for proxy/forward/firewall services. You will simply be *configuring* how your data flows between your apps and servers. Your existing apps just use standard TCP/IP sockets (e.g. "localhost:port" URL) to interface with the DTP services daemon. + +- DTP Protocols Think "TCP". The DTP/Sui SDKs allows developers to have more control for connecting any mix of web2 apps (webapp, client/servers...). You will need to write Rust and/or Typescript apps. This is also the solution to eliminate having to install the DTP Services Daemon on your end-users' devices. -- DTP Sui Move Packages Innovations particular to Sui, such as RPC escrows, [data streaming](ref/design.md#multi-channel-connection), coins&call equivocation mitigation, metering etc... you will likely be deeply involve into web3 development at this point. +- DTP Sui Move Packages Innovations particular to Sui, such as RPC escrows, [data streaming](../docs/design.md#multi-channel-connection), coins&call equivocation mitigation, metering etc... you will likely be deeply involve into web3 development at this point. For most users, you will deal only with the "easiest" layer, the "DTP Services Daemon". If not sure how to proceed for your specific need, then please open a discussion on [Discord](https://discord.gg/Erb6SwsVbH). -When ready [:octicons-arrow-right-24: Go to choose your installation setup ...](setup/help.md). + +## Examples/Ideas **Client/Server** -* Web3 frontends connecting to a centralized JSON-RPC backend ([More info](example/rpc_firewall.md)) -* Rust/Typescript Web3 Client to centralized TCP Server ([More info](example/web3_rust.md)) +* Web3 frontends connecting to a centralized JSON-RPC backend ([More info](../examples/rpc_firewall.md)) +* Rust/Typescript Web3 Client to centralized TCP Server ([More info](../examples/web3_rust.md)) **Encrypted Messaging** @@ -32,7 +41,7 @@ When ready [:octicons-arrow-right-24: Go to choose your installation setup ...]( **Networking / Infrastructure** * Zookeeper, Consul, Serf-like services for discovery and consensus among off-chain servers. -* UDP, TCP, QUIC/UDP Tunneling: Transport IP protocols packets within a DTP connection for point-to-point applications (See [DTP Services Daemon](setup/help.md#choice-1-of-3-simplified-dtp-services-deployment) for an alternative) +* UDP, TCP, QUIC/UDP Tunneling: Transport IP protocols packets within a DTP connection for point-to-point applications (See [DTP Services Daemon](../how-to/install.md#choice-1-of-3-simplified-dtp-services-deployment) for an alternative) **Firewall** diff --git a/docs/src/examples/rpc_firewall.md b/docs/src/examples/rpc_firewall.md new file mode 100644 index 0000000..c3d93de --- /dev/null +++ b/docs/src/examples/rpc_firewall.md @@ -0,0 +1,28 @@ +--- +editLink: true +--- +# JSON-RPC Firewall + +In this example, a company want to provide a JSON-RPC API service to its customer front-end applications. + +One goal is to protect the web2 server from DDoS attack, in particular, hide the IP address. + +![](/assets/images/example_rpc_firewall.png?url) + +A DTP Services Daemon runs as a TCP/IP proxy on the same machine as the web2 server. + +Since the sender has to pay for all the data byte transmission costs through the Sui network, an attack is costly and mostly futile. + +The server IP address is visible only to the Sui nodes (not to the users on the other side of the Sui network). This mitigates traditional direct IP attacks. + +In this example the frontend contact the hidden web2 IP server using the ```:8923``` address and DTP takes care of the safe data transfer. + +On the drawing, everything in green and blue is provided by DTP and the Sui infrastructure respectively. The application developer provides only what is shown in yellow. + +::: warning Is the DDoS protection 100% secure? +It depends... the server operator need to have some faith that its Sui node partners are honest (in similar way that one choose to trust a reputable company such as Cloudflare). To mitigate this, a company may choose to run their own Sui fullnodes, making their servers IP addresses near impossible to target by anyone. +::: + +::: tip Scalability and Reliability +DTP also supports having a single Host Object ID be resolved to more than one backend servers (failover, load-balancing...). This is done through DTP Services configuration. +::: \ No newline at end of file diff --git a/docs/src/examples/web3_rust.md b/docs/src/examples/web3_rust.md new file mode 100644 index 0000000..ba53fbf --- /dev/null +++ b/docs/src/examples/web3_rust.md @@ -0,0 +1,11 @@ +--- +editLink: true +--- +# Web3 Frontend / Rust Server + +Connect any frontend to both a centralized and decentralized backend. + +![](/assets/images/example_web3.png?url) + +::: warning Incomplete Documentation - Work-In-Progress +::: \ No newline at end of file diff --git a/docs/faq.md b/docs/src/faq.md similarity index 62% rename from docs/faq.md rename to docs/src/faq.md index dd9b65c..010cf4d 100644 --- a/docs/faq.md +++ b/docs/src/faq.md @@ -1,21 +1,24 @@ +--- +editLink: true +--- # FAQ **In one sentence... What can DTP do?** -It is a TCP-Like protocol facilitating data streaming between web3 applications and optionaly allow safe access to traditional web2 TCP/IP services using a "smart contract" (DTP). +It is a TCP-Like protocol facilitating data transfer between web2 applications, with additional Web3 features such as services monetization, anonymity and security. **Can DTP be used between Web3 apps?** -Yes. +DTP can selectively connect front-ends WebApp to each other, while keeping the data transfer under the control of a dApps (transit on the Sui network). -As an example, you can use it to efficiently let gamers stream data among themselves (P2P). +As an example, you can use it to allow gamers safely exchange encrypted messages among themselves while they are on the same team in a Web3 game. In this case, DTP provides the WebApp to WebApp connectivity without making the players IP addresses visible. **What sort of data can DTP transport?** Any protocol, any data stream. -Data can be a few bytes for a one time secret exchange for authentication/login. At another extreme, the bandwidth can be for as much as an encrypted video stream (through the innovative combination of [DTP Multi-channels](ref/design.md#multi-channel-connection) and Sui network simple transactions). The economic feasibility of HD video streaming on blockchain is an open question... +Data can be a few bytes for a one time secret exchange for authentication/login. At another extreme, the bandwidth can be for as much as an encrypted video stream (through the innovative combination of [DTP Multi-channels](docs/design.md#multi-channel-connection) and Sui network simple transactions). The economic feasibility of HD video streaming on blockchain is an open question... **Can DTP be used with commercial application?** @@ -25,7 +28,7 @@ Yes. DTP is open-source and can freely be used in commercial application ([Apach Only the Sui gas needed to run it, expect the execution cost to be mostly driven by the number of bytes transferred. -There is no developer fee or commission collected for using DTP. +There is no developer fee or middlemen commission collected for using DTP. **When will DTP have token?** @@ -35,11 +38,11 @@ dApps built on top of DTP can use tokens or charge additional Mist, but this is **Can DTP simply tunnel standard TCP, UDP, IP packets?** -Transparent packets tunneling could be done, but is not recommended. +Transparent packets tunneling could be done, but it is not recommended. DTP/Sui provides already reliable and ordered data transport. That would be redundant with say, what TCP would try to achieve within a tunnel. -Instead, look into [DTP Services Daemon](setup/help.md#choice-1-of-3-simplified-dtp-services-deployment) to efficiently terminate/bridge standard IP protocols. That eliminates protocol redundancy and better leverage what the Sui network already provide. +Instead, look into [DTP Services Daemon](how-to/install.md#choice-1-of-3-simplified-dtp-services-deployment) to efficiently terminate/bridge standard IP protocols. That eliminates protocol redundancy and better leverage what the Sui network already provide. **Any plan to support another blockchain?** diff --git a/docs/setup/rust.md b/docs/src/how-to/full_setup.md similarity index 98% rename from docs/setup/rust.md rename to docs/src/how-to/full_setup.md index 8482a04..46412d5 100644 --- a/docs/setup/rust.md +++ b/docs/src/how-to/full_setup.md @@ -1,3 +1,6 @@ +--- +editLink: true +--- # Rust Development Setup Installation @@ -13,7 +16,7 @@ Just run the DTP "init-localnet" and it will initialize the whole DTP setup and (re)start the "sui" localnet process as needed. The localnet will be re-initialized with always the same configuration, address and funding. -(it uses its own configuration file at genesis for a deterministice setup). +(it uses its own configuration file at genesis for a deterministic setup). From this point use "lsui" and "dsui" shell scripts (as a direct replacement of "sui") to access localnet and devnet respectively. diff --git a/docs/src/how-to/install.md b/docs/src/how-to/install.md new file mode 100644 index 0000000..f729f5b --- /dev/null +++ b/docs/src/how-to/install.md @@ -0,0 +1,57 @@ +--- +editLink: true +--- + +There are 3 ways to install DTP. + +Choose the one that best fits your needs and you can always later switch from one to the other. + +## Choice 1 of 3: Full Development Setup + +::: tip This is the only setup available for now. +::: + +Recommended if you need any of these: + + * Develop Sui Move package (with or without DTP) + + * Create your own Rust application using DTP and/or Sui Rust SDK. + + * Development of a new DTP service (e.g. you are writing your own backend Rust servers and do not want to use the DTP Services daemon as an intermediate). + +The setup includes a Sui development framework (Suibase), the DTP Service Daemon runtime, all the DTP SDKs and some utility scripts for quicker edit/publish/debug development cycles. + +DTP dev framework is not conflicting with other Sui installations (e.g. official Mysten Labs cargo install) and can be uninstalled easily. + + Go to Full Setup ... + +## Choice 2 of 3: DTP Services Runtime (No Coding) + +::: warning Not yet implemented +For now, use the Full Development setup, which includes the DTP Services runtime. +::: + + Choose this setup if you only need one or more of the following feature: + + * Make your existing server API accessible on the Sui network (e.g. REST, JSON-RPC etc...) + + * Make a local directory content accessible on the Sui network (be a "file server") + + * Allow other user on the network to discover and ping your server. + + * Have end-users (e.g. frontend app) install their own DTP runtime as a local proxy to your backend services. + +This setup does not require any coding skills, just configuration in a text file and using the ```dtp``` command line tool. + +![](/assets/images/setup_help_services.png?url) + + +## Choice 3 of 3: DTP Typescript SDK (NPM Packages Only) + +::: warning Not yet implemented +The DTP Typescript SDK is not yet written. Priority is to develop the Rust SDK first. +::: + +Choose this setup if you only need to develop front-end apps doing DTP connections to existing services and not require the DTP service daemon installation. + + diff --git a/docs/src/how-to/npm_only.md b/docs/src/how-to/npm_only.md new file mode 100644 index 0000000..976162e --- /dev/null +++ b/docs/src/how-to/npm_only.md @@ -0,0 +1,5 @@ +--- +editLink: true +--- +::: warning Not yet written +::: \ No newline at end of file diff --git a/docs/src/how-to/runtime_only.md b/docs/src/how-to/runtime_only.md new file mode 100644 index 0000000..976162e --- /dev/null +++ b/docs/src/how-to/runtime_only.md @@ -0,0 +1,5 @@ +--- +editLink: true +--- +::: warning Not yet written +::: \ No newline at end of file diff --git a/docs/src/intro.md b/docs/src/intro.md new file mode 100644 index 0000000..7a40953 --- /dev/null +++ b/docs/src/intro.md @@ -0,0 +1,21 @@ +--- +editLink: true +--- + +**What is DTP?** + +It is a TCP-Like protocol facilitating data transfer between any web2 applications, with additional Web3 features such as services monetization, anonymity and security. + + + + +DTP facilitate high-level data transfer, such as audio, video, RPC calls etc... + +DTP can be integrated into your own Rust/Typescript apps (frontend and/or backend). + +Alternatively, you can direct your TCP/IP socket (or websocket) traffic toward a local DTP Services daemon. This daemon takes care of adding Web3 capabilities to your existing Web2 traffic (e.g. handles "per request" micro-payments). + +Not sure if a good fit? Check a few use cases. + +Ready to try it ? Go to Installation. + diff --git a/docs/src/ref b/docs/src/ref new file mode 120000 index 0000000..5c457d7 --- /dev/null +++ b/docs/src/ref @@ -0,0 +1 @@ +docs \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 3f6f58c..0000000 --- a/mkdocs.yml +++ /dev/null @@ -1,124 +0,0 @@ -site_name: DTP - Decentralized Transport Protocol - -site_author: Mario Fortier -site_description: >- - Open-Source protocol to transport any data over a Web3 Sui network. - -# Repository -repo_name: mario4tier/dtp -repo_url: https://github.com/mario4tier/dtp - -theme: - name: material - custom_dir: docs/overrides - icon: - repo: fontawesome/brands/github - # favicon: assets/images/favicon.png Default - logo: assets/logo.png - features: - # - announce.dismiss - - content.code.annotate - # - content.tabs.link - - content.tooltips - # - header.autohide - # - navigation.expand - - navigation.indexes - - navigation.instant - # - navigation.prune - - navigation.sections - - navigation.tabs - - navigation.footer - # - navigation.tabs.sticky - - navigation.top - - navigation.tracking - - search.highlight - - search.share - - search.suggest - - toc.follow - # - toc.integrate - palette: - primary: blue - accent: blue - # - media: "(prefers-color-scheme: dark)" - # scheme: slate - # primary: blue - # accent: blue - # toggle: - # icon: material/brightness-4 - # name: Switch to light mode - # - media: "(prefers-color-scheme: light)" - # scheme: default - # primary: blue - # accent: blue - # toggle: - # icon: material/brightness-7 - # name: Switch to dark mode -plugins: - - search - - git-revision-date-localized - - minify: - minify_html: true - -markdown_extensions: - - abbr - - admonition - - attr_list - - def_list - - footnotes - - md_in_html - #- toc: - # permalink: true - - pymdownx.arithmatex: - generic: true - - pymdownx.betterem: - smart_enable: all - - pymdownx.caret - - pymdownx.details - - pymdownx.emoji: - emoji_generator: !!python/name:materialx.emoji.to_svg - emoji_index: !!python/name:materialx.emoji.twemoji - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.keys - #- pymdownx.magiclink: - # repo_url_shorthand: true - # user: squidfunk - # repo: mkdocs-material - - pymdownx.mark - - pymdownx.smartsymbols - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - pymdownx.tabbed: - alternate_style: true - - pymdownx.tasklist: - custom_checkbox: true - - pymdownx.tilde - -nav: - - Home: index.md - - Use cases: - - Application Examples: examples.md - - Web3 Rust Server: example/web3_rust.md - - JSON-RPC Firewall: example/rpc_firewall.md - - Getting started: - - Which setup?: setup/help.md - # - DTP Service: setup/service.md - - Rust Setup: setup/rust.md - - FAQ: faq.md - - Reference: - - Read Me First: ref/readme.md - - How it works inside?: - - Sui Move Objects: ref/design.md - - Future works: ref/future_work.md - - API (TODO): - - Overview: ref/api.md - - Rust API: ref/api_rust.md - - Typescript API: ref/api_typescript.md - - Tools: - - DTP Scripts: ref/scripts.md - - - Community: community.md